JBOD: ¿Cómo Raid1 unidades con diferentes capacidades? ¿Btrfs, ZFS?

JBOD: ¿Cómo Raid1 unidades con diferentes capacidades? ¿Btrfs, ZFS?

Tengo selección de discos duros, con capacidades:

1 TB
500 GB
320 GB
250 GB

Me gustaría hacer Raid1 a partir de ellos, en el sentido de que esa copia de cualquier dato estará siempre en dos de los cuatro discos que tengo. El problema es que todas las unidades tienen diferentes capacidades. En el pasado, estuve ejecutando Raid1 mdadm 2x 2TB normal, Btrfs con 2x 2TB después de migrar desde mdadm. No me importa volver a usar mdadm, o Btrfs, o ZFS, aunque no sé nada sobre eso.

¿Cuál sería el mejor sistema de archivos o utilidad para mí que se ajuste a este criterio?

  1. tener dos copias de archivos en todo momento, de modo que si un disco muere, no pierdo datos
  2. tener la mayor cantidad posible de espacio disponible y aún cumplir con los criterios del punto 1

¿Qué debo usar? Tengo la sensación de que Btrfs Raid1 se encargará de esto y almacenará exactamente dos copias de cada archivo en los cuatro discos duros, pero no estoy seguro. Tengo Linux en una computadora AMD64, con kernel 5.10.

Cualquier consejo bienvenido.

EDITAR - ¡SOLUCIÓN!

¡Muchas gracias por todas vuestras respuestas! Así que seguí adelante con la configuración de Btrfs Raid1. Fue un proceso que llevó mucho tiempo, pero fue muy sencillo, porque ya estoy familiarizado con Btrfs y lo uso a diario. Pensé que no perdería espacio físico con Raid1, manteniendo al mismo tiempo la relación de redundancia de 2. Utilicé esta calculadora:https://carfax.org.uk/btrfs-usage/

Tamaños de mi dispositivo:

931.51 GiB
465.76 GiB
298.09 GiB
232.89 GiB

Total space for files in Raid1 mode: 963 GiB (all space used)
Total space for files in Raid5 mode: 995 GiB (466 GiB unusable on biggest drive)

Con Raid1, ahora tengo 719,5 GiB de datos almacenados y 241,6 GiB libres, para un total de 961,1 GiB, lo que coincide con lo que decía la calculadora. Y puedo agregar/quitar unidades más tarde a voluntad. Asombroso.

Estoy tentado a optar por Raid5, porque proporciona una ganancia teórica de velocidad de lectura de 4x, mientras que Raid1 ofrece 2x. Pero escuché que es un poco experimental en este momento y no se recomienda para uso diario, ¿es correcto? ¿Cuál es su estado en el kernel 5.10? ¿Alguien lo usa y puede compartir su experiencia?

Después de construir la matriz, agregar todas las unidades una por una y migrar todos los datos (tengo copias de seguridad), hice una limpieza completa y todo está bien:

$ sudo btrfs scrub start -Bd /home

Scrub device /dev/sda (id 1) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         2:38:51
Total to scrub:   724.03GiB
Rate:             77.53MiB/s
Error summary:    no errors found

Scrub device /dev/sdd (id 2) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         1:52:39
Total to scrub:   374.03GiB
Rate:             56.57MiB/s
Error summary:    no errors found

Scrub device /dev/sdc (id 3) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:48:06
Total to scrub:   207.00GiB
Rate:             73.09MiB/s
Error summary:    no errors found

Scrub device /dev/sdb (id 4) done
Scrub started:    Thu Jun 17 10:10:38 2021
Status:           finished
Duration:         0:30:00
Total to scrub:   143.00GiB
Rate:             80.89MiB/s
Error summary:    no errors found

¡Muy feliz!

EDITAR - COMENTARIOS PARA @Marcus Müller:

"Observaciones: ¿estás seguro de que quieres esto? 320 GB y 250 GB probablemente no sean unidades muy nuevas (...)"

Tienes toda la razón, ¡son discos muy antiguos! Quité mis 2 unidades Seagate Barracuda Compute actuales de 2 TB que tenía en Btrfs Raid1 durante los últimos años, para colocar estas unidades aleatorias 4x antiguas. Barracudas van a mi servidor, que necesita confiabilidad total, tengo 2x SSD de 250 GB para / allí (Ext4 mdadm) y 2x HDD TB para /home y /var (Btrfs Raid1), y con RAM ECC. Otros dos Barracudas se unirán a los dos primeros, para el modo Btrfs Raid1 o posiblemente Raid10 o Raid5.

Ahora hay 4 unidades antiguas en mi escritorio y constan de:

Western Digital Blue Mobile, WDC WD10JPVX-60JC3T0
[1.00 TB, 4K sectors, SATA 3.0, 6.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2496

Toshiba 2.5" HDD MK..65GSX, TOSHIBA MK5065GSX
[500 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 5400 RPM, 2.5"]
Power_On_Hours 2519

Seagate Momentus Thin, ST320LT007-9ZV142
[320 GB, 4K sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 2.5"]
Power_On_Hours 5152

Seagate Barracuda 7200.12,ST3250318AS
[250 GB, 512 sectors, SATA 2.6, 3.0 Gb/s, 7200 RPM, 3.5"]
Power_On_Hours 6591

En realidad, la confiabilidad no es un problema, tengo copias de seguridad, pero no quiero sorpresas dolorosas demasiado rápido, por lo que la redundancia básica de 2.0 me ahorrará problemas si una de las unidades muere dentro de aproximadamente un año, simplemente colocaré otra. uno o dos.

Respuesta1

Simplemente tendría un volumen físico LVM en cada una de estas unidades:

pvcreate /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

luego cree un grupo de volúmenes a partir de estos:

vgcreate myvolumegroup /dev/drive1 /dev/drive2 /dev/drive3 /dev/drive4

Finalmente, cree un volumen lógico que tenga la propiedad de que cada bloque tenga un espejo:

lvcreate --mirrors 1 -l100%FREE  -n myvolume myvolumegroup

¡Felicidades! Ahora tienes un dispositivo de bloqueo que puedes usar concualquiersistema de archivos que desee, por ejemplo, btrfs o XFS:

mkfs.xfs /dev/myvolumegroup/myvolume
mount /dev/myvolumegroup/myvolume /mnt

debería funcionar.


Observaciones: ¿eres tú?seguro¿Tu quieres esto? 320 GB y 250 GB probablemente no sean unidades muy nuevas, y solo obtendrás (160+125) GB = 285 GB de almacenamiento adicional al incluir aquí estas unidades potencialmente muy antiguas.

Usar unidades antiguas es algo contrario a la razón por la que desearía comenzar con RAID1: disponibilidad de datos. Además, considere usar RAID5 en su lugar ( man lvmraidpodría ayudarlo con eso).

Respuesta2

Úselo btrfsporque, a diferencia de ZFS, puede manejar eficientemente unidades de diferentes tamaños. Terminaría con aproximadamente la capacidad total de todas las unidades dividida por dos (con 2 copias para redundancia). Aproximadamente 1 TB. Sin contar la compresión transparente.

ZFS simplemente crearía un vdev con una capacidad delpequeñísimodispositivo, pero con 4 unidades, harías dos vdevs espejo. por ejemplo, un vdev mirror-1 con 1 TB y 500 GB y un vdev mirror-2 con 320 GB y 250 GB. Para minimizar el desperdicio de espacio, puede particionar las unidades de 1 TB y 320 GB para que tengan una partición de 500 GB y una partición de 250 GB que coincidan con sus unidades espejo. Eso le daría al grupo una capacidad total de 750 GB (en una configuración similar a RAID1+0) antes de la compresión. El espacio restante (500 GB y 70 GB) en esas unidades se puede usar para otra cosa, como cosas que no te interesan porque se descargan y se hacen "copias de seguridad en Internet".

Si puede permitírselo, le recomiendo reemplazar la unidad de 250 GB por otra de 1 TB. Eso sería genial para zfs y bastante bueno para btrfs, ya que aumentaría la capacidad a aproximadamente 1,3 TB para cualquiera de ellos, antes de la compresión transparente. Con mucho menos espacio "desperdiciado".

No use LVM o mdadm para realizar RAID-1/duplicación, btrfs puede hacerlo por sí mismo, y frustraría gran parte del propósito de usar un sistema de archivos de corrección de errores como btrfs.

Funciones como instantáneas y compresión transparente seguirían funcionando, pero perdería la capacidad de cualquiera de esos sistemas de archivos para corregir errores, porque efectivamente le está dando una sola unidad.

poderuse software o hardware raid en ZFS o btrfs si lo desea, pero a) no es necesario y b) no es una buena idea; de hecho, es una idea terrible. Es más trabajoso y más complejo de configurar, elimina una característica vital y no proporciona ningún beneficio compensatorio.

Si desea utilizar LVM o mdadm, utilice ext4(o, mejor aún, xfs) encima de ellos.

Por cierto, todavía no creo que confiaría en btrfs para RAID-5/6, pero está absolutamente bien para espejos tipo RAID-1 o RAID-10.

información relacionada