Melhor ordem de RAID, LVM e LUKS

9

Vou instalar um servidor de arquivos com o Debian GNU / Linux 8.

Eu quero ter o software RAID-1 usando o mdadm, bem como discos criptografados usando o LUKS. Eu também gosto da flexibilidade de ter LVM.

Existem diferentes maneiras de fazer isso. Uma maneira é: Primeiro, configure o RAID-1 usando o mdadm. Em seguida, configure os PVs do LVM para cobrir o / dev / mdX criado. Em seguida, configure os LVs e criptografe os que estiverem usando o LUKS. Em seguida, formate-os com um sistema de arquivos, digamos ext4. Isso resulta em um layout como este:

RAID --> LVM --> LUKS --> ext4

Ou eu poderia fazer isso em uma ordem diferente:

RAID --> LUKS --> LVM --> ext4

Ou talvez até:

LVM --> RAID --> LUKS --> ext4

E talvez até mesmo uma ordem diferente.

Quais são os benefícios e desvantagens das diferentes abordagens? O que dá melhor desempenho, segurança, facilidade de manutenção, etc.?

Existe uma "melhor maneira" de fazer isso?

    
por Thomas 28.03.2017 / 21:02

2 respostas

11

Primeiro, a ordem de LUKS e LVM depende se você deseja ter diferentes senhas LUKS ou outras configurações para diferentes LVs. Se disser, você precisa configurar senhas diferentes para diferentes LVs, você definitivamente precisa colocar o LUKS em cima do LVM. Por outro lado, se todos os LVs compartilham a mesma senha e configurações como o keylen, você desejaria ter o LUKS abaixo do LVM, para que você não tenha que lidar com a sobrecarga de ter mais de uma partição LUKS (pense no que você teria que fazer quando você precisa mudar a senha).

Segundo, você quase sempre quer que o RAID seja o nível mais baixo, de modo que quando um disco morre, ele pode ser trocado com facilidade e transparência. Se você tivesse que configurar o RAID em cima do LVM, você teria que substituir um PV quando um disco morre, o que seria uma grande dor no pescoço. Também RAID no topo do LVM iria derrotar 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 precisam usar apenas uma senha, isso seria suficiente:

RAID --> LUKS --> LVM --> ext4

Em alguns casos, você pode precisar usar o LVM para combinar vários dispositivos RAID em um grande volume, então você pode fazer:

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:

  1. verifique se suas partições estão alinhadas em 1 MB (muito importante para o SSD);
  2. para a camada RAID, escolha tamanho do bloco com sabedoria;
  3. para o LVM, certifique-se de definir --dataalignment para corresponder ao tamanho do bloco de RAID ( isso pode ser útil ).

Além disso, no caso de SSD, certifique-se de ativar a passagem LUKS TRIM / DISCARD adicionando rd.luks.options=discard a /etc/default/grub e discard a /etc/crypttab (Isso é o que eu faço no Red Hat / Fedora Linux. ser um pouco diferente no Debian.) O LVM e o RAID devem suportar automaticamente o descarte se você usar um kernel new-ish.

Claro, essas são apenas diretrizes gerais. Se você tiver necessidades especiais, fique à vontade para atualizar sua pergunta ou comentar aqui.

    
por 28.03.2017 / 21:51
2

Se você quiser todos os RAID, LUKS e LVM, eu recomendaria RAID -> LUKS -> LVM -> FS . RAID --> LVM --> LUKS --> LVM --> FS não é melhor que RAID -> LUKS -> LVM - para estender volumes basta adicionar mais RAID -> LUKS devices a um grupo de volumes.

RAID --> LVM --> LUKS --> FS - criptografando apenas determinados volumes lógicos têm um recurso de não criptografar tudo por padrão (pode ser visto como vantagem ou desvantagem), mas isso tornará mais fácil extender o FS raiz.

Estender o LUKS em cima de volumes lógicos é uma fonte comum de problemas quando os usuários os estendem / redimensionam na ordem errada. Ter LUKS em todo o dispositivo md RAID irá simplificar o redimensionamento - adicionar novo dispositivo md, criar LUKS em cima disso, adicionar dispositivo a / etc / crypttab (pelo menos em clones Fedora e RHEL) e estender o seu grupo de volumes. Se o FS raiz estiver no grupo de volume, você precisará adicionar outra entrada rd.luks.uuid ao cmdline do kernel (editar / etc / default / grub e gerar novamente o grub.cfg.)

LUKS -> RAID geralmente está errado - os dados serão criptografados várias vezes, consumindo mais ciclos de CPU sem ganho. Há também uma chance de substituir por engano um disco com falha por um novo sem configurar o LUKS quando um disco falhar.

Estendendo e encolhendo:

Ao estender sempre, vá da parte inferior da pilha ao encolher a partir do topo.

Exemplo:

Estendendo RAID -> LVM -> LUKS -> FS (as duas primeiras etapas são opcionais se houver espaço livre suficiente no grupo de volumes):

  1. Adicione novos discos e crie md RAID.
  2. Adicione o dispositivo mdX ao grupo de volumes.
  3. Estenda o volume lógico.
  4. Estender o dispositivo LUKS.
  5. Estender FS.

Diminuindo RAID -> LVM -> LUKS -> FS :

  1. Reduzir FS.
  2. Reduz o dispositivo LUKS.
  3. Diminuir o volume lógico.
por 20.04.2017 / 10:40