GNU/Linux >> Tutoriales Linux >  >> Linux

Cifrado ZFS RAID y LUKS en Linux

Solución 1:

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 sacarlos del sitio. El servidor ha estado utilizando esta configuración durante unos tres años y nunca he tenido ningún 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, ya que 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 es "consciente" de Z-RAID. En la solución LUKS-on-mdadm, los datos se cifran una vez y simplemente se escriben en los discos varias veces.

Tenga en cuenta que LUKS no está al tanto 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 replica 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 por encima de 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 del 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 utilice almacenamiento de bloques sin formato en lugar de una partición. Si bien puede 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 compensación 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 encriptación compatible con su controlador AES-NI. Si tiene cryptsetup 1.6.0 o más reciente, puede ejecutar cryptsetup benchmark y vea 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 el ashift propiedad al zfs comando que le permite 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 de LUKS tiene una alineación de 1 MB. Las preguntas 6.12 y 6.13 analizan esto en detalle y también brindan consejos sobre cómo hacer que el encabezado de la partición LUKS sea más grande. Sin embargo, no estoy seguro de que sea posible hacerlo lo suficientemente grande como para garantizar que su sistema de archivos ZFS se cree en un límite de 4K. Me interesaría saber cómo funciona esto para usted si este es un problema que necesita resolver. Dado que está utilizando unidades de 2 TB, es posible que no enfrente este problema.

¿ZFS estará al tanto de las fallas del disco cuando opere en contenedores LUKS de 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 se preocupa 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 la salud 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 podría encontrar durante un escenario de falla y cómo podría resolverlo. Aquí haría lo mismo que haría con los dispositivos que no tienen ZFS. Verifique el syslog en busca de 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 funciones de ZFS?

Todas las características de ZFS funcionarán de la misma manera, independientemente de si el almacenamiento de bloques subyacente está encriptado o no.

Resumen

  1. ZFS en dispositivos cifrados con LUKS funciona bien.
  2. Si tiene encriptación de hardware, no verá un impacto en el rendimiento siempre que use un método de encriptación compatible con su hardware. Usa cryptsetup benchmark para ver qué funcionará mejor en su hardware.
  3. Piense en ZFS como RAID y sistema de archivos combinados en una sola entidad. Consulte el diagrama ASCII anterior para saber dónde encaja en la pila de almacenamiento.
  4. Deberá desbloquear cada dispositivo de bloque cifrado con LUKS que utiliza el sistema de archivos ZFS.
  5. Supervise el estado del hardware de almacenamiento de la misma manera que lo hace ahora.
  6. Tenga en cuenta la alineación de bloques del sistema de archivos si utiliza unidades con bloques de 4K. Es posible que deba experimentar con las opciones de formato luks u otras configuraciones para obtener la alineación que necesita para una velocidad aceptable.

Actualización de febrero de 2020

Han pasado seis años desde que escribí esta respuesta. ZFS en Linux v0.8.0 es compatible con el cifrado nativo, que debe tener en cuenta si no tiene una necesidad específica de LUKS.

Solución 2:

Una implementación alternativa es crear un dispositivo de bloque ZVOL (http://zfsonlinux.org/example-zvol.html), usar LUKS para cifrar el ZVOL recién creado y luego crear un sistema de archivos ext4 (u otro) sobre el bloque cifrado. dispositivo.


Linux
  1. Lo que Stratis aprendió de ZFS, Btrfs y Linux Volume Manager

  2. Cómo usar instantáneas, clones y replicación en ZFS en Linux

  3. Cómo instalar y configurar ZFS en Linux usando Debian Jessie 8.1

  4. Averigüe el tipo y modelo de controlador RAID en Linux

  5. uso de comodines de linux en cp y mv

Kernel de Linux y sus funciones

Instalar y configurar Ansible en Linux

Instalación y configuración de Jenkins en Linux

RAID de Linux

Descripción general de RAMFS y TMPFS en Linux

20 mejores programas de cifrado de discos y archivos para escritorio Linux