zfs y capacidad de expansión futura

8

Quiero construir un servidor usando freebsd 9 y zfs. Tengo un hardware viejo (Intel quad core con 8 gb de ram) y estoy dispuesto a comprar dos o tres discos de 1 TB. También tengo un servidor RAID dlink con dos discos de 1 tb ya en él que probablemente dejaría de usar, por lo que esos 2 discos duros estarán disponibles para usar en el servidor zfs una vez que haya movido los datos en ellos (aproximadamente 300 mb actualmente en incursión 1) al nuevo servidor.

Eso me da 2 o 3 discos al principio, con la capacidad de moverme a 4 o 5 discos una vez que configuré con éxito el servidor zfs y copié los datos.

Mi pregunta es cómo configurar mejor el grupo de zfs para que tenga redundancia máxima y espacio de almacenamiento, con la capacidad de moverme a 2 o 3 o más unidades en el futuro cuando estén disponibles. Así que no me importa mucho la velocidad, supongo que mi ethernet (incluso a 1 gb / s) será el factor determinante en la velocidad del sistema de todos modos ...?

Mi pensamiento actual es comprar 2 discos nuevos, configurarlo usando el modo de rayas. Una vez que haya copiado todos los datos de mi dlink nas, eliminaría 1 de esas unidades y la agregaría al grupo convirtiéndola en un espejo de una de las nuevas unidades. Una vez que se reconstruye la matriz, luego movería la otra unidad al grupo para que refleje la segunda unidad nueva ... después de todo lo que haya hecho, debería tener el equivalente aproximado de RAID 10, "espejos rayados".

¿Es eso posible, o hay una mejor manera de configurarlo?

Nuevamente, mi prioridad es la redundancia máxima, el mantenimiento (cambiar unidades viejas por unidades más nuevas / más grandes y aumentar el espacio total de mi grupo), el espacio de almacenamiento disponible y la velocidad; en ese orden.

usuario85116
fuente

Respuestas:

6

Para poder aumentar el espacio de almacenamiento reemplazando solo algunos de los discos, debe usar vdevs duplicados, seccionados (lo que equivale a RAID10).

En su caso, con 4 unidades que significarían trabajar para algo como esto:

    zpool
      mirror
        disk1
        disk2
      mirror
        disk3
        disk4

Esto le proporcionaría 2 TB de almacenamiento (dado que todos los discos son de 1 TB) y una buena redundancia (0% de falla de la matriz después de 1 bloqueo del disco, solo el 33% de la falla de la matriz con 2 bloqueos simultáneos).

Ahora, para llegar allí, compraría esos 2 discos nuevos de 1 TB y los pondría en el grupo:

zpool create zpool mirror disk1 disk2

Luego mueva sus cosas del DLINK al grupo recién creado.

Una vez hecho esto, puede buscar los discos DLINK y agregarlos al grupo para aumentar el almacenamiento:

zpool add zpool mirror disk3 disk4

Si luego desea aumentar aún más el almacenamiento, puede hacerlo agregando más vdevs (preferiblemente también espejos) O reemplazando solo 2 de los 4 discos. El reemplazo va de la siguiente manera:

zpool offline zpool disk3
# remove physical disk3 at this point
# insert new, bigger disk in place of disk3
zpool online zpool disk3
# wait for resilver
# after resilver, do the same with disk4
# your vdev is now bigger, increasing the size of the pool

Ahora, veamos la otra opción. Si hubiera hecho 1 raidz vdev así:

zpool
  raidz
    disk1
    disk2
    disk3
    disk4

Tendría 3 TB de almacenamiento, pero, para aumentar ese almacenamiento simplemente reemplazando los discos (y no agregando), ¡tendría que reemplazar los 4 discos (uno por uno) para aumentar el tamaño del grupo! Además, esta configuración tiene una falla del 100% de la matriz si 2 discos se bloquean simultáneamente.

La configuración de raidz también sería más lenta que la configuración de los espejos rayados. Dado que raidz es más computacionalmente intensivo, mientras que las rayas + espejos mejoran el rendimiento de lectura y escritura. Con los discos duros 'normales' (no SSD), los espejos rayados probablemente llenen su conexión de gigabits para lecturas y escrituras secuenciales, porque ZFS puede combinar el ancho de banda de los discos (recuerde que 1 Gb / s es solo ~ 125 MegaBYTES / s, un estándar 'normal' el disco duro le dará alrededor de 90 megabytes / s). No creo que la configuración de raidz anterior pueda hacer eso en el hardware del consumidor.

Para concluir, la puntuación para los espejos rayados / RAID 10 con su cantidad de discos es:

+ max redundancy
+ maintenance
- available storage space
+ speed

La puntuación para raidz es:

- max redundancy
- maintenance
+ available storage space
- speed

Yo diría que los espejos a rayas ganan :)

Un consejo final: ¡definitivamente lea más sobre cómo hacerlo y por qué antes de comenzar! Quizás incluso simule todo el procedimiento en una máquina virtual. Estoy pensando particularmente en el paso donde agregas el segundo espejo vdev. ¡Si lo hace mal, puede obtener una configuración diferente que esperaba y ZFS es muy implacable en esos casos, ya que no le permite eliminar vdevs del grupo o discos de raidz vdevs! (sin embargo, se permite eliminar discos de vdevs espejo)

Además, esté preparado para el futuro y etiquete y alinee sus discos, para no tener problemas con las unidades de formato avanzado. Para obtener más información sobre las complejidades de las unidades ZFS y 4K, le sugiero que lea este hilo en el foro de FreeBSD .

hopla
fuente
3

Cada grupo de discos que agregue al mismo tiempo tiene su propia política de redundancia, independientemente de agregar o crear un nuevo grupo. 2 discos = espejo, 3 puedes usar RAIDZ (o ser creativo, no lo recomiendo). Es probable que el rendimiento sea más lento que el Ethernet de 1 Gb con unidades como esa. Además, cambiar las unidades por otras más grandes es un poco complicado, aunque es totalmente posible.

Recomiendo leer la Guía de administración de ZFS de principio a fin antes de comenzar.

Chris S
fuente