Grupo ZFS con diferentes tamaños de unidad

9

Estoy planeando configurar un grupo FreeNAS ZFS utilizando dos unidades de 2 tb y dos unidades de 1 tb. Me gustaría tener redundancia de datos de alguna manera. Leí esta publicación que parece sugerir que mis dos opciones son perder 1tb por unidad de 2tb usando RAIDZ o usar este comando (que duplica el espacio requerido para la redundancia de datos):

zfs set copies=2 poolname

¿Hay una mejor manera de manejar esto y lograr algo más como Drobo's Beyond RAID o Netgear's XRAID? Alternativamente, ¿podría dividir cada unidad de 2tb en particiones de 1 tb y poner ambas particiones en el grupo?

Timothy R. Butler
fuente

Respuestas:

13

Hay una mejor manera, crear un grupo único de 3 TB compuesto por dos espejos.

zpool create test mirror disk1 disk2 mirror disk3 disk4

siendo disk1 y disk2 los discos de 1TB y disk3 y disk4 son los de 2 TB.

Editar:

Si desea maximizar el tamaño y no le importa tanto el rendimiento o las mejores prácticas, puede particionar todas las unidades con particiones (o sectores) de igual tamaño y crear un grupo híbrido de 4 TB con un RAIDZ de 4 vdev y un espejo de 2 vdev.

zpool create -f test raidz d0p1 d1p1 d2p1 d3p1 mirror d0p2 d1p2

Tenga en cuenta la opción "-f" requerida para forzar al comando a aceptar la falta de coincidencia del nivel de replicación.

jlliagre
fuente
1
Gracias por la información. Entonces, ¿eso sería como un reflejo normal donde la redundancia "cuesta" 100% extra, parece? ¿Hay alguna forma de lograr un "costo" del 50% similar a RAID5 para la paridad? ¿Cómo es el rendimiento de esta configuración frente al rendimiento de una configuración ZRAID / RAID5 con 4 unidades de igual tamaño?
Timothy R. Mayordomo
@ TimothyR.Butler No puede crear un espejo de 1TB y aplicar RAIDZ sobre los dos 2TB y el espejo de 2TB, simplemente no funciona de esa manera. Para usar RAIDZ necesita tener unidades de igual tamaño (o cederá el espacio extra en las unidades más grandes, o tendrá que comenzar a acceder a configuraciones no recomendadas). Las dos configuraciones de espejo recomendadas por estas respuestas son sus mejores configuraciones recomendadas.
Chris S
Gracias jilliagre y @chriss por los comentarios. Creo que puedo comprar dos unidades más y llamarlo por día. Sin embargo, el segundo comando que acaba de agregar jilliagre es intrigante ... ¿Sería correcto asumir que el rendimiento sería tan bueno o mejor que cualquier cosa mencionada anteriormente si hiciera un RAIDZ de 4x2TB?
Timothy R. Butler
@ TimothyR.Butler Un RAIDZ de 4x2TB tendría un ligero impacto en el rendimiento en comparación con los espejos duales de 2x2TB (RAID10 básicamente). Esos dos tendrían el mejor rendimiento de todo lo que hemos discutido aquí.
Chris S
4

Esto depende de la cantidad de almacenamiento de datos que necesite. Puede crear dos grupos de 1TB y 2TB cada uno, utilizando RAID 1. De lo contrario, vea si puede adquirir discos del mismo tamaño e intente RAID 1 + 0 o RAIDZ.

ewwhite
fuente
Gracias. ¿Serían dos grupos mejores que uno con dos RAIDZ?
Timothy R. Butler
@ TimothyR.Butler Cada espejo de discos es un vdev en ZFS. No puede eliminar vdevs de un grupo zfs; así que una vez que el grupo tenga dos espejos, siempre debe tener al menos esos dos (puede agregar más, pero no eliminar). Si alguna vez quisiera cambiar a algo con menos vdevs, tendría que destruir el grupo y comenzar desde cero. Entonces, al comenzar con dos zpools, tiene la flexibilidad de separarlos más tarde si lo desea, pero pierde la flexibilidad de compartir el espacio de almacenamiento automáticamente (tendría que colocar archivos en un grupo u otro a medida que se llenan).
Chris S
@ewwhite, sé lo que quieres decir con "RAID 1 + 0", pero no hay forma de hacerlo explícitamente en ZFS ... algunos pueden estar confundidos por la diferencia.
Chris S
2

De la guía de administración de ZFS:

"Los dispositivos pueden ser segmentos individuales en un disco preformateado, o pueden ser discos enteros que ZFS formatea como un único segmento grande".

Entonces, sí, podría crear dos particiones de 1 TB en esas unidades de 2 TB, usarlas para RAID-Z vdev y el espacio restante para el almacenamiento no redundante.

Sin embargo, de acuerdo con la Guía de mejores prácticas de ZFS, puede experimentar un rendimiento degradado:

Para los sistemas de producción, use discos completos en lugar de sectores para las agrupaciones de almacenamiento por los siguientes motivos:

  • Permite a ZFS habilitar la memoria caché de escritura del disco para aquellos discos que tienen memorias caché de escritura. Si está utilizando una matriz RAID con una memoria caché de escritura no volátil, entonces esto no es un problema y se corta, ya que vdevs aún debería beneficiarse de la memoria caché de escritura de la matriz.

  • Para el almacenamiento adjunto JBOD, que tiene un caché de disco habilitado, permite que se emitan algunas escrituras síncronas como escrituras múltiples de disco seguidas de un solo vaciado de caché que permite al controlador de disco optimizar la programación de E / S. Por separado, para sistemas que carecen de soporte adecuado para SATA NCQ o SCSI TCQ, tener un caché de escritura habilitado permite al host emitir una operación de E / S única de forma asincrónica desde E / S física.

  • El proceso de recuperación para reemplazar un disco con fallas es más complejo cuando los discos contienen sistemas de archivos ZFS y UFS en segmentos.

Terlisimo
fuente
Maravilloso trabajo de cortar y pegar, pero todo eso ya se ha cubierto en las otras dos respuestas.
Chris S