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

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

UEFI requer inicialização a partir de um ESP que na maioria das vezes é formatado como vFAT. Se bem me lembro, o BTRFS poderia ter subvolumes formatados como ext3/ext4 como o Logical Volume Manager (LVM). No entanto, o UEFI não oferece suporte à 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 inicializar. Minha principal preocupação neste caso é o simples espelhamento RAID1. Neste caso, porém, só posso usar dois discos. Se a placa-mãe estivesse usando 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 das motivações pelas quais as pessoas mudaram para (freeBSD com) ZFS, embora eu possa estar me lembrando 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, presumo que não é assim que o BTRFS-RAID1 pretende ser usado. Então minha pergunta é concretamente:

  • Esta configuração levará à corrupção ou a outras consequências indesejadas?
  • Qual seria uma solução melhor?

Responder1

Pelo que entendi 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ê deseja em quase todos os casos, e se sua configuração não refletir isso, você provavelmente desejará que ela reflita isso.

O volume Linux MD neste caso é um RAID 1 entre sda1 e sdb1. Não mexa diretamente com sd[a,b]1 e monte apenas o volume MD criado a partir deles (geralmente /dev/md0ou /dev/md/0a menos que você sinta a necessidade de dar a ele um nome especial durante a criação). Você absolutamente deve usar 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 swap serão distribuídas naturalmente, mas a falha de uma delas não travará o sistema em quase todos os casos. Não use MD para troca, a menos que tenha um bom motivo, pois o pager é muito inteligente.

O pool BTRFS fará a varredura automaticamente, portanto, é melhor especificar esse volume por UUID ao adicionar entradas para ele no /etc/fstabarquivo.

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

informação relacionada