Recriar pool zfs para um sistema operacional reinstalado

1

Eu preciso substituir o disco por um sistema zfs root instalado.

Anteriormente, era (antes de reinstalar o sistema operacional para fins de teste, que também quero realizar após a instalação):

Criado espelho com zpool anexar rpool / dev / sda2 / dev / sdb

NAME        STATE     READ WRITE CKSUM
    rpool       ONLINE       0     0     0
   mirror-0  ONLINE       0     0     0
      sda2      ONLINE       0     0     0
       sdb      ONLINE       0     0     0

E eu reinstalei o SO:

NAME        STATE     READ WRITE CKSUM
    rpool       ONLINE       0     0     0
      sda2      ONLINE       0     0     0

sdb contém dados ...

    pool: rpool-12312656247996879599
     id: 12312656247996879599
    state: DEGRADED
 status: One or more devices contains corrupted data.
 action: The pool can be imported despite missing or damaged devices.  The
        fault tolerance of the pool may be compromised if imported.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
 config:
        rpool-12312656247996879599  DEGRADED
          mirror-0  DEGRADED
            sda2    FAULTED  corrupted data
            sdb     ONLINE

E eu quero criar dados de espelho e sincronização do sdb para o espelho atual após a reinstalação do sistema operacional. Depois de reinstalar o SO, eu tenho um rpool e um pool de sdb separados. Eu posso enviar / recv dados em dois pools e destory sdb pool e anexar ao rpool e fazer espelho. Mas querendo saber se há alguma maneira sem sincronizar manualmente os arquivos (enviar / recv) e anexar sdb que está no pool para rpool sem destruí-lo?

    
por Ozgur Erdogan 17.12.2017 / 18:54

1 resposta

1

Você retirou seu disco sda2 do pool antigo, apagou seu conteúdo e instalou um novo pool (com o novo sistema) nele. Como esse era um vdev (mirror) redundante, você tem essencialmente dois pools diferentes, cada um com um disco (sem tolerância a falhas). Você ainda tem as duas opções - usando a nova ou restaurando a antiga:

Se você deseja descartar seu pool antigo e usar sua nova instalação ( sda2 ), siga estas etapas :

  • Formate seu disco sdb , excluindo todos os dados
  • Anexe o disco formatado ao novo pool: zpool attach rpool sda2 sdb
  • Aguarde até que o resilvering seja concluído, verifique com zpool status rpool
  • Copiar dados do setor de inicialização para que o sistema possa inicializar a partir de ambos os discos (supondo que você use o GRUB): installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/sdb

Se você deseja descartar seu novo pool e retornar ao seu pool antigo (degradado) ( sdb ):

  • Encerre o sistema e remova fisicamente seu disco sda2
  • Inicie o sistema, ele deve agora reconhecer seu pool antigo como um pool raiz inicializável válido (só funciona se você tiver adicionado o setor de boot a este disco anteriormente, semelhante aos passos acima, caso contrário você receberá um erro de inicialização)
  • Reconecte fisicamente o disco sda2 ao sistema e formate-o
  • Anexe seu disco sda2 ao seu pool antigo: zpool attach rpool sdb sda2

Se você tiver um sistema Solaris / illumos, poderá (no futuro, não neste caso) usar também beadm para realizar atualizações, testes e recuperação no local (dentro do mesmo rpool , mas em diferentes instantâneos). Dessa forma, você pode reverter sem desistir da redundância temporariamente.

    
por 18.12.2017 / 11:19

Tags