Sostituzione disco ZFS

Inizialmente il mio MicroServer doveva essere semplicemente una macchina di test, ma poi è diventato un application server a tutti gli effetti; purtroppo ho avuto l’infelice idea di usare quattro dischi SATA Maxtor da 500GB per creare il pool ZFS… Vista la scarsa qualità di questi dischi, uno si è già schiantato, quindi è stato necessario sostituire l’unità guasta e ricostruire il pool (operazione che non causa perdita di dati fortunatamente).

Prima di tutto occorre identificare il codice GUID del disco guasto:

mauro@srvweb:~$ sudo zpool status

Tipicamente il GUID si vede già dall’output di questo comando; se così non fosse basta prendere nota del device in errore e recuperare il GUID con questo altro comando:

mauro@srvweb:~$ sudo zdb

Ottenuto il GUID, spegnere il server, sostituire il disco guasto, riavviare il server e prendere nota del nuovo dispositivo:

mauro@srvweb:~$ sudo ls -la /dev/disk/by-id

Prima di proseguire è opportuno verificare il valore del parametro ashift del pool con il seguente comando:

mauro@srvweb:~$ sudo zdb -C -U /etc/zfs/zpool.cache

quadpool:
    version: 5000
    name: 'quadpool'
    state: 0
    txg: 4548916
    pool_guid: 7254239101276235173
    errata: 0
    hostid: 3428888297
    hostname: 'srvweb'
    com.delphix:has_per_vdev_zaps
    vdev_children: 1
    vdev_tree:
        type: 'root'
        id: 0
        guid: 7254239101276235173
        create_txg: 4
        children[0]:
            type: 'raidz'
            id: 0
            guid: 9371557754708492781
            nparity: 1
            metaslab_array: 70
            metaslab_shift: 34
            ashift: 9            <<< questo è il valore che interessa
            asize: 2000374726656
            is_log: 0
            create_txg: 4
            com.delphix:vdev_zap_top: 65
...

Ora siamo pronti per il resilvering del pool:

mauro@srvweb:~$ sudo zpool replace -o ashift=9 nome_del_pool GUID_disco_guasto /dev/disk/by-id/nome_disco_nuovo

L’operazione durerà un po’, in funzione dello spazio occupato sul volume logico; alla fine il pool sarà tornato di nuovo OK con tutti i dischi ONLINE (e soprattutto senza perdita di dati!)

mauro@srvweb:~$ sudo zpool status
  pool: quadpool
 state: ONLINE
  scan: scrub repaired 0B in 0 days 00:47:00 with 0 errors
config:

	NAME                                  STATE     READ WRITE CKSUM
	quadpool                              ONLINE       0     0     0
	  raidz1-0                            ONLINE       0     0     0
	    ata-MAXTOR_STM3500320AS_9QM1337M  ONLINE       0     0     0
	    ata-MAXTOR_STM3500320AS_9QM0GMYA  ONLINE       0     0     0
	    ata-ST3500820AS_9QM230KD          ONLINE       0     0     0
	    ata-MAXTOR_STM3500320AS_5QM0KMHC  ONLINE       0     0     0

errors: No known data errors

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *