BTRFS-RAID e inicialização a partir da partição do sistema EFI

3

O UEFI requer a inicialização de um ESP, que na maioria das vezes é formatado como vFAT. Se bem me lembro, o BTRFS poderia ter sub-volumes formatados como ext3 / ext4 como o Logical Volume Manager (LVM). No entanto, o UEFI não suporta a inicialização do BTRFS. Na maioria das vezes, a solução é simplesmente usar três (ou 2N + 1) discos, dois para o RAID e um para o qual inicializar. Minha principal preocupação neste caso é o simples espelhamento RAID1. Neste caso, só posso usar dois discos. Se a placa-mãe estivesse usando o BIOS, eu poderia simplesmente espelhar a partição de inicialização.

Ouvi dizer que esse problema (ter que usar um disco extra para inicializar) é uma motivação pela qual as pessoas mudaram para o ZFS (freeBSD), embora eu possa estar evocando falsamente.

No meu caso, o que fiz foi espelhar um disco inteiro com uma partição. Id est, o segundo disco tinha duas partições: uma ESP, uma partição btrfs. No entanto, estou assumindo que não é assim que o BTRFS-RAID1 pretende ser usado. Então, minha pergunta é concretamente:

  • Essa configuração levará a corrupção ou outras conseqüências não intencionais?
  • Qual seria a melhor solução?
por phbi 14.01.2017 / 17:24

1 resposta

0

Pelo que eu recebi em suas declarações, você tem dois discos com o seguinte layout de disco (ou similar):

sda: GPT
  sda1: Linux MD RAID member
  sda2: Swap
  sda3: BTRFS pool member (RAID 1 allocation policy)

sdb: GPT
  sda1: Linux MD RAID member
  sda2: Swap
  sda3: BTRFS pool member (RAID 1 allocation policy)

md0: ESP (~100mb? VFAT) mounted at /boot/efi (RAID 1 allocation policy)

BTRFS pool: 
  root subvol (mounted at /)
  home subvol (mounted at /home)
  et cetera ad nauseam.

Isso é exatamente o que você quer em quase todos os casos, e se sua configuração não refletir isso, você provavelmente desejará fazer isso refletir isso.

O volume MD do Linux, neste caso, é um RAID 1 entre sda1 e sdb1. Não mexa com sd [a, b] 1 diretamente, e apenas monte o volume MD criado a partir deles (geralmente /dev/md0 ou /dev/md/0 a menos que você tenha sentido a necessidade de dar um nome especial durante a criação). É absolutamente necessário usar o RAID1 para o volume ESP, já que o firmware da placa-mãe espera encontrar esses dados intactos em qualquer disco no momento da inicialização.

As partições de troca serão naturalmente distribuídas, mas uma falha de uma não irá travar seu sistema em quase todos os casos. Não use o MD para swap a menos que você tenha um bom motivo, pois o pager é muito inteligente.

O pool BTRFS será verificado automaticamente, portanto, é melhor especificar esse volume por UUID ao adicionar entradas para ele no arquivo /etc/fstab .

O GRUB2 pode inicializar a partir de qualquer nível de RAID BTRFS. Apenas certifique-se de que o carregador "stage 1" esteja instalado em ambas as tabelas de partição (sda, sdb). Isso é feito quando invocar grub-install /dev/sda (pode ser um pouco diferente dependendo da distribuição).

    
por 23.01.2017 / 03:04