ZFS

O ZFS é um sistema de arquivos que já vem com um sistema de volumes incorporado ao seu desenvolvimento, assim não é necessário ter duas etapas como em outros sistemas como o LVM.

Vamos dar todos os exemplos aqui sobre o ZFS operando sobre o NAS4FREE, um sistema completo capaz de transformar um computador num sistema de armazenamento completo.

Como ver o estado de sistema ZFS

Para ver o estado que se encontra um sistema de arquivos ZFS temos que lançar o comando?

# zpool status

Aqui temos um exemplo da saída deste comando:

nas4free: ~ # zpool status
  pool: tank
 state: DEGRADED
status: One or more devices has been taken offline 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 241G in 21h14m with 0 errors on Thu Nov 17 06:15:51 2016
config:
 
	NAME                      STATE     READ WRITE CKSUM
	tank                      DEGRADED     0     0     0
	  raidz2-0                DEGRADED     0     0     0
	    ada1                  ONLINE       0     0     0
	    ada2                  ONLINE       0     0     0
	    ada3                  ONLINE       0     0     0
	    ada4                  ONLINE       0     0     0
	    ada5                  ONLINE       0     0     0
	    16789957960425198464  OFFLINE      0     0     0  was /dev/ada6
 
errors: No known data errors

Como trocar um HD com problemas no ZFS

Nas próximas etapas, passaremos pelos comandos para a troca segura de um HD com defeito num sistema ZFS. Em todos os comandos abaixo, onde for necessário usar o nome do pool de discos, usaremos a palavra tank.

Colocar o HD em estado offline
# zpool offline tank /dev/ada6 
Substituir o HD fisicamente
Colocar o HD em estado online
# zpool online tank /dev/ada6
Ativar a resincronização do RAIDz
# zpool replace tank /dev/ada6
Monitorar o processo (vai levar muito tempo, mas depende do tamanho/area ocupada/velocidade dos discos)
# zpool status

Um exemplo do acompanhamento da resincronização pode ser visto abaixo:

nas4free: ~ # zpool status
  pool: tank
 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 Nov 17 20:52:18 2016
        1.33G scanned out of 1.42T at 974K/s, 434h10m to go
        215M resilvered, 0.09% done
config:
 
	NAME                        STATE     READ WRITE CKSUM
	tank                        DEGRADED     0     0     0
	  raidz2-0                  DEGRADED     0     0     0
	    ada1                    ONLINE       0     0     0
	    ada2                    ONLINE       0     0     0
	    ada3                    ONLINE       0     0     0
	    ada4                    ONLINE       0     0     0
	    ada5                    ONLINE       0     0     0
	    replacing-5             UNAVAIL      0     0     0
	      16789957960425198464  UNAVAIL      0     0     0  was /dev/ada6/old
	      ada6                  ONLINE       0     0     0  (resilvering)
 
errors: No known data errors
Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença: Public Domain