Sei lá e pans

recovery

Recentemente perdi meu servidor principal de casa. Os discos do pool zroot estavam ruins, e quando fui trocar um, puf, a máquina parou de dar boot. Retornar os discos anteriores não dava muito resultado, já que a máquina ficava trava em erros de discos. Acho que consegui uma falha em ambos os discos do pool zroot, parabéns para mim.

Esperançoso que o pool onde realmente estão os dados estava intacto, comecei a tarefa de tentar recuperar tudo. Felizmente, dada situações pregressas, eu tinha pelo menos alguma idéia de quais os discos realmente estavam envolvidos no pool que queria recuperar.

Desde o meu post anterior sobre zfs, comecei a usar a boa prática de adicionar os discos pelo seu número serial, conforme estão em /dev/disk/by-uuid em vez de usar os clássicos /dev/sdX ou coisa assim, que as vezes mudam a qual disco se referem. Pelo menos comigo, aconteceu mais de uma vez.

Enfim, após reinstalar o sistema em um disco a parte (resolvi por enquanto abandonar a idéia de ter o root em zfs) começa o trabalho de descobrir quais discos fazem parte do pool e remonta-lo Após preparar o novo sistema para o zfs e adicionar alguns discos do pool antigo, um simples zpool import começou a me encher de esperança

  pool: dados
     id: 1176411848024315794
  state: DEGRADED
status: The pool was last accessed by another system.
 action: The pool can be imported despite missing or damaged devices.  The
	fault tolerance of the pool may be compromised if imported.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
 config:

	dados                          DEGRADED
	  raidz1-0                     DEGRADED
	    ata-ST32000644NS_9WM7LQT3  ONLINE
	    ata-ST32000644NS_9WM7N07E  UNAVAIL
	    wwn-0x5000cca224c5ea5c     ONLINE

Otimo, o pool estava lá. Com um disco a menos, mas estava lá. A partir daí, um zpool import dados -f fez o trabalho de deixar o pool disponível.

agora, para substituição do disco ausente, coloquei o pool offline com zpool offline dados ata-ST32000644NS_9WM7N07E e depois um zpool replace dados ata-ST32000644NS_9WM7N07E /dev/disk/by-id/ata-ST32000644NS_9WM7KY7S como sempre, tomando cuidado para usar o /dev/by-id para evitar que os discos se movimentem para um outro /dev/sdX em alguma manipulação futura dos cabos.

dessa forma, só bastou fazer um zfs mount -a e pronto, os datasets estavam montados e disponíveis.

Agora é configurar snapshots e backups para não precisar contar com a sorte no próximo incidente :)

#zfs #debian #recovery