Alterar as referências de disco ZFS para usar GPTID em vez do nome GEOM?

Alterar as referências de disco ZFS para usar GPTID em vez do nome GEOM?

Eu construí um equipamento FreeNAS em um pequeno HP ProLiant MicroServer.

Em termos de armazenamento, criei um pool ZFS de 3 discos usando RAIDZ1. Comecei com 3 discos pequenos, enquanto me familiarizava com o FreeNAS, mas finalmente decidi substituir meu NAS doméstico por ele.

Então comprei novos discos de 2 TB e substituí cada disco por um maior, um de cada vez, deixando o pool resilver após cada substituição.

O pool original, criado por meio da GUI, usava referências GPTID. zpool statusmostraria algo semelhante a isto:

  pool: vol2
 state: ONLINE
  scan: none requested
config:

        NAME                                          STATE     READ WRITE CKSUM
        vol2                                          ONLINE       0     0     0
          gptid/96857d85-6c2f-11e3-9387-78acc0f794bd  ONLINE       0     0     0

Quando substituí os discos do pool por zpool replace, acabei usando os nomes GEOM (adaN) em vez de. Para ser sincero, achei muito mais fácil e intuitivo dessa forma.

Mas parece que referenciar os discos usando nomes GEOM apresenta o risco de suas unidades serem renomeadas na reinicialização,ZFS confusoe possivelmente corrompendo seus pools ZFS no processo.

Achei que poderia "offline" cada um dos discos e substituí-los por zpool replace, usando seus GPTIDs, que presumo que exigirão resilvering, colocando assim meus dados em risco enquanto isso ocorre.

No entanto, não consigo encontrar nenhum GPTID para meus discos "ada". ls /dev/gptidapenas lista meu quarto disco, atualmente não utilizado. glabel listretorna o mesmo disco/GPTID e várias partições FreeNAS.

  • Existe realmente algum sentido em substituir os nomes GEOM referenciados por GPTIDs?
  • Por que não consigo ver os GPTIDs dos novos discos? Preciso fazer alguma coisa antes que os GPTIDs sejam atribuídos e glabel listretornem seus nomes?
  • Existe uma maneira mais segura de fazer isso, que não envolva resilvering?

Obrigado!

Responder1

•Faz sentido substituir os nomes GEOM referenciados por GPTIDs?

Os nomes GEOM são gerados a partir dos slots do controlador, portanto, se você trocar os conectores dos discos, os nomes GEOM também serão trocados. Os nomes GPTID são baseados em números de série do disco e são iguais em todos os lugares.

•Por que não consigo ver os GPTIDs dos novos discos? Preciso fazer alguma coisa antes que os GPTIDs sejam atribuídos e a lista glabel retorne seus nomes?

Quando o disco é usado por um ID (GEOM em zpool no seu caso), outros IDs (incluindo GPTID) são bloqueados. Então, quando você desconecta o disco do zpool ou simplesmente o coloca off-line - aparecerá o gptid ausente em /dev/gptid

•Existe uma maneira mais segura de fazer isso, que não envolva resilvering?

A única maneira é desconectar o disco e anexá-lo ao pool novamente com outro nome. A resilvering não é tão perigosa quanto você imagina, porque é apenas um processo de verificação e sincronização de espelho. Ele copia apenas dados que estão fora de sincronia, portanto você só corre o risco de alterações feitas entre a desconexão e a reconexão do disco.

Responder2

O ZFS foi projetado com o objetivo de validade de dados: ele não fornecerá dados corrompidos, mas nenhum se não puder produzir dados corretos (comportamento padrão configurável). Mover os discos do pool não confundirá o ZFS, desde que ele possa localizá-los. Esse link, (parcialmente em alemão) é bastante útil. Esta é apenas uma dica incompleta - considere assim.

informação relacionada