btrfs RAID1 con diferentes tamaños de disco

btrfs RAID1 con diferentes tamaños de disco

Tengo un sistema de archivos btrfs existente en un disco de 2 TB y quiero agregar otro disco de 5 TB como redundancia.

Puedo simplemente formatear el nuevo disco con btrfs y agregar el dispositivo con

btrfs device add /dev/sdX /mymountpoint
btrfs filesystem balance start -dconvert=raid1 -mconvert=raid1 /mymountpoint

Terminaré con 2 TB de espacio utilizable en disco y todo en ambos discos. Sin embargo, podría tener más redundancia si pudiera usar los 3 TB de repuesto en mi disco de 5 TB de modo que cada escritura vaya dos veces al disco más grande (el disco de 2 TB almacena todo una vez, el de 5 TB almacena todo dos veces). es posible?

Soy consciente de las desventajas como mayor latencia, velocidad reducida, etc.

Respuesta1

Técnicamente, si crea dos particiones de 2 TB cada una en el disco más grande, podrá usarlas junto con el disco más pequeño (osu partición) como tres dispositivos de igual (o casi igual) tamaño.

Incluso si estás de acuerdo con las desventajas, no lo hagas. Esta es la razón:

btrfs primero combina todos los dispositivos en un grupo de almacenamiento y luego duplica los fragmentos a medida que se crean los datos del archivo. RAID-1 se define actualmente como "2 copias de todos los datos en diferentes dispositivos". Esto se diferencia de MD-RAID y dmraid en que hacen exactamente n copias para n dispositivos. En un btrfs RAID-1 en tres dispositivos de 1 TB obtenemos 1,5 TB de datos utilizables. Debido a que cada bloque solo se copia en 2 dispositivos, escribir un bloque determinado solo requiere escribir exactamente en 2 dispositivos; La lectura se puede realizar a partir de uno solo.

(fuente)

Por lo tanto, puede suceder (y ocurrirá) que algunos datos terminen en las dos particiones del disco más grande pero no en el más pequeño. Supongo que esa "redundancia del pobre" a veces puede ayudar si el disco más grande falla parcial/localmente. Si falla en su totalidad, los datos que estén almacenados en él dos veces se perderán.

Lo que desea se puede hacer con el enfoque "n copias para n dispositivos" (nuevamente: dos particiones en el disco más grande son dispositivos en este contexto). Quizás te intereseRAID con LVM vs MDRAID: pros y contras.

Si yo fuera tú, no haría esto. En esta configuración, cada operación de escritura involucra las dos particiones en el mismo dispositivo físico. Incluso si escribe secuencialmente en ambas particiones, estas son escrituras simultáneas que requieren que los cabezales se muevan hacia adelante y hacia atrás; a menos que consigas configurar específicamente las particiones, de modo que las escrituras correspondientes se realicen mediante dos cabezales diferentes en la misma posición del brazo común. ¿El firmware puede escribir usando dos cabezales al mismo tiempo? ¿Los datos siempre llegarán a ambas particiones de forma semisimultánea en primer lugar? ¿No se programará ninguna operación de lectura entre las escrituras correspondientes en las dos particiones? Dudo de todo esto.

Por lo tanto, es razonable suponer que los cabezales viajarán más que en una configuración sin RAID. Esto probablemente reducirá la vida útil del brazo. Cuando falla mecánicamente, falla todo el disco. Entonces no importa cuántas copias tuvieras; lo que queda es sólo el disco más pequeño.

Conclusión: puede ser que su idea aumente el riesgo de falla del tipo que (cuando ocurre) haga que la redundancia adicional sea completamente irrelevante.

Respuesta2

No existe una forma sencilla de implementar esto con btrfs. Sin embargo, lo más importante es que es una configuración peligrosa que no debe utilizarse.

El propósito de RAID1 es la redundancia. Almacenar datos dos veces en un solo disco no proporciona redundancia: si ese disco falla, sus datos se pierden.

información relacionada