ZFS: HD Reserva(Hot Spare) Pronto para Entrar em Ação – Parte 07

Hoje vamos falar sobre hot spare que é um dispositivo físico(HD) que deixamos fazendo parte do array mas sem ser usado, fica apenas no banco de reservas. Se um dos discos do array vier a queimar o disco marcado como hot spare substituirá o disco danificado automaticamente.

Temos para esse post 3 discos de 100MB cada

NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda    8:0    0   12G  0 disk 
sdb    8:16   0  100M  0 disk 
sdc    8:32   0  100M  0 disk 
sdd    8:48   0  100M  0 disk

Nosso Ambiente Atual

Num artigo anterior criamos o pool com:

zpool create meuPool sdb sdc

O comando acima cria um raid-0, onde são somados os tamanhos dos dos discos(sdb e sdc), porém não há redundância  e nem tolerância a falhas!

Hoje temos o seguinte esquema:

Um pool formado pelos discos /dev/sdb e /dev/sdc. Apensar de acima exibir apenas “sdb e sdc” mas todos estão dentro de /dev.

elder@server02:~$ sudo zpool status
  pool: meuPool
 state: ONLINE
  scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	meuPool     ONLINE       0     0     0
	  sdb       ONLINE       0     0     0
	  sdc       ONLINE       0     0     0

errors: No known data errors

Só para testes, removi o disco /dev/sdb e olha o que aconteceu abaixo. Avisa que “não há pool disponíveis”

elder@server02:~$ sudo zpool status
no pools available

trabalhamos até aqui usando um raid-0, sem tolerância a falhas! O correto seria usar os dispositivos sdb e sdc espelhados(mirror) e teríamos evitado isso.

E se Houvéssemos inserido um  terceiro disco como “hot spare”? Não funcionaria! Hot Spare não pode ser usado em raid-0!

 

Criando RAIDZ-1

Criaremos um raidz-1, espelhando os discos, porém teremos, infelizmente, que destruir o meuPool atual. Sempre tenha  e faça backup!

Destrua o pool atual. iremos perder todos os dados.

elder@server02:~$ sudo zpool destroy  meuPool

Criei um novo pool. Darei o mesmo nome, meuPool. Dessa vez usei a opção “mirror sdb sdc” para espelhar os discos

elder@server02:~$ sudo zpool create meuPool   mirror sdb sdc

Visualize detalhes do pool e veja que sdb e sdc fazem parte do mirror-0. Se um dos dois falhar não correremos perigo.

elder@server02:~$ sudo zpool status
  pool: meuPool
 state: ONLINE
  scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	meuPool     ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    sdb     ONLINE       0     0     0
	    sdc     ONLINE       0     0     0

errors: No known data errors

Em contrapartida não temos a soma da capacidade dos discos: 100MB + 100MB. Possuimos apenas o valor de um dos discos, veja abaixo

elder@server02:~$ sudo zpool list
NAME      SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
meuPool    80M   104K  79,9M        -         -     3%     0%  1.00x    ONLINE  -

 

Adicionando o Hot Spare

Iremos adicionar o sdd como hot spare. Poderíamos tê-lo adicionado acima na criação do pool, bastava usar: “zpool create meuPool mirror sdb sdc spare sdd”. Mas fiz dessa forma para aprendizagem apenas.

Adicionando sdd como hot spare

elder@server02:~$ sudo zpool add meuPool spare sdd

Vendo o resultado

elder@server02:~$ sudo zpool status
  pool: meuPool
 state: ONLINE
  scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	meuPool     ONLINE       0     0     0
	  mirror-0  ONLINE       0     0     0
	    sdb     ONLINE       0     0     0
	    sdc     ONLINE       0     0     0
	spares
	  sdd       AVAIL   

 

Conclusão

Somente os discos sdb e sdc espelhados bastaria para dar segurança; se um deles danificasse nem perceberíamos, o sistema continuaria funcinando. Mas um disco á mais, de reserva, marcado como hot spare também é uma confiança à mais que temos.

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *