Uno de los servidores que administro ejecuta el tipo de configuración que usted describe. Tiene seis discos duros de 1 TB con un grupo RAIDZ cifrado con LUKS. También tengo dos discos duros de 3 TB en un espejo ZFS cifrado con LUKS que se intercambian cada semana para ser sacados del sitio. El servidor ha estado usando esta configuración durante aproximadamente tres años, y nunca he tenido un problema con ella.
Si necesita ZFS con cifrado en Linux, le recomiendo esta configuración. Estoy usando ZFS-Fuse, no ZFS en Linux. Sin embargo, creo que eso no influiría en el resultado que no sea ZFS en Linux probablemente tendrá un mejor rendimiento que la configuración que estoy usando.
En esta configuración, los datos redundantes se cifran varias veces porque LUKS no está "al tanto" de Z-RAID. En la solución LUKS-on-mdadm, los datos se cifran una vez y simplemente se escriben en discos varias veces.
Tenga en cuenta que LUKS no tiene conocimiento de RAID. Solo sabe que está sentado encima de un dispositivo de bloque. Si usa mdadm para crear un dispositivo RAID y luego luksformat
, es mdadm el que está replicando los datos cifrados en los dispositivos de almacenamiento subyacentes, no LUKS.
La pregunta 2.8 de las preguntas frecuentes de LUKS aborda si el cifrado debe estar sobre RAID o al revés . Proporciona el siguiente diagrama.
Filesystem <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks <- bottom
Debido a que ZFS combina la funcionalidad RAID y el sistema de archivos, su solución deberá parecerse a la siguiente.
RAID-Z and ZFS Filesystem <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks <- bottom
He enumerado las particiones sin formato como opcionales ya que ZFS espera que use el almacenamiento de bloques sin formato en lugar de una partición. Si bien podría crear su zpool usando particiones, no se recomienda porque agregará un nivel de administración inútil, y deberá tenerse en cuenta al calcular cuál será su desplazamiento para la alineación del bloque de partición.
¿No impediría significativamente el rendimiento de escritura? [...] Mi CPU es compatible con Intel AES-NI.
No debería haber un problema de rendimiento siempre que elija un método de cifrado compatible con su controlador AES-NI. Si tiene cryptsetup 1.6.0 o posterior, puede ejecutar cryptsetup benchmark
y ver qué algoritmo proporcionará el mejor rendimiento.
Esta pregunta sobre las opciones recomendadas para LUKS también puede ser valiosa.
Dado que tiene soporte de cifrado de hardware, es más probable que enfrente problemas de rendimiento debido a la desalineación de la partición.
ZFS en Linux ha agregado la ashift
propiedad al zfs
comando para permitirle especificar el tamaño del sector para sus discos duros. De acuerdo con las preguntas frecuentes vinculadas, ashift=12
le diría que está utilizando unidades con un tamaño de bloque de 4K.
Las preguntas frecuentes de LUKS indican que una partición LUKS tiene una alineación de 1 MB. Las preguntas 6.12 y 6.13 discuten esto en detalle y también brindan consejos sobre cómo agrandar el encabezado de partición LUKS. Sin embargo, no estoy seguro de que sea posible hacerlo lo suficientemente grande como para garantizar que su sistema de archivos ZFS se creará en un límite de 4K. Me interesaría saber cómo funciona esto si es un problema que necesita resolver. Como está utilizando unidades de 2 TB, es posible que no se enfrente a este problema.
¿ZFS estará al tanto de fallas de disco cuando opere en contenedores LUKS del mapeador de dispositivos en lugar de dispositivos físicos?
ZFS estará al tanto de las fallas del disco en la medida en que pueda leerlas y escribirlas sin problemas. ZFS requiere almacenamiento en bloque y no le importa ni conoce los detalles de ese almacenamiento y de dónde proviene. Solo realiza un seguimiento de cualquier error de lectura, escritura o suma de comprobación que encuentre. Depende de usted monitorear el estado de los dispositivos de almacenamiento subyacentes.
La documentación de ZFS tiene una sección sobre solución de problemas que vale la pena leer. La sección sobre cómo reemplazar o reparar un dispositivo dañado describe lo que puede encontrar durante un escenario de falla y cómo puede resolverlo. Aquí haría lo mismo que haría para dispositivos que no tienen ZFS. Verifique en el registro del sistema si hay mensajes de su controlador SCSI, controlador HBA o HD, y / o software de monitoreo SMART y luego actúe en consecuencia.
¿Qué hay de la deduplicación y otras características de ZFS?
Todas las características de ZFS funcionarán igual independientemente de si el almacenamiento en bloque subyacente está cifrado o no.
Resumen
- ZFS en dispositivos cifrados con LUKS funciona bien.
- Si tiene cifrado de hardware, no verá un impacto en el rendimiento siempre que use un método de cifrado compatible con su hardware. Úselo
cryptsetup benchmark
para ver qué funcionará mejor en su hardware.
- Piense en ZFS como RAID y sistema de archivos combinados en una sola entidad. Consulte el diagrama ASCII anterior para ver dónde encaja en la pila de almacenamiento.
- Deberá desbloquear cada dispositivo de bloque cifrado con LUKS que utiliza el sistema de archivos ZFS.
- Monitoree el estado del hardware de almacenamiento de la misma manera que lo hace ahora.
- Tenga en cuenta la alineación de bloques del sistema de archivos si está utilizando unidades con bloques de 4K. Es posible que deba experimentar con las opciones de formato de luks u otras configuraciones para obtener la alineación que necesita para una velocidad aceptable.