Um dos servidores que administro executa o tipo de configuração que você descreve. Ele possui seis discos rígidos de 1 TB com um pool RAIDZ criptografado por LUKS. Também tenho dois discos rígidos de 3 TB em um espelho ZFS criptografado por LUKS que são trocados toda semana para serem retirados do local. O servidor usa essa configuração há cerca de três anos e nunca tive problemas com ela.
Se você precisar do ZFS com criptografia no Linux, recomendo esta configuração. Estou usando o ZFS-Fuse, não o ZFS no Linux. No entanto, acredito que não teria influência no resultado, exceto o ZFS no Linux, provavelmente terá um desempenho melhor do que a instalação que estou usando.
Nesta configuração, os dados redundantes são criptografados várias vezes porque LUKS não está "ciente" do Z-RAID. Na solução LUKS-on-mdadm, os dados são criptografados uma vez e meramente gravados em discos várias vezes.
Lembre-se de que LUKS não tem conhecimento de RAID. Só sabe que está em cima de um dispositivo de bloco. Se você usa o mdadm para criar um dispositivo RAID e, em seguida luksformat
, ele, é o mdadm que está replicando os dados criptografados nos dispositivos de armazenamento subjacentes, não no LUKS.
A pergunta 2.8 das perguntas frequentes do LUKS aborda se a criptografia deve estar sobre o RAID ou o contrário . Ele fornece o diagrama a seguir.
Filesystem <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks <- bottom
Como o ZFS combina a funcionalidade do RAID e do sistema de arquivos, sua solução terá a aparência da seguinte.
RAID-Z and ZFS Filesystem <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks <- bottom
Eu listei as partições brutas como opcionais, pois o ZFS espera que ele use o armazenamento em bloco bruto em vez de uma partição. Embora você possa criar seu zpool usando partições, isso não é recomendado, pois adicionará um nível inútil de gerenciamento e precisará ser levado em consideração ao calcular qual será o deslocamento para o alinhamento de blocos de partição.
Não impediria significativamente o desempenho da gravação? [...] Minha CPU suporta Intel AES-NI.
Não deve haver um problema de desempenho desde que você escolha um método de criptografia suportado pelo driver AES-NI. Se você tiver o cryptsetup 1.6.0 ou mais recente, poderá executar cryptsetup benchmark
e ver qual algoritmo fornecerá o melhor desempenho.
Esta pergunta sobre as opções recomendadas para LUKS também pode ser útil .
Como você tem suporte à criptografia de hardware, é mais provável que enfrente problemas de desempenho devido ao desalinhamento da partição.
O ZFS no Linux adicionou a ashift
propriedade ao zfs
comando para permitir que você especifique o tamanho do setor para seus discos rígidos. De acordo com o FAQ vinculado, ashift=12
diria que você está usando unidades com um tamanho de bloco de 4K.
As Perguntas frequentes do LUKS afirmam que uma partição LUKS tem um alinhamento de 1 MB. As perguntas 6.12 e 6.13 discutem isso em detalhes e também fornecem conselhos sobre como aumentar o cabeçalho da partição LUKS. No entanto, não tenho certeza de que seja possível torná-lo grande o suficiente para garantir que o seu sistema de arquivos ZFS seja criado em um limite de 4K. Eu estaria interessado em saber como isso funciona para você, se esse é um problema que você precisa resolver. Como você está usando unidades de 2 TB, você pode não enfrentar esse problema.
O ZFS estará ciente das falhas de disco ao operar nos contêineres LUKS do mapeador de dispositivos em oposição aos dispositivos físicos?
O ZFS estará ciente das falhas de disco na medida em que possa ler e gravar nelas sem problemas. O ZFS requer armazenamento em bloco e não se importa ou conhece as especificidades desse armazenamento e de onde ele vem. Ele monitora apenas os erros de leitura, gravação ou soma de verificação que encontrar. Cabe a você monitorar a integridade dos dispositivos de armazenamento subjacentes.
A documentação do ZFS possui uma seção sobre solução de problemas que vale a pena ler. A seção sobre substituição ou reparo de um dispositivo danificado descreve o que você pode encontrar durante um cenário de falha e como resolvê-lo. Você faria o mesmo aqui para dispositivos que não possuem ZFS. Verifique o syslog para obter mensagens do seu driver SCSI, controlador HBA ou HD e / ou software de monitoramento SMART e, em seguida, aja de acordo.
E quanto à desduplicação e outros recursos do ZFS?
Todos os recursos do ZFS funcionarão da mesma forma, independentemente de o armazenamento em bloco subjacente estar criptografado ou não.
Sumário
- O ZFS em dispositivos criptografados por LUKS funciona bem.
- Se você tiver criptografia de hardware, não verá um desempenho atingido desde que use um método de criptografia suportado pelo seu hardware. Use
cryptsetup benchmark
para ver o que funcionará melhor em seu hardware.
- Pense no ZFS como RAID e sistema de arquivos combinados em uma única entidade. Consulte o diagrama ASCII acima para saber onde ele se encaixa na pilha de armazenamento.
- Você precisará desbloquear cada dispositivo de bloco criptografado por LUKS que o sistema de arquivos ZFS usa.
- Monitore a integridade do hardware de armazenamento da mesma maneira que faz agora.
- Lembre-se do alinhamento de blocos do sistema de arquivos se você estiver usando unidades com blocos de 4K. Pode ser necessário experimentar opções do luksformat ou outras configurações para obter o alinhamento necessário para uma velocidade aceitável.