Primeiro, a ordem de LUKS e LVM depende se você deseja ter senhas LUKS diferentes ou outras configurações para LVs diferentes. Se, digamos, você precisar configurar senhas diferentes para LVs diferentes, você definitivamente precisará colocar LUKS no topo do LVM. Por outro lado, se todos os LVs compartilharem a mesma senha e configurações como keylen, convém ter LUKS abaixo do LVM, para que você não precise lidar com a sobrecarga de ter mais de uma partição LUKS (pense no que você teria que fazer quando você precisar alterar a senha).
Segundo, você quase sempre deseja que o RAID seja o nível mais baixo, para que, quando um disco morrer, ele possa ser trocado com facilidade e transparência. Se você configurasse o RAID sobre o LVM, teria que substituir um PV quando um disco morrer, isso seria uma grande dor no pescoço. Também o RAID sobre o LVM derrotaria totalmente a flexibilidade do LVM. Você provavelmente precisará configurar a segunda camada do LVM sobre o RAID novamente!
Portanto, como na maioria dos casos as pessoas só precisam usar uma única senha, isso seria suficiente:
RAID -> LUKS -> LVM -> ext4
Em alguns casos, pode ser necessário usar o LVM para combinar vários dispositivos RAID em um grande volume, e você pode:
RAID -> LVM -> LUKS (-> LVM) -> ext4
Teoricamente, a ordem não deve afetar muito o desempenho, se todas as camadas estiverem configuradas corretamente e, na prática, eu não vi essa configuração ter um desempenho particularmente ruim. O mais importante é provavelmente o alinhamento:
- verifique se suas partições estão alinhadas com 1 MB (muito importante para SSD);
- para camada RAID, escolha sabiamente o tamanho do pedaço ;
- para LVM, certifique-se de definir
--dataalignment
o tamanho do pedaço RAID ( isso pode ser útil).
Além disso, se no SSD, certifique-se de permitir que LUKS TRIM / DISCARD pass-through pela adição rd.luks.options=discard
de /etc/default/grub
e discard
para /etc/crypttab
(Estes são o que eu faço no Red Hat / Fedora Linux. Pode ser um pouco diferente em Debian.) LVM e RAID deve descartar o apoio automaticamente se você usar um kernel new-ish.
Obviamente, estas são apenas diretrizes gerais. Se você tiver necessidades especiais, atualize sua pergunta ou comentário aqui.