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

1

Eu criei um equipamento FreeNAS em um pequeno HP ProLiant MicroServer.

Em termos de armazenamento, criei um pool ZFS de 3 discos usando o RAIDZ1. Eu comecei com 3 pequenos discos, enquanto me familiarizava com o FreeNAS, mas decidi substituir o NAS da minha casa por ele.

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

O pool original, criado por meio da GUI, usava referências do GPTID. zpool status mostraria algo semelhante a isso:

  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 no pool por zpool replace , acabei usando os nomes do GEOM ( adaN ). Para ser honesto, achei muito mais fácil e intuitivo assim.

Mas parece que referenciar os discos usando nomes GEOM vem com o risco de ter suas unidades rotuladas novamente após a reinicialização, confundindo o ZFS e possivelmente corrompendo seus pools do ZFS no processo.

Imaginei que poderia "off-line" 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 ocorrem.

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

  • Existe realmente um ponto em substituir os nomes GEOM referenciados por GPTIDs?
  • Por que não consigo ver os GPTIDs para os novos discos? Preciso fazer alguma coisa antes que os GPTIDs sejam atribuídos e glabel list retornará seus nomes?
  • Existe uma maneira mais segura de fazer isso? Isso não envolve a replantação?

Obrigado!

    
por abstrask 18.01.2014 / 20:39

2 respostas

1

•Is there actually a point in replacing the referenced GEOM names with GPTIDs?

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

•Why can't I see GPTIDs for the new disks? Do I need to do something, before GPTIDs are assigned and glabel list will return their names?

Quando o disco é usado por um id (GEOM no zpool no seu caso), os outros ids (incluindo o GPTID) são bloqueados. Então, quando você desanexar o disco do zpool ou simplesmente colocá-lo offline - aparecerá a falta do gptid em / dev / gptid

•Is there a safer way to do so, that does not involve resilvering?

A única maneira é desanexar o disco e anexá-lo ao pool novamente com outro nome. O resilvering não é tão perigoso quanto você pode pensar, porque é apenas um processo de verificação e sincronização de espelhamento. Ele copia apenas os dados que estão fora de sincronia, de modo que você só arrisca as alterações feitas entre o desprendimento de disco e a reconexão.

    
por 13.06.2015 / 22:36
0

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

    
por 02.02.2014 / 16:09

Tags