
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/md0
ou /dev/md/0
a 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/fstab
arquivo.
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).