RAID
– REDUNDANT ARRAY OF INDEPENDENT DISKS:
En
informática, el acrónimo RAID (del inglés Redundant Array of Independent Disks, originalmente Redundant
Array Inexpensive
Disks), traducido como «conjunto
redundante de discos independientes», hace referencia a un sistema de almacenamiento de datos que usa múltiples unidades
de almacenamiento de datos (discos duros o SSD) entre los
que se distribuyen o replican los datos. Dependiendo de su configuración (a la que suele llamarse «nivel»), los beneficios de un RAID respecto a un único disco son uno o varios de
los
siguientes: mayor integridad, mayor tolerancia a fallos, mayor throughput (rendimiento) y
mayor capacidad. En sus implementaciones originales, su ventaja clave era la habilidad de combinar varios dispositivos de bajo coste y tecnología más antigua en un conjunto que
ofrecía mayor capacidad, fiabilidad, velocidad o una
combinación de
éstas que
un solo
dispositivo de última generación y coste más alto.
En el nivel más simple, un RAID combina varios discos duros en una sola unidad
lógica. Así, en lugar de ver varios discos duros diferentes, el sistema operativo ve uno solo.
Los
RAIDs suelen usarse en servidores y
normalmente (aunque
no es necesario) se implementan con unidades de disco de la misma capacidad. Debido al decremento en el
precio de los discos duros y la mayor disponibilidad
de las opciones RAID incluidas en los
chipsets de las placas base, los RAIDs se encuentran
también como opción en las computadoras personales más avanzadas.
Esto es especialmente frecuente en las computadoras
dedicadas a tareas intensivas y que requiera asegurar la integridad de los datos
en
caso de fallo del sistema. Esta característica no está obviamente disponible en los sistemas
RAID por software, que suelen presentar por tanto el problema de reconstruir
el
conjunto de discos cuando el sistema es reiniciado tras un fallo para asegurar la integridad de los datos. Por el contrario, los sistemas basados en software son mucho más flexibles (permitiendo, por ejemplo, construir
RAID de particiones en lugar de discos completos y agrupar en un mismo RAID discos conectados en varias controladoras)
y los basados
en
hardware añaden un punto
de fallo más al sistema (la controladora RAID).
Todas las implementaciones pueden soportar el uso de uno o más discos de reserva
(hot spare), unidades preinstaladas que pueden usarse inmediatamente (y casi siempre
automáticamente)
tras el fallo de un disco del RAID. Esto reduce el tiempo del período de reparación al acortar el tiempo de reconstrucción del RAID.
Los niveles RAID más comúnmente usados son:
RAID 0: Conjunto dividido
RAID 1: Conjunto en espejo
RAID 5: Conjunto dividido con paridad distribuida
RAID 0+1 o 1+0
RAID 0 (Data Striping):
Un
RAID 0 (también llamado conjunto
dividido, volumen dividido,
volumen seccionado) distribuye los datos equitativamente entre dos o más discos sin
información de paridad que proporcione
redundancia. Es
importante señalar
que
el RAID
0
no
era
uno de los
niveles RAID originales y que no es redundante. El RAID
0 se usa normalmente para
incrementar el rendimiento,
aunque también puede utilizarse como forma de crear un pequeño número de grandes discos virtuales a partir de un gran
número
de
pequeños discos físicos. Un RAID
0
puede ser creado con discos de diferentes
tamaños, pero el espacio de almacenamiento añadido al conjunto
estará limitado por el
tamaño del
disco
más
pequeño (por
ejemplo, si un disco de 300 GB se divide con uno de 100
GB, el tamaño del conjunto resultante será sólo de 200
GB, ya que cada disco aporta 100GB).
Una buena
implementación
de
un
RAID
0
dividirá las operaciones
de
lectura
y
escritura en bloques de igual tamaño, por lo que distribuirá
la información equitativamente entre los dos discos. También es posible
crear un RAID 0 con más de dos discos, si bien, la
fiabilidad del conjunto será
igual a la fiabilidad media de cada disco entre el número de discos
del
conjunto; es decir, la fiabilidad total —medida
como MTTF o MTBF— es (aproximadamente) inversamente proporcional al número de discos del conjunto (pues para que
el conjunto falle es suficiente con que lo haga cualquiera de
sus discos).
RAID 1:
Un
RAID 1 crea una copia exacta (o espejo) de un conjunto
de datos en dos o más discos. Esto resulta útil
cuando el rendimiento en lectura es más importante
que la
capacidad. Un conjunto RAID 1 sólo puede ser tan grande como el más pequeño de sus discos. Un RAID 1 clásico
consiste en dos discos en espejo, lo que incrementa
exponencialmente la fiabilidad respecto a un solo disco; es
decir, la probabilidad de fallo del conjunto es igual al
producto de las probabilidades
de fallo de cada uno de los discos (pues para que el conjunto falle es necesario que lo
hagan todos sus discos).
Adicionalmente, dado que todos los datos están en dos o más discos, con hardware
habitualmente independiente, el rendimiento de lectura se incrementa aproximadamente como múltiplo lineal del número de copias; es decir, un RAID 1 puede
estar leyendo
simultáneamente dos datos diferentes en dos discos diferentes, por lo que su rendimiento
se duplica. Para maximizar los beneficios
sobre el rendimiento del RAID
1 se recomienda el uso de controladoras de disco independientes, una para cada disco (práctica que algunos denominan splitting
o duplexing).
Como en el RAID 0, el
tiempo medio de lectura se reduce, ya que
los
sectores a buscar
pueden dividirse entre los discos, bajando el tiempo de búsqueda y subiendo la tasa de
transferencia, con el único límite de la velocidad soportada por la controladora
RAID. Sin embargo,
muchas tarjetas RAID
1 IDE antiguas leen sólo de un disco de la pareja, por lo que su rendimiento
es
igual al de un único disco. Algunas implementaciones RAID
1 antiguas
también leen de ambos discos simultáneamente y comparan los datos para detectar errores.
Al
escribir, el conjunto se comporta como un único disco, dado que los datos deben
ser
escritos en todos los discos del RAID 1. Por tanto, el rendimiento no
mejora.
El RAID 1 tiene muchas ventajas de administración. Por ejemplo, en algunos entornos
24/7, es posible «dividir
el
espejo»: marcar un disco como inactivo, hacer una copia de seguridad de dicho disco y luego «reconstruir» el espejo. Esto requiere que la aplicación de
gestión del conjunto soporte la recuperación de los datos del disco en el momento de la
división. Este procedimiento es
menos
crítico que
la presencia de una característica
de
snapshot en algunos sistemas de archivos, en la que se reserva algún espacio para los cambios,
presentando una vista estática
en un punto
temporal
dado del
sistema
de
archivos.
Alternativamente, un conjunto de discos puede ser almacenado de forma parecida a como se hace con las tradicionales cintas.
RAID 5:
Un RAID 5 (también llamado distribuido con paridad) es una división de datos a nivel de bloques distribuyendo
la información de paridad entre todos los discos miembros del conjunto. El RAID 5 ha logrado
popularidad gracias a su bajo coste de redundancia.
Generalmente,
el
RAID 5 se implementa con soporte
hardware para el cálculo de la paridad. RAID 5 necesitará un mínimo de 3 discos para ser implementado.
En el gráfico de ejemplo anterior, una petición de lectura del bloque «A1» sería
servida por el disco 0. Una petición de lectura simultánea del bloque «B1» tendría que esperar, pero una petición de lectura de «B2» podría atenderse concurrentemente ya que sería
servida por el
disco 1.
Cada vez que un bloque de datos se escribe en un RAID 5, se genera un bloque de
paridad dentro de la misma división
(stripe). Un
bloque se compone a menudo de muchos
sectores consecutivos de disco. Una serie de bloques (un bloque de cada uno de los discos del conjunto)
recibe el nombre colectivo de división (stripe). Si otro bloque, o alguna porción de un bloque, es escrita en esa misma división, el bloque de paridad (o una parte del mismo) es recalculada y vuelta a escribir. El disco utilizado por el bloque de paridad está escalonado de
una división a la siguiente,
de ahí el término «bloques de paridad distribuidos». Las escrituras
en
un RAID 5 son costosas en términos de operaciones de disco y tráfico entre los discos y la controladora.
Los bloques de paridad no se leen en las operaciones
de lectura de datos, ya que esto sería una sobrecarga
innecesaria y disminuiría el rendimiento. Sin embargo, los bloques de
paridad se leen cuando la lectura de un sector de datos provoca un error de CRC. En este caso,
el
sector en la misma posición relativa
dentro de cada uno de los bloques de datos
restantes en la división y dentro del bloque de paridad en la división
se utilizan para reconstruir el sector
erróneo. El error CRC se oculta así al resto del sistema. De la misma forma, si falla un disco del conjunto, los bloques de paridad de los restantes discos son combinados matemáticamente
con
los bloques de datos de los restantes discos para reconstruir los datos del disco que ha
fallado «al vuelo».
Lo anterior se denomina a veces Modo Interino
de Recuperación de Datos (Interim Data Recovery Mode). El sistema sabe que un disco ha fallado, pero sólo con el fin de que el
sistema operativo pueda notificar al administrador que
una unidad necesita ser reemplazada:
las aplicaciones en ejecución siguen funcionando
ajenas al fallo. Las lecturas y escrituras continúan normalmente en el conjunto de discos, aunque con alguna degradación
de rendimiento. La diferencia entre el RAID
4 y
el RAID
5 es que, en el Modo Interno de Recuperación de Datos, el RAID 5 puede
ser
ligeramente más rápido, debido a que, cuando el CRC y la paridad están en el disco que falló, los cálculos no tienen que realizarse, mientras que
en el RAID 4, si uno de los discos de datos falla, los cálculos tienen que ser realizados en
cada acceso.El
fallo de un segundo disco provoca la pérdida completa de los datos.
El
número máximo de discos en un grupo de redundancia RAID 5 es teóricamente
ilimitado, pero en la práctica es común limitar el número de unidades. Los inconvenientes de usar grupos de redundancia
mayores son una mayor probabilidad
de fallo simultáneo de dos discos, un mayor tiempo de reconstrucción y una mayor probabilidad
de hallar un sector irrecuperable durante una reconstrucción. A medida que el número de discos en un conjunto RAID 5 crece, el MTBF (tiempo medio entre fallos)
puede ser más bajo que el de un único
disco. Esto sucede cuando la probabilidad de que falle un segundo disco en los N-1 discos restantes
de un
conjunto en el que ha fallado un disco en el tiempo necesario para detectar,
reemplazar y recrear dicho disco es mayor que
la
probabilidad de fallo
de un
único disco. Una
alternativa que proporciona una protección de paridad dual, permitiendo así mayor número de
discos por grupo, es el
RAID 6.
Algunos vendedores RAID evitan montar discos de los mismos lotes en un grupo de
redundancia para minimizar la probabilidad
de fallos simultáneos al principio y
el
final de su
vida
útil.
Las implementaciones
RAID 5 presentan
un rendimiento
malo cuando se someten a
cargas de trabajo que incluyen muchas escrituras
más pequeñas que el tamaño de una división
(stripe).
Esto
se debe a que la paridad debe ser actualizada para cada escritura, lo que exige
realizar secuencias de lectura, modificación y escritura tanto para el bloque de datos como
para el de paridad. Implementaciones más complejas incluyen a menudo cachés de escritura no volátiles para reducir este problema de rendimiento.
En el caso de un fallo del sistema cuando
hay escrituras activas, la paridad
de una división (stripe)
puede quedar en un estado inconsistente con los datos. Si esto no se
detecta y repara antes de que un disco o bloque falle, pueden perderse
datos debido a que se usará una
paridad incorrecta para reconstruir el bloque perdido en dicha división.
Esta
potencial
vulnerabilidad se conoce a veces como «agujero de escritura». Son comunes el uso de caché no volátiles
y otras técnicas para
reducir la probabilidad de ocurrencia de esta vulnerabilidad.
RAID 0+1 o 1+0:
Un RAID 0+1
(también llamado RAID
01, que no debe confundirse
con
RAID 1) es un RAID usado para
replicar
y
compartir datos entre varios discos.
La
diferencia entre un RAID 0+1 y un RAID 1+0 es la localización de cada nivel RAID dentro del conjunto final: un RAID 0+1 es un espejo de divisiones.
Un RAID 1+0, a veces llamado RAID
10, es parecido a un RAID 0+1 con la excepción
de que los niveles RAID que lo forman se invierte: el RAID 10 es una división de espejos.
No hay comentarios:
Publicar un comentario