En su artículo «A Case for Redundant Arrays of Inexpensive Disks (RAID)», presentado en la conferencia SIGMOD en 1988, David Patterson, Garth Gibson y Randy Katz presentaron una premisa reveladora: RAID 0. Al distribuir los datos de forma sencilla entre unidades de PC económicas sin redundancia, demostraron que era posible multiplicar el rendimiento y la capacidad de E/S por poco dinero, siempre y cuando se estuviera dispuesto a asumir el riesgo de perderlo todo si fallaba una unidad.
¿Qué es RAID 0?
RAID 0, también conocido como striping, es la organización de matriz más sencilla. Es RAID, pero sin redundancia. Dos o más unidades físicas se tratan como un único volumen lógico, y cada archivo se divide en partes o franjas de igual tamaño. Estas franjas se escriben en las unidades en orden rotativo, de modo que todos los ejes (o canales, en el caso de los SSD) funcionan en paralelo.
Dado que no se almacenan copias adicionales ni códigos de paridad, RAID 0 ofrece tres características clave:
- Velocidad: el ancho de banda secuencial y las IOPS (operaciones de entrada/salida por segundo) escalan de forma casi lineal con la cantidad de unidades.
- Capacidad total: se conserva el 100 % del espacio total de la unidad, sin sobrecarga.
- Sin tolerancia a fallos: si uno de los miembros falla, el conjunto de bandas se colapsa y se necesitará ayuda profesional para recuperar los datos de la configuración RAID 0.
Esta compensación hace que RAID 0 sea atractivo para cargas de trabajo no críticas (renderización desde cero, búferes de captura de alta velocidad, equipos de juegos para entusiastas), en las que el rendimiento bruto es más importante que la durabilidad.
RAID 0 en una matriz en la que los datos se distribuyen entre cinco discos duros
¿Cómo funciona RAID 0 o el striping?
1. Lógica del striping
El controlador RAID (o el software del sistema operativo) selecciona un tamaño de bloque, por ejemplo, 64 KB. Divide las operaciones de escritura entrantes en bloques y las asigna secuencialmente a los discos duros: el bloque 0 al disco duro 0, el bloque 1 al disco duro 1, el bloque 2 al disco duro 2, y así sucesivamente, volviendo a empezar cuando llega al último disco.
2. Composición del striping
Un grupo de bloques que tienen el mismo desplazamiento lógico forma una banda. En una matriz con cuatro discos duros, la primera banda creada podría contener los bloques 0-3 (es decir, un bloque por disco duro). Los tamaños de bloque más grandes, por ejemplo, dos bloques por disco duro, dan como resultado bandas más anchas, lo que favorece las transferencias secuenciales grandes; los bloques más pequeños mejoran el paralelismo en las operaciones mixtas de E/S.
3. Comportamiento de lectura/escritura
Para las operaciones de E/S secuenciales, el controlador envía comandos a todas las unidades de la banda simultáneamente, utilizando el ancho de banda de todos los ejes a la vez. Las operaciones de E/S aleatorias se distribuyen de manera que ninguna unidad se convierta en un punto caliente.
La latencia de una sola operación de lectura de 4 KB es aproximadamente equivalente a la de una sola unidad, pero el rendimiento general alcanza N × S para cargas de trabajo secuenciales y N × R para cargas de trabajo aleatorias (donde N es la cantidad de unidades, S es la velocidad de lectura secuencial en MB/s y R es la velocidad de lectura aleatoria en MB/s).
4. Semántica de fallos
Sin paridad ni duplicación, la matriz no tiene forma de reconstruir los bloques perdidos; un disco duro averiado puede invalidar todos los archivos.
Un ejemplo práctico de RAID 0
Consideremos esta frase como un bloque de datos: «RAID_0_es_realmente,_realmente_rápido».
Distribuya esta frase de seis palabras con un tamaño de bloque de cuatro caracteres en cuatro discos duros.
1. Ruta de escritura
La palabra 1 («RAID») termina en el disco duro 0.
La palabra 2 («_0_g») va a parar al disco duro 1, la palabra 3 («oes_») al disco duro 2 y la palabra 4 («real») al disco duro 3.
A continuación, la persona responsable comienza con la segunda tira: «ly,_» → disco duro 0, «real» → disco duro 1, «ly_f» → disco duro 2 y «ast.» → disco duro 3.
2. Ruta de lectura
La lectura secuencial del registro se realiza mediante cuatro unidades simultáneamente, cada una de las cuales entrega su parte mientras las demás pasan al siguiente bloque, lo que permite alcanzar aproximadamente cuatro veces el ancho de banda de una sola unidad.
3. Escenario de fallo
Si falla el disco duro 2, se pierden las partes «oes_» y «ly_f», lo que daña ambas bandas y hace que el conjunto sea ilegible. Esta es la desventaja del RAID 0: velocidad vertiginosa, pero sin tolerancia a los fallos de los discos duros.
RAID 0: ventajas y limitaciones
RAID 0 es un striping sencillo sin redundancia. Es la base sobre la que Patterson, Gibson y Katz modelaron cinco configuraciones RAID diferentes en su publicación de 1988.
- «75 discos duros de bajo coste tienen potencialmente 12 veces el ancho de banda de E/S del IBM 3380 y la misma capacidad con un menor consumo de energía y un menor coste».
| Característica | Importancia en la práctica |
|---|---|
| Rendimiento | Ancho de banda secuencial ≈ W × (ancho de banda de una sola unidad); las IOPS escalan de manera similar hasta que la cola del controlador o los carriles PCIe se saturan. |
| Capacidad | Suma de todas las unidades de los miembros; sin sobrecarga. |
| Fiabilidad | Tiempo medio hasta la pérdida de datos (MTTDL) ≈ MTBF / W: cada unidad adicional acorta el tiempo medio hasta la pérdida catastrófica. Un RAID 0 con 20 unidades puede tener una probabilidad de fallo ≥ 50 % en un plazo de cinco años, incluso con unidades SAS de clase empresarial. |
| Recuperación | Ninguna: no hay nada que recuperar. Las copias de seguridad o la replicación de nivel superior son obligatorias. |
Escenarios de implementación: dónde es adecuado RAID 0
RAID 0 es adecuado para escenarios en los que la velocidad pura y la capacidad total son más importantes que la tolerancia a fallos. En la siguiente tabla se enumeran dichos escenarios con las razones por las que RAID 0 tiene éxito en estos casos.
| Escenario | Por qué RAID 0 es atractivo |
|---|---|
| Producción de vídeos o imágenes con alta velocidad de bits | Las operaciones secuenciales masivas de lectura/escritura suponen una carga para los discos duros individuales; el striping agrega ancho de banda para obtener líneas de tiempo 4K/8K fluidas y efectos en tiempo real. |
| Cachés de scratch o renderización en cálculos científicos/efectos visuales | Los conjuntos de datos se pueden regenerar fácilmente, por lo que perder un volumen cuesta tiempo, pero no información irremplazable. Las bandas paralelas eliminan los cuellos de botella de E/S de renderización. |
| Búferes de ingesta de alta velocidad (instrumentos de laboratorio, material de cámara) | Las zonas de aterrizaje a corto plazo requieren escrituras en ráfaga; después de la captura, los archivos se trasladan a un almacenamiento protegido. |
| Equipos de juegos o de pruebas de rendimiento para entusiastas | Las pruebas sintéticas y las pantallas de carga tienen velocidades de transferencia más altas; el riesgo es aceptable, ya que las imágenes del sistema operativo o del juego se pueden reinstalar fácilmente. |
| Entornos de compilación o prueba temporales | Las canalizaciones de integración continua compilan artefactos que se recrean con cada ejecución, y la velocidad de compilación tiene prioridad sobre la persistencia. |
Escenarios de implementación: dónde se debe evitar RAID 0
A pesar del atractivo de la velocidad, RAID 0 es la peor opción para cualquier carga de trabajo que no pueda tolerar la pérdida de datos o largos tiempos de recuperación. Considere estos casos de uso.
- Bases de datos y sistemas transaccionales críticos para el negocio: el fallo de un solo disco duro destruye todas las tablas; en su lugar, lo normal son las matrices duplicadas (RAID 1/10) o de paridad.
- Archivos compartidos de la empresa, medios de archivo o conjuntos de copias de seguridad nearline: la capacidad es grande, los datos son únicos y las ventanas de recuperación deben ser predecibles. En su lugar, RAID 5/6 o la codificación de borrado ofrecen protección con mucho menos riesgo.
- Cargas de trabajo con operaciones de E/S aleatorias mixtas que no pueden interrumpirse para la Recuperación de Datos: el rendimiento es bajo, pero la Recuperación de Datos después de un fallo requiere una restauración completa desde la copia de seguridad.
- Cualquier entorno sin una estrategia de copia de seguridad robusta y automatizada: el striping multiplica el riesgo de pérdida de volumen: n unidades → n veces la probabilidad de fallo. Un RAID 0 con dos discos duros ya duplica el riesgo.
RAID 0 ofrece velocidad a expensas de la certeza. Úselo solo si la carga de trabajo es prescindible o está protegida de otra manera; de lo contrario, elija un nivel RAID (o nivel de nube) que cumpla con sus requisitos de durabilidad.
Por lo tanto, RAID 0 tiene dos caras: ha demostrado el rendimiento de RAID y ha recordado a todos los arquitectos de almacenamiento que la velocidad sin durabilidad solo funciona para datos prescindibles.
Más allá de RAID 0
RAID 0 demostró que el striping podía proporcionar un aumento considerable de la velocidad, pero también tenía un inconveniente fundamental: no ofrecía protección contra los fallos de las unidades. Incluso el fallo de una sola unidad destruiría toda la matriz. Para su uso práctico, especialmente en entornos empresariales donde la pérdida de datos es inaceptable, RAID 0 por sí solo no es suficiente.
Los investigadores de Berkeley lo reconocieron desde el principio. Propusieron toda una gama de niveles RAID, cada uno de los cuales era una combinación útil de velocidad, capacidad y tolerancia a fallos. En la siguiente guía, analizaremos RAID 1, que se centra en la seguridad de los datos mediante el mirroring.
¿Te gustaría saber más sobre problemas relacionados con el almacenamiento y estrategias profesionales para prevenir la pérdida de datos? No te pierdas nuestras guías adicionales que encontrarás a continuación.
Acerca del autor
