Estoy planeando configurar un conjunto de unidades 3x 2TB 7200rpm como un grupo Z-RAID cifrado con LUKS en Linux (para una solución NAS).
Entiendo que el problema en cuestión es que la única forma de lograr esto es con luksFormat
cada dispositivo físico y luego ensamblar un zpool de contenedores LUKS desbloqueados.
Tengo las siguientes preocupaciones con esto:
¿No impediría significativamente el rendimiento de escritura? 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. Mi CPU es compatible con Intel AES-NI.
¿ZFS estará al tanto de fallas de disco cuando opere en contenedores LUKS del mapeador de dispositivos en lugar de dispositivos físicos? ¿Qué hay de la deduplicación y otras características de ZFS?
fuente
Respuestas:
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.
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.
Debido a que ZFS combina la funcionalidad RAID y el sistema de archivos, su solución deberá parecerse a la siguiente.
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 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 alzfs
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 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.
Todas las características de ZFS funcionarán igual independientemente de si el almacenamiento en bloque subyacente está cifrado o no.
Resumen
cryptsetup benchmark
para ver qué funcionará mejor en su hardware.fuente
geli
se utiliza para crear un dispositivo cifrado y los datos de texto sin formato se ponen a disposición a través de un segundo dispositivo que utiliza ZFS. Vea el segundo punto en doc.freenas.org/index.php/Volumes#Encryption .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) encima del bloque cifrado dispositivo.
fuente