FreeBSD criptografado zfs mirror - substitui a unidade com falha, incluindo a troca criptografada

3

Eu tenho uma máquina FreeBSD 11 que possui três drives físicos em um espelho ZFS, criptografados com GELI. Tudo isso foi basicamente criado magicamente pelo instalador do FreeBSD quando eu construí a máquina pela primeira vez, então eu tive muito pouca informação sobre ele ou conhecimento sobre os detalhes dele.

O SMART começou a relatar alguns erros em uma das unidades. Ainda não está morto, mas quero adicionar uma nova unidade ao espelho e, em seguida, remover a unidade antiga antes que ela realmente falhe. Depois de alguns googling, eu acho que eu tenho um pouco de compreensão sobre como fazer a maior parte disso, mas eu quero passar por todas as pessoas do passado para ter certeza de que não estou fazendo algo errado ou omitindo alguma coisa. Além disso, mais especificamente, eu realmente não tenho certeza sobre a parte de swap (que também é criptografada).

Cada uma das minhas três unidades atuais (ada0, ada1, ada2) se parece com isso em gpart show :

=>        40  1953525088  ada0  GPT  (932G)
          40        1024     1  freebsd-boot  (512K)
        1064         984        - free -  (492K)
        2048    50331648     2  freebsd-swap  (24G)
    50333696  1903190016     3  freebsd-zfs  (908G)
  1953523712        1416        - free -  (708K)

zpool status :

  pool: zroot
 state: ONLINE
  scan: scrub repaired 0 in 2h7m with 0 errors on Mon Feb 20 14:43:08 2017
config:

    NAME            STATE     READ WRITE CKSUM
    zroot           ONLINE       0     0     0
      mirror-0      ONLINE       0     0     0
        ada0p3.eli  ONLINE       0     0     0
        ada1p3.eli  ONLINE       0     0     0
        ada2p3.eli  ONLINE       0     0     0

/ etc / fstab:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/mirror/swap.eli            none    swap    sw              0       0

swapinfo :

Device          1K-blocks     Used    Avail Capacity
/dev/mirror/swap.eli  25165820   142220 25023600     1%

gmirror status :

       Name    Status  Components
mirror/swap  COMPLETE  ada0p2 (ACTIVE)
                       ada1p2 (ACTIVE)
                       ada2p2 (ACTIVE)

Então, acho que faço o seguinte:

(1) Instale fisicamente a nova unidade.

(2) Talvez o SMART verifique, talvez preencha com dados aleatórios.

(3) gpart destroy , gpart create e gpart add , dando-lhe basicamente o mesmo layout que gpart show mostra para minhas outras unidades - boot, free, swap, zfs, free. Uma diferença é que eu intencionalmente comprei uma unidade maior para que, à medida que eu substitua gradualmente as unidades com falha, eventualmente tenha mais espaço na piscina. Então eu faço a partição freebsd-zfs maior do que nas unidades existentes, mesmo que muito dela seja inutilizável até que eu eventualmente substitua todas as unidades menores atuais (certo?). E devo ter certeza de manter algum espaço livre significativo no final para considerar a possibilidade de tamanhos de unidade um pouco diferentes para unidades futuras (certo?).

(4) geli init da partição freebsd-zfs. Pergunta secundária específica aqui: Neste momento, todas as minhas três unidades físicas têm a mesma senha da GELI. Quando a máquina inicializa, só peço uma senha, em vez de uma para cada unidade. Eu gosto disso. Se eu usar a mesma senha novamente para a nova unidade, isso acontecerá magicamente, ou será que devo dizer ao FreeBSD que o processo de inicialização deve tentar a senha que eu insiro para essa nova unidade também?

(5) geli attach para a partição freebsd-zfs.

(6) zpool attach a nova partição criptografada; algo como zpool attach zroot ada0p3.eli ada3p3.eli

(7) Entendo que o FreeBSD agora vai me dizer para executar gpart bootcode na nova unidade. Faça isso.

(8) Aguarde até que o resilvering seja concluído.

(9) Remova fisicamente a unidade antiga. Após a reinicialização, remova-o do zpool também.

Eu ... acho que é o que eu faço? Mas, como eu disse acima, não tenho certeza sobre a troca. Será que de alguma forma magicamente se tornou parte do /dev/mirror/swap.eli? Eu tenho que adicionar de alguma forma? Da mesma forma, o espaço de troca da unidade antiga desaparece magicamente? Tenho que removê-lo de alguma forma?

Agradecemos antecipadamente por qualquer ajuda.

    
por Bob Vesterman 23.02.2017 / 23:04

1 resposta

2

Respondendo minhas próprias perguntas para referência futura:

(1) De um modo geral, tudo no meu plano funcionou bem.

(2) Para a troca, acabei adicionando a nova partição de swap via gmirror insert e removendo a antiga via gmirror remove .

(3) Com relação à questão das senhas menores: usei a mesma senha para o novo disco e (sem ter feito mais nada) ainda só tenho que inseri-lo uma vez no momento da inicialização.

    
por 27.02.2017 / 23:52