Saltar al contenido

RAID y JBOD

Qué se gana agrupando discos, cómo reparte cada nivel RAID los datos y la paridad, cuántos fallos tolera, cuánta capacidad neta deja, y en qué se diferencia JBOD de todo lo anterior.

Qué es un RAID y qué se persigue con él

RAID significa conjunto redundante de discos independientes. La idea es coger varias unidades físicas y presentarlas al sistema operativo como una sola unidad lógica, de forma que este vea un único volumen y no se entere de cuántos discos hay debajo.

Se hace por dos motivos que conviene no mezclar, porque cada nivel RAID los combina en una proporción distinta: rendimiento, porque escribir en cuatro discos a la vez va más rápido que en uno; y seguridad, porque guardar información redundante permite seguir funcionando cuando un disco se estropea.

Los discos de un RAID pueden ser de distinto tamaño, pero el conjunto se comporta como si todos midieran lo que el más pequeño: el exceso de los grandes queda sin usar. Es la regla que hay que aplicar antes que ninguna otra al calcular una capacidad neta.

A un conjunto se le puede añadir además un disco de reserva o spare, que no guarda datos mientras todo va bien y entra automáticamente en funcionamiento cuando otro falla, para que la reconstrucción empiece sin esperar a que llegue un técnico.

Manda siempre el disco más pequeño. Un RAID 0 con una unidad de 250 GB y otra de 750 GB rinde 500 GB, no un tera.

Para el examen

  • Qué persigue: rendimiento y seguridad

  • Regla del tamaño: manda siempre el disco más pequeño

  • Disco spare: de reserva; entra solo cuando otro falla

RAID 0 y RAID 1: los dos extremos

Los dos primeros niveles son los casos puros, uno por cada motivo. RAID 0 busca solo rendimiento y RAID 1 busca solo seguridad, y ninguno de los dos usa paridad.

RAID 0, o striping, parte la información en tiras y las va repartiendo entre los discos por turno. Al leer o escribir un archivo grande, todos los discos trabajan a la vez y el rendimiento se multiplica. A cambio no hay ninguna redundancia: si falla un disco, se pierde todo el volumen, porque a cada archivo le faltan trozos. Es el único nivel llamado RAID que en realidad no lo es, porque no tiene nada de redundante.

RAID 1, o mirroring, hace lo contrario: escribe el mismo bloque en los dos discos, de modo que uno es copia exacta del otro. Tolera perfectamente el fallo de un disco y mejora la lectura, porque el sistema puede servir de cualquiera de las dos copias. Su precio es el peor de todos: hace falta el doble de espacio para guardar lo mismo.

RAID 0 · división en tiras (striping)
Banda ABanda BBanda C
Disco 1
A1
B1
C1
Disco 2
A2
B2
C2

Cada banda se parte en dos y cada mitad va a un disco distinto. Los dos trabajan a la vez, de ahí la velocidad. Y de ahí también el riesgo: si cae el disco 2, a TODAS las bandas les falta su segunda mitad y no se recupera ni un archivo.

Diagrama de 2 discos. Disco 1: A1, bloque de datos; B1, bloque de datos; C1, bloque de datos. Disco 2: A2, bloque de datos; B2, bloque de datos; C2, bloque de datos
RAID 1 · espejo (mirroring)
Banda ABanda BBanda C
Disco 1
A
B
C
Disco 2
A
B
C
  • Bloque de datos
  • Copia del bloque

La banda entera se escribe en los dos discos. Cualquiera de ellos basta para seguir trabajando, y por eso se paga la mitad de la capacidad: dos discos de 4 TB dan 4 TB útiles.

Diagrama de 2 discos. Disco 1: A, bloque de datos; B, bloque de datos; C, bloque de datos. Disco 2: A, copia del bloque; B, copia del bloque; C, copia del bloque
AspectoRAID 0RAID 1
Qué haceReparte tiras entre los discosDuplica cada bloque
Mínimo de discos22
Tolerancia a fallosNingunaSobrevive al fallo de un disco del espejo
Usa paridadNoNo
Capacidad netaNúmero de discos por el disco más pequeñoLa mitad, en un espejo de dos discos

RAID 0 no tolera ningún fallo y además empeora la fiabilidad del conjunto: con dos discos hay el doble de probabilidad de que uno de los dos falle, y basta uno para perderlo todo.

Para el examen

  • RAID 0 (striping): solo rendimiento, cero tolerancia a fallos

  • RAID 1 (mirroring): duplica todo, tolera un fallo

  • Capacidad útil de RAID 1: la mitad

Acceso paralelo y acceso independiente

Los niveles con paridad se agrupan en dos familias según el tamaño de la tira en que se trocea la información, y ese detalle, que parece menor, cambia por completo el comportamiento del conjunto.

FamiliaNivelesTamaño de la tiraCómo se comporta
Acceso paraleloRAID 2 y RAID 3Muy pequeña: bit, byte o palabraCada petición ocupa a la vez a todas las unidades, de modo que el conjunto sirve una sola petición cada vez, pero a mucha velocidad
Acceso independienteRAID 4, RAID 5 y RAID 6Grande: bloquesCada disco puede atender una petición distinta, así que el conjunto responde bien a muchas peticiones simultáneas

En el acceso paralelo los ejes de los discos van sincronizados, porque si un plato va adelantado respecto a otro no se pueden leer los fragmentos de un mismo dato a la vez. Esa exigencia es una de las razones de que RAID 2 y RAID 3 hayan desaparecido de la práctica frente a RAID 5.

Tira pequeña significa velocidad en transferencias grandes; tira grande significa muchas operaciones por segundo. La elección depende de si el servidor mueve vídeo o base de datos.

Para el examen

  • Acceso paralelo (tiras pequeñas): RAID 2 y RAID 3

  • Acceso independiente (bloques): RAID 4, 5 y 6

Los niveles con paridad, del 2 al 6

La paridad es la manera de tolerar fallos sin pagar el 50 % de espacio que cuesta un espejo. Consiste en guardar, además de los datos, un valor calculado a partir de ellos que permite reconstruir el trozo que falte. Con un disco caído, el sistema deduce su contenido combinando lo que queda.

RAID 4 · toda la paridad en un disco fijo
Banda ABanda BBanda C
Disco 1
A1
B1
C1
Disco 2
A2
B2
C2
Disco 3
Ap
Bp
Cp
  • Bloque de datos
  • Paridad

Mira la columna del disco 3: es paridad de arriba abajo. Como toda escritura, sea de la banda que sea, tiene que actualizar su paridad, ese disco trabaja en todas las operaciones y se convierte en el cuello de botella del conjunto. Ese es el defecto que hundió a RAID 3 y RAID 4.

Diagrama de 3 discos. Disco 1: A1, bloque de datos; B1, bloque de datos; C1, bloque de datos. Disco 2: A2, bloque de datos; B2, bloque de datos; C2, bloque de datos. Disco 3: Ap, paridad; Bp, paridad; Cp, paridad
RAID 5 · la misma paridad, repartida
Banda ABanda BBanda C
Disco 1
A1
B1
Cp
Disco 2
A2
Bp
C1
Disco 3
Ap
B2
C2
  • Bloque de datos
  • Paridad

La paridad baja en diagonal: cada banda la guarda en un disco distinto. Se reparte así el trabajo de escritura entre los tres y desaparece el cuello de botella, sin cambiar ni la tolerancia (un fallo) ni la capacidad (N menos 1).

Diagrama de 3 discos. Disco 1: A1, bloque de datos; B1, bloque de datos; Cp, paridad. Disco 2: A2, bloque de datos; Bp, paridad; C1, bloque de datos. Disco 3: Ap, paridad; B2, bloque de datos; C2, bloque de datos
RAID 5 con un disco caído · cómo se reconstruye
Banda ABanda B
Disco 1
A1
B1
Disco 2 ✕
A2 perdido
Bp perdida
Disco 3
Ap
B2
  • Bloque de datos
  • Paridad
  • Sin usar

Con el disco 2 caído, la banda A se recupera combinando A1 con su paridad Ap, y la banda B no necesita nada porque solo perdió la paridad. El conjunto sigue dando servicio, pero degradado: cada lectura del trozo que falta hay que calcularla, y hasta que termine la reconstrucción otro fallo sí sería mortal.

Diagrama de 3 discos. Disco 1: A1, bloque de datos; B1, bloque de datos. Disco 2 ✕: A2 perdido, sin usar; Bp perdida, sin usar. Disco 3: Ap, paridad; B2, bloque de datos
RAID 6 · doble paridad para aguantar dos caídas
Banda ABanda B
Disco 1
A1
Bq
Disco 2
A2
B1
Disco 3
Ap
B2
Disco 4
Aq
Bp
  • Bloque de datos
  • Paridad

Cada banda guarda ahora DOS paridades calculadas de formas distintas, p y q, y las dos rotan igual que en RAID 5. Con cuatro discos quedan dos de datos: por eso la capacidad es N menos 2, y por eso sobrevive a que caigan dos unidades a la vez.

Diagrama de 4 discos. Disco 1: A1, bloque de datos; Bq, paridad. Disco 2: A2, bloque de datos; B1, bloque de datos. Disco 3: Ap, paridad; B2, bloque de datos. Disco 4: Aq, paridad; Bp, paridad
NivelCómo reparteMínimoFallos que toleraCapacidad neta
RAID 2A nivel de bit, con discos dedicados a un código Hamming de detección y corrección31Depende de la configuración de discos de datos y de paridad
RAID 3Tiras pequeñas en los discos de datos y un único disco fijo para la paridad31(Número de discos menos 1) por el disco más pequeño
RAID 4Como RAID 3 pero con tiras grandes, y también un único disco fijo de paridad31(Número de discos menos 1) por el disco más pequeño
RAID 5Tiras grandes con la paridad repartida entre todos los discos31(Número de discos menos 1) por el disco más pequeño
RAID 6Doble paridad, calculada de dos formas distintas y repartida igualmente entre todos42(Número de discos menos 2) por el disco más pequeño

RAID 2 usa código Hamming, que no solo detecta el error sino que lo corrige. Es un nivel teórico: los discos ya incorporan su propia detección de errores, así que nunca se implantó. RAID 3 y RAID 4 tienen el mismo defecto: como la paridad va siempre al mismo disco, ese disco interviene en toda escritura y se convierte en el cuello de botella del conjunto. RAID 5 lo resuelve simplemente repartiendo la paridad, y por eso es el que se usa.

RAID 6 añade una segunda paridad calculada de otro modo y la reparte también. Con ella sobrevive al fallo simultáneo de dos unidades distintas, que es su verdadera razón de ser: en un conjunto grande, la reconstrucción tras un fallo dura horas, y en esas horas el segundo fallo es un riesgo real.

texto
Capacidad neta, siendo N el número de discos
y «menor» la capacidad del disco más pequeño:

  RAID 0   ->   N x menor
  RAID 1   ->   (N x menor) / 2        (espejo de dos discos)
  RAID 3   ->   (N - 1) x menor
  RAID 4   ->   (N - 1) x menor
  RAID 5   ->   (N - 1) x menor
  RAID 6   ->   (N - 2) x menor

El número de discos que se restan coincide siempre con el número de fallos que el nivel tolera. Es la forma más rápida de reconstruir la fórmula si se olvida.

Para el examen

  • RAID 5: paridad repartida, mínimo 3 discos, tolera 1 fallo, capacidad N-1

  • RAID 6: doble paridad, mínimo 4 discos, tolera 2 fallos, capacidad N-2

  • RAID 2: usa código Hamming; es teórico

  • RAID 3 y 4: embotellan en su disco fijo de paridad

Niveles anidados: RAID 0+1 y RAID 1+0

Un nivel anidado consiste en montar un RAID sobre otro RAID en lugar de sobre discos sueltos. Los dos más citados combinan las mismas piezas en orden inverso, y se leen de dentro hacia fuera: el primer número es lo que se hace primero.

RAID 1+0 · primero espejos, después tiras
Banda ABanda B
Disco 1
A1
B1
Disco 2
A1
B1
Disco 3
A2
B2
Disco 4
A2
B2
Espejo 1
Espejo 2
  • Bloque de datos
  • Copia del bloque

Los discos se emparejan en espejos y las tiras se reparten ENTRE los espejos. Si cae el disco 2, su espejo sigue sirviendo desde el disco 1 y el resto del conjunto ni se entera: aguanta incluso un segundo fallo, siempre que sea del otro espejo.

Diagrama de 4 discos. Disco 1: A1, bloque de datos; B1, bloque de datos. Disco 2: A1, copia del bloque; B1, copia del bloque. Disco 3: A2, bloque de datos; B2, bloque de datos. Disco 4: A2, copia del bloque; B2, copia del bloque
RAID 0+1 · primero tiras, después espejo
Banda ABanda B
Disco 1
A1
B1
Disco 2
A2
B2
Disco 3
A1
B1
Disco 4
A2
B2
Conjunto RAID 0
Su espejo completo
  • Bloque de datos
  • Copia del bloque

Las mismas cuatro unidades y la misma capacidad, pero mira qué pasa si cae el disco 2: se lleva por delante el conjunto RAID 0 entero, porque a sus bandas les falta la mitad. El sistema queda colgando del espejo completo, y cualquier fallo en él lo pierde todo. Esa es la razón de que en producción se monte 1+0 y no 0+1.

Diagrama de 4 discos. Disco 1: A1, bloque de datos; B1, bloque de datos. Disco 2: A2, bloque de datos; B2, bloque de datos. Disco 3: A1, copia del bloque; B1, copia del bloque. Disco 4: A2, copia del bloque; B2, copia del bloque
NivelSe construye asíNombre descriptivo
RAID 0+1Primero se hacen conjuntos RAID 0 y después se pone uno como espejo del otroEspejo de divisiones
RAID 1+0Primero se hacen espejos RAID 1 y después se reparten tiras entre ellosDivisión de espejos

El orden importa en la práctica. En RAID 1+0, si cae un disco solo se degrada su espejo y el resto sigue intacto, así que puede sobrevivir a varios fallos siempre que no sean los dos de un mismo espejo. En RAID 0+1, en cambio, un solo disco caído inutiliza todo el RAID 0 al que pertenece y deja al conjunto dependiendo por completo de la otra mitad. Por eso en producción se prefiere 1+0.

Para calcular la capacidad de un anidado se aplica la regla de dentro afuera: se resuelve primero el nivel interior, y el resultado de cada grupo se trata como si fuera un disco del nivel exterior, al que se vuelve a aplicar la regla del más pequeño.

texto
Ejemplo: 6 discos en RAID 1+0
  2 discos de 2 TB, 2 de 4 TB y 2 de 6 TB

Paso 1. Los espejos RAID 1, de dos discos cada uno:
  espejo A = 2 TB
  espejo B = 4 TB
  espejo C = 6 TB

Paso 2. RAID 0 sobre esos tres espejos.
  Manda el más pequeño: 3 x 2 TB

Capacidad neta = 6 TB

Se resuelve siempre de dentro hacia fuera, y la regla del disco más pequeño se aplica en cada nivel, no solo al final.

Para el examen

  • Cómo se leen: el primer número es el nivel INTERIOR

  • RAID 1+0: espeja primero y divide después; el preferido, aguanta mejor los fallos

  • Cálculo de capacidad: de dentro afuera, aplicando en cada nivel la regla del disco más pequeño

JBOD: por qué no es un RAID

JBOD, literalmente «un montón de discos sin más», encadena varias unidades para que el sistema vea un solo volumen grande. Suena a RAID y se configura desde la misma controladora, pero no lo es, y la diferencia se ve en las tres cosas que caracterizan a un RAID.

JBOD · encadenar, que no es repartir
Disco 1 · 2 TB
A
B
C
Disco 2 · 6 TB
D
E
libre
  • Bloque de datos
  • Sin usar

No hay bandas: se llena el primer disco y se sigue por el segundo. Ningún bloque está repetido y ninguno es paridad, así que no hay redundancia; y como en cada momento trabaja un solo disco, tampoco hay ganancia de velocidad. A cambio, es lo único que aprovecha íntegros los 6 TB del segundo disco: en un RAID mandaría el de 2 TB.

Diagrama de 2 discos. Disco 1 · 2 TB: A, bloque de datos; B, bloque de datos; C, bloque de datos. Disco 2 · 6 TB: D, bloque de datos; E, bloque de datos; libre, sin usar
AspectoRAIDJBOD
Reparto de la informaciónEn tiras entre todos los discos a la vezSe llena un disco y se sigue por el siguiente
RendimientoMejora al trabajar los discos en paraleloNo mejora: en cada momento trabaja un solo disco
Aprovechamiento del tamañoManda el disco más pequeño y el resto se desperdiciaSe suma la capacidad íntegra de todos, aunque sean distintos
Si falla un discoDepende del nivel: puede no perderse nadaSe pierde lo que hubiera en ese disco, pero el volumen sigue funcionando

JBOD es la única configuración que aprovecha íntegro un disco de tamaño distinto. Su contrapartida es que no aporta ni rendimiento ni redundancia.

Para el examen

  • Qué hace: encadena discos y suma su capacidad ÍNTEGRA

  • Qué no da: ni rendimiento ni redundancia: no es un RAID