Ceci est une ancienne révision du document !
Table des matières
ZFS
Création d'un pool
Identifier les disques durs
SATA :
camcontrol devlist
PATA :
atacontrol list
ou le grep qui va bien :
egrep 'ad[0-9]|cd[0-9]' /var/run/dmesg.boot
Définition d'un pool
Pour créer un pool de 3 disques dur en raidz du nom de “mon_pool” :
zpool create mon_pool raidz ada0 ada1 ada3
Réparer un pool dégradé
On identifie le disque dur défaillant :
zpool status
ce qui donne :
pool: mon_pool state: DEGRADED status: One or more devices has been removed by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: resilvered 1.37G in 0h0m with 0 errors on Thu Jul 12 16:01:38 2012 config: NAME STATE READ WRITE CKSUM mon_pool DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 4426481649996282313 REMOVED 0 0 0 was /dev/ada1 ada2 ONLINE 0 0 0 ada3 ONLINE 0 0 0 errors: No known data errors
C'est donc “ada1” qui a été enlevé (dans l'exemple ci dessus, il est marqué “REMOVED” car le l'ai débranché volontairement)
On éteint la machine, on remplace le disque défaillant, puis on rallume.
On indique donc qu'on a remplacé le disque avec cette commande :
zpool replace mon_pool /dev/ada1
Si vous remplacer le disque défaillant par un ayant déja été utilisé dans un autre pool, la commande le signalera en donnant le nom du pool dont fait parti le disque, si vous êtes sur de vouloir l'intégrer au pool il faut forcer la commande :
zpool replace -f mon_pool /dev/ada1
la commande peut prendre quelque seconde pour rendre le prompt.
Une fois fait on peut vérifier de nouveau avec “zpool status” ce qui se passe, pendant qu'il reconstruit le pool la sortie peut ressembler à ça :
pool: mon_pool state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Thu Jul 12 16:22:34 2012 3.17G scanned out of 4.11G at 217M/s, 0h0m to go 1.06G resilvered, 77.16% done config: NAME STATE READ WRITE CKSUM mon_pool DEGRADED 0 0 0 raidz1-0 DEGRADED 0 0 0 ada1 ONLINE 0 0 0 ada2 ONLINE 0 0 0 replacing-2 REMOVED 0 0 0 5739093499366978272 REMOVED 0 0 0 was /dev/ada3/old ada3 ONLINE 0 0 0 (resilvering) errors: No known data errors