Sistemas RAID, sistemas de ficheros tolerantes a fallos
En un sistema informático, además del componente humano, tenemos software, hardware y la información que guarda. En caso de desastre, podremos reinstalar los programas y sustituir el hardware, pero la información que contiene es el componente más importante a proteger. Por ello es fundamental tener una política bien diseñada de copias de seguridad, pero para casos aun más sensibles, tenemos la opción de añadir seguridad implementando sistemas de ficheros tolerantes a fallos que ayuden o impidan la pérdida de datos mediante técnicas de replicación y recuperación de datos.
En este artículo vamos a ver algunos de los niveles de RAID disponibles, sus características, ventajas e inconvenientes. Hay que anotar que este sistema no nos protegerá ante un virus que infectará todo el RAID.
Sumario
- Definición
- Técnicas del sistema
- Configuraciones RAID
- Niveles RAID
- RAID 0
- RAID 1
- RAID 2
- RAID 3
- RAID 4
- RAID 5
- RAID 6
- Niveles RAID anidados
- RAID 0 + 1
- RAID 10
- RAID 30
- RAID 100
Definición
RAID ( Redundant Array of Independent Disks) o conjunto de redundante de discos independientes es un sistema de almacenamiento que usa varios discos duros, de forma que podemos mejorar el rendimiento y hacer que sea más tolerante a fallos y seguro.
Esta tecnología funciona conectando varias unidades de almacenamiento (Discos) y ofreciendo al sistema una única unidad lógica (el sistema operativo ve a la matriz como si ésta fuese una sola).
El sistema RAID emplaza los datos en varios discos físicos permitiendo que las operaciones de escritura y lectura se realicen de forma balanceada, mejorando el rendimiento y asegurando los datos con redundancia, aunque no todos los sistemas RAID comportan esta última.
Para ello hay dos opciones, la primera es mediante controladoras hardware (BIOS) y la segunda mediante software, aunque también es posible una combinación de ambas. Con ello conseguimos que cuando sobrevenga un desastre, los datos que se encontraban en esa unidad no se pierdan, sino que se reconstruyan usando su paridad.
Técnicas del sistema
Entre las diferentes técnicas que utilizan los sistema RAID tenemos
- Discos espejo: Esta técnica consiste en duplicar la información en varios discos.
- Bandas: Esta técnica divide la información (en bits, bytes o bloques) para almacenarla en distintos discos.
- Paridad: Esta técnica establece un mecanismo de codificación de los datos para detectar y corregir errores.
- Duplicación de controladora: En determinadas ocasiones es posible utilizar más de una tarjeta controladora SCSI para conectar los discos, de forma que así también se pueden evitar fallos en los adaptadores.
Configuraciones RAID
Niveles RAID
En función de los requerimientos que tengamos y del número de discos disponibles, podemos elegir entre una de las siguientes implementaciones. Como veremos, algunas de estas son combinaciones de varios niveles.
RAID 0
En este nivel de RAID 0, conseguimos que el sistema solo vea un volumen en vez de varios discos, es decir, se utilizan varios discos duros como un solo volumen, y el sistema operativo los considerará como si de un solo disco se tratase.
Los discos pueden ser de distinto tamaño, aunque el espacio de cada disco añadido al volumen estaría limitado por el disco de menor capacidad.
Ventajas
Nos proporciona un alto rendimiento con tiempos de acceso muy bajos incluso con acceso en paralelo, sin tener ningún costo adicional, pues utiliza toda la capacidad del disco. Mejora el rendimiento de lectura y escritura multiplicado por el número de discos.
Inconvenientes
No nos aporta seguridad para los datos al no proveer redundancia. Si alguno de los discos cae, perderemos la información contenida en este.
RAID 1
Este nivel consiste en un volumen reflejado, tendremos dos discos con la misma información. También conocido como MDA (Mirrored Disk Array), es un volumen tolerante a fallos que utiliza un espacio de almacenamiento del mismo tamaño que el original, de tal forma que la información está duplicada. Utiliza la duplexación que consiste en la duplicación y sincronización de la información, garantizando que la caída de un disco nos permita garantizar la disponibilidad de los datos.
Hay que tener en cuenta que aunque los dos volúmenes deben tener el mismo tamaño, no necesitan estar sobre dos discos iguales ni con el mismo tamaño, es decir, pueden ser dos discos diferentes entre sí, pero el disco que usaremos como espejo debe ser igual o mayor que el disco original.
Si quisiéramos eliminar el volumen reflejado, tenemos dos opciones, romper o quitar el espejo.
Al romper el espejo, los volúmenes se hacen independientes, pero la información sigue estando repetida. Solo eliminamos la sincronización entre ambos discos.
Si quitamos el espejo, una de las dos copias de los volúmenes sincronizados dejara de existir y se convertirá en espacio sin asignar.
En ambos casos el sistema seguirá funcionando con normalidad pero perderemos la redundancia de los datos.
Ventajas
Además de ganar velocidad de lectura, en el caso de la pérdida de un disco, recuperamos todos los datos. La velocidad de escritura será la misma que si fuese un solo disco.
Inconvenientes
El volumen de almacenamiento del que disponemos es el tamaño del disco más pequeño.
RAID 2
RAID 2 utiliza múltiples discos, como en el nivel RAID 0, pero necesita algunos de ellos para guardar los códigos de control de error. Este nivel tiene un costo bastante elevado ya que se necesita mucho disco para mantener los códigos de error.
Gracias a como están distribuidos los datos en los discos, se consigue mejorar la velocidad de transferencia, principalmente en la lectura, ya que es posible emplear todos los discos en paralelo.
Este nivel de RAID, aunque proporcione un buen rendimiento, no es muy empleado, ya que los niveles 1, 3 y 5 proporcionan una mejor relación costo/rendimiento.
Ventajas
Aumenta la velocidad de transferencia de datos y permite la recuperación de datos con los códigos de control de error.
Inconvenientes
Requiere mucho espacio para los códigos de error y el tiempo de lectura de los datos es bastante lento, aunque estos estén distribuidos en diferentes discos físicos.
RAID 3
RAID 3 es un sistema de discos en paralelo, que almacena la información en varios discos, dividida a nivel de bytes, al igual que RAID 0 y RAID 2, pero con otro disco para almacenar la paridad para la corrección de errores. También llamado PDA (Parallel Disk Array).
Este nivel RAID es una buena opción si las aplicaciones necesitan una alta velocidad de transferencia, pues debido a la distribución de datos, se pueden emplear todos los discos en paralelo.
Ventajas
Alto rendimiento con aplicaciones con requerimientos de alta velocidad de transferencia. Nos permite la recuperación de datos con los bytes de paridad almacenados en disco destinado a almacenarlos.
Inconvenientes
Tiene un tiempo de escritura bastante alto y si cae el disco de paridad, se pierde toda la información redundante.
RAID 4
Es un sistema de discos independientes con disco de control de errores, también conocido como IDA (Independent Disk Array). Es parecido al RAID 3 pero almacena los datos a nivel de bloques o sectores. Los bloques de datos que se distribuyen en los diferentes discos y consigue un mejor rendimiento, al ser más grandes los bloques o sectores, en las escrituras.
Ventajas
Buen rendimiento en la escritura de datos. Mantiene la integridad de los datos.
Inconvenientes
Obtiene un menor rendimiento en la lectura de datos. Si cae el disco de paridad se pierde toda la información redundante.
RAID 5
Este nivel de RAID 5 es uno de los más utilizados. Requiere un mínimo de tres discos físicos para su creación. En este caso distribuye la paridad por todos los discos escribiendo de forma alterna entre el conjunto de partes o porciones del volumen.
Proporciona tolerancia a fallos reconstruyendo los datos a partir de la paridad distribuida si cae cualquier disco.
El espacio que invertimos para la paridad dependerá del número de discos que se utilizan para el volumen. Conforme aumentamos el número de discos, el espacio de almacenamiento disponible para la información aumentará.
En este nivel de RAID el proceso de escritura es lento y solo se utilizará para información de paridad y datos. El Sistema Operativo hay que instalarlo en otro disco. Es una buena opción para un servidor NAS, con discos hot-plug, que podremos cambiar sin detener el sistema.
Ventajas
Alto rendimiento en aplicaciones con gran demanda de velocidad. La velocidad de lectura será el resultado de la multiplicación por el número de discos. No se desaprovecha ningún disco exclusivamente para almacenar códigos de paridad. Se pueden recuperar los datos.
Inconvenientes
Bajo rendimiento en escrituras, la misma velocidad que si fuese un único disco.
RAID 6
RAID 6 es similar a RAID 5 pero con la diferencia de que se guardan dos paridades para cada bloque de información, cada una de ellas alojada en un disco diferente (también diferente al de los datos) y que necesita un mínimo de cuatro discos.
Ventajas
Permite recuperar varios errores al mismo tiempo proporcionando un nivel de integridad de los datos muy alto.
Inconvenientes
El rendimiento en escrituras de datos es muy bajo y necesita un mínimo de cuatro discos.
Niveles RAID anidados
Los niveles de RAID anidados ofrecen las ventajas de varios niveles simples en una sola implementación híbrida, buscando un equilibrio entre rendimiento y redundancia de datos.
Con niveles RAID anidados se busca una redundancia de datos mayor que la pérdida de un disco. Veámoslos.
RAID 01
RAID 0+1 o RAID 01, consiste en la creación de dos grupos de discos (RAID 0) para después duplicar de los datos del primer bloque en el segundo, (RAID 1). Este nivel está indicado para aplicaciones que necesiten altas prestaciones y un alto nivel de seguridad.
En el RAID 0+1, cuando un disco duro falla, los datos perdidos pueden ser copiados del otro conjunto de nivel 0 para reconstruir el conjunto global. Si necesitamos añadir un disco duro adicional en una división, es imprescindible añadir otro al de la otra división para equilibrar el tamaño del conjunto.
Ventajas
Obtenemos muy buen rendimiento de lectura y escritura, con el nivel exacto de rendimiento dependiendo de cuantos discos haya en el nivel RAID 0. El RAID 1 ofrece un muy buen rendimiento de lectura.
Inconvenientes
Perdemos el 50% de la capacidad de almacenamiento.
RAID 10
Un RAID 1+0, también llamado RAID 10, es parecido a un RAID 0+1 con la excepción de que los niveles RAID que lo forman se invierten: el RAID 10 es una división de espejos.
En cada división RAID 1 pueden fallar todos los discos salvo uno sin que se pierdan datos. Sin embargo, si los discos que han fallado no se reemplazan, el restante pasa a ser un punto único de fallo para todo el conjunto. Si ese disco falla, se perderán todos los datos del conjunto completo.
Se necesitan un mínimo de cuatro discos y si escalamos el sistema, siempre tendrán que ser un número par de discos.
Ventajas
Muy buen rendimiento de lectura y escritura, con el nivel exacto de rendimiento dependiendo de cuantos discos haya en el nivel RAID 0. El RAID 1 resulta en un muy buen rendimiento de lectura.
Inconvenientes
Perdemos el 50% de la capacidad de almacenamiento.
RAID 30
El RAID 3+0 es una combinación de RAID 3 y RAID 0 que nos proporciona una alta fiabilidad y una alta velocidad de transferencia.
Permite que caiga un disco de cada conjunto RAID 3. Hasta que estos discos caídos sean reemplazados, los otros discos de cada conjunto que sufrió el fallo son puntos únicos de fallo para el conjunto RAID 3+0 completo.
Ventajas
El RAID 3 nos ofrece un alto rendimiento con aplicaciones con requerimientos de alta velocidad de transferencia.
Inconvenientes
El tiempo de recuperación necesario representa un periodo de vulnerabilidad para el RAID.
RAID 100
RAID 10+0, es una división de conjuntos RAID 10. El RAID 100 es un ejemplo de “RAID cuadriculado”, un RAID en el que conjuntos divididos son a su vez divididos conjuntamente de nuevo.
Este nivel de RAID es, posiblemente, la mejor elección para almacenar bases de datos muy grandes, donde el conjunto software subyacente limita la cantidad de discos físicos permitidos en cada conjunto estándar.
Ventajas
RAID 100 proporciona muy buen rendimiento de lectura aleatoria y puede soportar la pérdida del 50% de los discos individuales, siempre y cuando no caigan todos los discos de uno de los espejos individuales (RAID 1).
Inconvenientes
El rendimiento del almacenamiento es del 50% de los discos y el rendimiento de escritura puede no ser tan bueno como en otros niveles de RAID, depende de cómo implementar tanto el RAID 10, y el general de RAID 0 (hardware o software).
Hay más posibles combinaciones de niveles de RAID, como por ejemplo un RAID 50, aunque considero estas las más importantes.
En este blog ya hemos visto como hacer alguna implementación en «RAID y LVM. Sistemas de almacenamiento» , combinando un RAID 1 con un sistema LVM, como se hace la reconstrucción de los datos en «Reconstrucción de datos en discos duros. Paridad«, y una implementación de RAID 5 en «Configuración del servidor NAS«.
Para más información sobre sistemas LVM en «LVM Que es, como se instala y gestiona» , la encontrarás.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.
Fantástico artículo, Javier. Estoy en vías de crear un servidor y me sirve mucho tu aportación
Gracias Josevi. Me alegro de que te sea útil.