Gracias a la uní versificación de
la informática, más personas están en contacto con el mundo de los ordenadores,
ya sea para uso personal o profesional. Todo ha servido para una evolución más
rápida de los diferentes componentes de los ordenadores. Desde hace 20 años la
capacidad de proceso de los procesadores ha aumentado un 40 % cada año. En el
mismo periodo de tiempo, los discos han doblado su capacidad cada año, mientras
que su costo se ha reducido a la mitad. Desgraciadamente, el aumento del
rendimiento de los discos duros ha sido menos importante en comparación con el
rendimiento del sistema, ya que tan solo ha mejorado un 50 % durante la última
década.
Por lo que teníamos y tenemos un
problema con los discos duros, que son menos eficaces que el redimiendo general
del sistema, provocando una descompensación entre el tratamiento de la
información del sistema (muy rápido) y la lectura - grabación de datos en el
disco duro(muy lenta). Para ello se invento un sistema para guardar información
en varios discos duros a la vez por lo que acceso se hacia más rápido ya que la
carga se distribuía entre los diferentes discos duros, a esto se le llamo
cadenas redundantes de discos de bajo costo (RAID). Pero a la hora de saber como
podemos optimizar nuestro RAID nos encontrábamos con algunos problemas, como
puede ser encontrar la perfecta relación calidad precio
En este Trabajo se intentará
explicar que es RAID que tipos existen y que modelo es el que mejor se ajusta a
las necesidades de cada usuario.
RAID es una forma de almacenar los mismos datos
en distintos lugares (por tanto de modo redundante) en múltiples discos duros.
Al colocar los datos en discos múltiples, las operaciones I/O (input/output, de
entrada y salida) pueden superponerse de un modo equilibrado, mejorando el
rendimiento del sistema. Dado que los discos múltiples incrementan el tiempo
medio entre errores (mean time between failure, MTBF), el almacenamiento
redundante de datos incrementa la tolerancia a fallos.
Un RAID, para el sistema operativo, aparenta ser
un sólo disco duro lógico. El RAID emplea la técnica conocida como "striping"
(bandeado o creación de bandas), que incluye la partición del espacio de
almacenamiento de cada disco en unidades que van de un sector (512 bytes) hasta
varios megabytes. Las bandas de todos los discos están interpaginadas (interleaved)
y se accede a ellas en orden.
En un sistema de un solo usuario donde se
almacenan grandes registros (como imágenes médicas o de otro tipo), las bandas
generalmente se establecen para ser muy pequeñas (quizá de 512 bytes) de modo
que un solo registro esté ubicado en todos los discos y se pueda acceder a él
rápidamente leyendo todos los discos a la vez.
En un sistema multiusuario, un mejor rendimiento
demanda que se establezca una banda lo suficientemente ancha para contener el
registro de tamaño típico o el de mayor tamaño. Esto permite acciones I/O
superpuestas en los distintos discos.
3. Funcionamiento del RAID
Básicamente el RAID es un sistema
el cual permite almacenar información en una cantidad de discos (n), de tal
forma que agilice el proceso maquina-disco.
El sistema RAID evitará en lo más
posible la pérdida de data de la siguiente manera:
Los discos optimizados para RAID
poseen circuitos integrados que detecta si el disco está fallando, de ser así
este circuito se encargará por encima del tiempo real de sacar la información y
almacenarla en los otros discos, o si es el caso en el "hot spare".
Un hot spare es un disco que
permanece siempre en el sistema esperando a que otro se estropee y él entre
directamente en funcionamiento.
Una de las ventajas del sistema
RAID es la posibilidad, con los discos hot swap, de conectarlos y desconectarlos
en "caliente", es decir, que si un disco falla no hará falta el apagar el
sistema para remplazarlo.
Otras de las ventajas de RAID:
- Reconstrucción y Regeneración
Cuando un disco falla la información redundante en los discos y los datos en
los discos buenos son usados para regenerar la información de disco
averiado.
Striping
Es el acto de unir dos o más discos físicos en un solo disco lógico con el fin
de dividir los datos entre los diferente discos para ofrecer una significativa
mejora en el rendimiento del conjunto de los discos.
Los datos son divididos a través de los discos.
La lectura y escritura es compartida
La búsqueda de datos clásica fuerza a la lectura
y escritura a no recordar su posición
resultando más movimientos de cabezas y peor
eficiencia
La lectura de datos es etiquetada y reordenada.
Los movimientos de las cabezas de lectura - escritura se realizan mas
eficientemente cuando se buscan datos.
Historia del RAID
El término RAID hizo su debut
oficial en 1989 en forma de un paper publicado por David Paterson, Garth
Gibson y Randy Katz, todos ellos de la Universidad de California. El
paper se titulaba "A case for Redundant Array of Inexpensive Disks".
En dicho trabajo el equipo
definió cinco niveles para arreglos de discos cuyas funciones
eran ofrecer mejoras en el rendimiento, confiabilidad, tasa de transferencia y
tasas de lectura/escritura. Cada nivel tiene sus propias ventajas y desventajas,
las cuales iremos revisando en el transcurso de la lectura.
Desde entonces, múltiples
fabricantes han introducido y/o desarrollado variaciones a estos cinco niveles
originales y las han bautizado en acuerdo a las genialidades de sus respectivos
Departamentos de Marketing. Para propósitos de esta lectura usaremos las
definiciones especificadas por el RAID Advisory Board, que es
una institución conformada por un grupo de 40 empresas entre fabricantes y
desarrolladores interesados en el tema de RAID y en su estandarización.
En el trabajo original el término RAID se refería
a Redundant Array of Inexpensive Disks como una contraposición directa a los
SLED (Single Large Expensive Disks). Sin embargo, las increíbles bajas en los
precios de los discos duros han ocasionado que los SLED prácticamente
desaparezcan, por lo tanto, el significado de la sigla ha cambiado y en la
actualidad se la traduce como Redundant Array of Independent Disks.
4. Ventajas de los discos RAID
El rendimiento general del
sistema aumenta ya que pueden funcionar de forma paralela con los diferentes
discos del conjunto.
Dependiendo del nivel de RAID que
escojamos, si uno de los discos del conjunto falla, la unidad continúa
funcionando, sin pérdida de tiempo ni de datos. La reconstrucción de los datos
del disco que ha fallado se hace de forma automática sin intervención humana. En
el caso de algunos sistemas operativos la regeneración de datos se hace desde
software por ejemplo en el Windows NT, aunque en estos sistemas se pueden usar
controladoras RAID que sí regenerarían los datos automáticamente.
La capacidad global del disco
aumentará, ya que se suman las capacidades de los diferentes discos que componen
el conjunto.
¿Porqué usar RAID?
Las operaciones de I/O a disco
son relativamente lentas, primordialmente debido a su carácter mecánico.
Una lectura o una escritura involucra, normalmente, dos operaciones. La primera
es el posicionamiento de la cabeza lecto/grabadora y la segunda es la
transferencia desde o hacia el propio disco.
El posicionamiento de la cabeza
está limitado por dos factores: el tiempo de búsqueda (seek
time) y el retardo por el giro del disco hasta la posición de
inicio de los datos (latencia rotacional). La transferencia de datos, por su
parte, ocurre de a un bit por vez y se ve limitada por la velocidad de rotación
y por la densidad de grabación del medio
Una forma de mejorar el
rendimiento de la transferencia es el uso de varios discos en paralelo;
esto se basa en el hecho de que si un disco solitario es capaz de entregar una
tasa de transferencia dada, entonces dos discos serían capaces,
teóricamente, de ofrecer el doble de la tasa anterior; lo mismo
sucedería con cualquier operación.
La adición de varios discos
debería extender el fenómeno hasta un punto a partir del cual algún otro
componente empezará a ser el factor limitante.
Muchos administradores o encargados de sistemas
intentan llevar a cabo esta solución en forma básicamente manual, distribuyendo
la información entre varios discos de tal forma de intentar asegurar una carga
de trabajo similar para cada uno de ellos. Este proceso de "sintonía" podría dar
buenos resultados de no ser por dos factores principales:
No consigue mejorar las velocidades de transferencia de archivos individuales,
sólo mejora la cantidad de archivos accesados en forma concurrente.
Es obvio que el balance no es posible de mantener en el tiempo debido a la
naturaleza eminentemente dinámica de la información.
Una forma bastante más efectiva
de conseguir el objetivo es el uso de un arreglo de discos, el cual según la
definición del RAID Consultory Board es "una colección de discos que integran
uno o más subsistemas combinados con un software de control el cual se encarga
de controlar la operación del mismo y de presentarlo al Sistema Operativo como
un sólo gran dispositivo de almacenamiento". Dicha pieza de software puede ser
integrada directamente al Sistema Operativo o residir en el propio arreglo; así
como el arreglo puede ser interno o externo.
Novell Netware
incluye, desde hace algún tiempo, soporte para arreglos de discos. El
espejado y la duplicación de discos son ejemplos de
arreglos basados en software. Más recientemente fabricantes independientes han
ofrecido al mercado arreglos de discos basados en software que pueden correr en
formato NLM (Netware Loadable Module) sobre un Servidor
Netware.
Las soluciones de arreglos basadas en hardware
son principalmente implementadas mediante el uso de controladoras SCSI
(Small Computer System Interface) especializadas, las cuales a menudo están
dotadas de procesadores propios para liberar a la CPU del sistema de la tarea de
control y de cachés para mejorar aún más el desempeño.
Para Netware cualquiera de las dos soluciones, software o hardware, será
visualizada como un único y gran disco virtual.
Así pues un arreglo de discos
ofrecerá un mejor desempeño debido a que dividirá en forma automática
los requerimientos de lectura/escritura entre los discos que lo
conforman. Por ejemplo, si una operación de lectura/escritura involucra a cuatro
bloques de 4 Kb cada uno, entonces un arreglo de 4 discos podría, teóricamente,
entregar cuatro veces la tasa de operación de un disco único, esto debido a que
el disco único sólo podría atender a un bloque en forma simultánea, mientras que
en el arreglo cada disco podría manejar un sólo bloque cada uno y como operan al
mismo tiempo
En la práctica, sin embargo,
dichos niveles no se obtienen debido, principalmente, a la
carga de trabajo inherente al control del propio arreglo.
Además el uso de varios discos se emplea para construir cierto nivel de
redundancia de los datos y es este nivel de redundancia y la forma de
implementarlo lo que crea los niveles de RAID.
Arreglos paralelos vs. independientes
Arreglos paralelos: éstos son aquellos en que
cada disco participa en todas las operaciones de entrada/salida. Este tipo de
arreglo ofrece tasas altísimas de transferencia debido a que
las operaciones son distribuidas a través de todos los discos
del arreglo y ocurren en forma prácticamente simultánea. La tasa de
transferencia será muy cercana, 95%, a la suma de las tasas de los
discos miembros, mientras que los índices de operaciones de
entrada/salida serán similares a las alcanzadas por un disco individual. En
español: un arreglo paralelo accesará sólo un archivo a la vez pero lo
hará a muy alta velocidad. Algunas implementaciones requieren de
actividades adicionales como la sincronización de discos.
Los RAID de niveles 2 y 3 se implementan con
arreglos paralelos.
Arreglos independientes: son denominados así aquellos arreglos en los cuales
cada disco integrante opera en forma independiente, aún en el caso de que le sea
solicitado atender varios requerimientos en forma concurrente. Este modelo
ofrece operaciones de entrada/salida sumamente rápidas debido a
que cada disco está en posición de atender un requerimiento por separado. De
esta forma las operaciones de entrada/salida serán atendidas a una velocidad
cercana, 95%, a la suma de las capacidades de los discos presentes,
mientras que la tasa de transferencia será similar a la de un disco individual
debido a que cada archivo está almacenado en sólo un disco. Los niveles 4 y 5 de
RAID se implementan con arreglos independientes, mientras que los niveles 0 y 1
pueden ser implementados por cualquiera de las categorías, sin perjuicio de
suelan ser implementados en forma de arreglos independientes.
Stripping y mirroring
RAID a niveles 0, 1 y 0 & 1 puede ser implementado, tanto en forma de arreglos
independientes o paralelos. Netware lo implementa como arreglos independientes a
nivel del propio Sistema Operativo y, por lo tanto, no precisa de hardware o
software adicional.
5. Tipos de RAID
Como ya se mencionaron hay al menos nueve tipos
de RAID además de un grupo no redundante (RAID-0)
RAID-0. Esta técnica tiene bandeado paro no tiene redundancia de datos. Ofrece
el mejor rendimiento pero no tolerancia a los fallos.
RAID-1. Este tipo también se conoce como creación de discos espejo y consiste de
al menos dos discos duros que duplican el almacenamiento de datos. No hay
bandeado. El rendimiento de la lectura se mejora pues cualquiera de los dos
discos puede leerse al mismo tiempo. El rendimiento de escritura es el mismo que
el del almacenamiento en un solo disco. El RAID-1 proporciona el mejor
rendimiento y la mejor tolerancia a fallos en un sistema multiusuario.
RAID-2. Este tipo usa bandeado en todos los discos, con algunos de estos
dedicados a almacenar información de verificación y corrección de errores (error
checking and correcting, ECC). No tiene ninguna ventaja sobre el RAID-3.
RAID-3. Este tipo usa bandeado y dedica un disco al almacenamiento de
información de paridad. La información de verificación de errores (ECC)
incrustada se usa para detectar errores. La recuperación de datos se consigue
calculando el O exclusivo (XOR) de la información registrada en los otros
discos. Dado que una operación I/O accede a todos los discos al mismo tiempo, el
RAID-3 no puede traslapar I/O. Por esta razón, el RAID-3 es mejor para sistemas
de un solo usuario con aplicaciones que contengan grandes registros.
RAID-4. Este tipo usa grandes bandas, lo cual significa que podemos leer
registros de cualquier disco individual. Esto nos permite aprovechar la I/O
traslapada para las operaciones de lectura. Dado que todas las operaciones de
escritura tienen que actualizar el disco de paridad, no es posible la
superposición I/O para ellas. El RAID-4 no ofrece ninguna ventaja sobre el
RAID-5.
RAID-5. Este tipo incluye un
grupo rotatorio de paridad, con lo que resuelve las limitaciones de escritura en
RAID-4. Así, todas las operaciones de lectura y escritura pueden superponerse.
El Raid 5 almacena información de paridad pero no datos redundantes (aunque la
información de paridad puede usarse para reconstruir datos). El RAID-5 exige al
menos tres y usualmente cinco discos en el conjunto. Es mejor para los sistemas
multiusuario en los cuales el rendimiento no es crítico, o que realizan pocas
operaciones de escritura.
RAID-6. Este tipo es similar al RAID-5, pero incluye un segundo esquema de
paridad distribuido por los distintos discos y por tanto ofrece tolerancia
extremadamente alta a los fallos y las caídas de disco. Hay pocos ejemplos
comerciales en la actualidad.
RAID-7. Este tipo incluye un sistema operativo incrustado de tiempo real como
controlador, haciendo las operaciones de caché a través de un bus de alta
velocidad y otras características de un ordenador sencillo. Un vendedor ofrece
este sistema.
RAID-10. Este tipo ofrece un conjunto de bandas en el que cada banda es un grupo
de discos RAID-1. Esto proporciona mejor rendimiento que el RAID-1, pero a un
costo mucho mayor.
RAID-53. Este tipo ofrece un conjunto de bandas en el cual cada banda es un
conjunto de discos RAID-3. Esto proporciona mejor rendimiento que el RAID-3,
pero a un costo mucho mayor.
Pero de todos estos los que más
destacan son los niveles 0,1,3,5, y 10 o RAID 0&1. Todos los demás vienen siendo
variaciones de estos últimos. En la siguiente página explicaremos más a fondo
las ventajas y la forma de configuración de estos últimos niveles.
RAID 0: Este tipo de arreglo utiliza una técnica
llamada "striping", la cual distribuye la información en bloques entre los
diferentes discos. Es el único nivel de RAID que no duplica la información, por
lo tanto no se desperdicia capacidad de almacenamiento. Se requieren mínimo dos
discos.
RAID 0
Ventajas:
RAID-0 permite acccesar más de un disco a la vez, logrando una tasa de
transferencia más elevada y un rápido tiempo de acceso. Por no utilizar
espacio en información redundante, el costo por Megabyte es menor.
Desventaja: No existe protección de datos. No
existe información en cuanto a
Paridad.
Ambientes donde implementarlo
:
Es una buena alternativa en sistemas donde sea más importante el rendimiento
que la seguridad de los datos. Es decir ambientes que puedan soportar una
pérdida de tiempo de operación para poder reemplazar el disco que falle y
reponer toda la información.
RAID 1: Este nivel de RAID usa un tipo de
configuración conocido como "mirroring", ya que la información de un disco es
completamente duplicada en otro disco. Así mismo, también se puede duplicar el
controlador de disco (duplexing). Se desperdicia el 50% de la capacidad y sólo
maneja dos discos.
RAID 1
Ventajas
:
Se protege la información en caso de falla tanto del disco como del controlador
(en caso de duplex), ya que si un disco suspende su operación el otro continua
disponible. De este modo se evita la pérdida de información y las interrupciones
del sistema debido a fallas de discos.
Desventajas: Gran consumo de necesidades
hardware, 100% paridad y coste alto pues es necesario el doble de discos.
Ambientes donde implementarlo
:
RAID-1 está diseñado para sistemas donde la disponibilidad de la información es
esencial y su reemplazo resultaría difícil y costoso (más costoso que reponer el
disco en sí). Típico en escrituras aleatorias pequeñas con tolerancia a fallas.
El problema de este tipo de arreglos es el costo que implica duplicar los
discos.
RAID 3: Conocido también como "striping con
paridad dedicada", utiliza un disco de protección de información separado para
almacenar información de control codificada. Esta información de control
codificada o paridad proviene de los datos almacenados en los discos y permite
la reconstrucción de la información en caso de falla. Se requieren mínimo tres
discos y se utiliza la capacidad de un disco para la información de control.
RAID 3
Ventajas: RAID-3 proporciona una alta
disponibilidad del arreglo, así como una tasa de transferencia elevada,
mejorando de ese modo el rendimiento del sistema.
Desventajas: Un disco de paridad dedicado puede
convertirse en un cuello de botella porque cada cambio en el grupo RAID requiere
un cambio en la información de paridad. No plantea una solución al fallo
simultáneo en dos discos. Está especialmente recomendado para aplicaciones que
requieran archivos de datos de un gran tamaño (vídeo, imágenes, DataWare House).
Ambientes donde implementarlo: Es típico para
transferencia larga de datos en forma serial , tal como aplicaciones de imágenes
o video
RAID 5: Este nivel de RAID es conocido como "striping
con paridad distribuida", ya que la información se reparte en bloques como RAID-0,
pero un bloque de cada disco se dedica a la paridad. Es decir la data codificada
se añade como otro sector que rota por los discos igual que los datos
ordinarios. Se requieren mínimo tres discos.
RAID 5
Ventajas: Es el esquema de protección de
información más usado comúnmente, ya que proporciona un buen rendimiento
general con una mínima pérdida de capacidad. Además el sistema tiene
suficiente redundancia para ser tolerante a fallos.
Desventajas: Menores prestaciones que en RAID 1.
No plantea una solución al fallo simultáneo en dos discos.
Ambientes donde implementarlo: Es recomendable para aplicaciones intensas de
entrada/salida y de lectura/escritura, tal como procesamiento de transacciones.
RAID 10: Es un nivel de arreglo de discos, donde
la información se distribuye en bloques como en RAID-0 adicionalmente, cada
disco se duplica como RAID-1 , creando un segundo nivel de arreglo. Se conoce
como "striping de arreglos duplicados". Se requieren, dos canales, dos discos
para cada canal y se utiliza el 50% de la capacidad para información de control.
También se le conoce como RAID 0&1
RAID 10
Ventajas
:
Este nivel ofrece un 100% de redundancia de la información y un soporte para
grandes volúmenes de datos, donde el precio no es un factor importante.
Desventajas: Coste elevado, gran overhead y 100%
de redundancia
Ambientes donde implementarlo
:
Ideal para sistemas de misión crítica donde se requiera mayor confiabilidad de
la información, ya que pueden fallar dos discos inclusive (uno por cada canal) y
los datos todavía se mantienen en línea. Es apropiado también en escrituras
aleatorias pequeñas.
Glosario
Hot swap: Son discos que se reemplazan en caliente. Esto quiere
decir que si alguno de los discos RAID se estropeara físicamente bastaría con
quitarlo y poner otro sin tener que apagar el sistema.
Hot spare:
Disco sobrante. Es un disco que permanece siempre en
el sistema esperando a que uno se estropee y él entre directamente en
funcionamiento.
Integridad de los datos:
es la capacidad que tiene un disco de aguantar un
error de grabación, de corrupción o pérdida de datos. Para tal efecto se tiene
que seleccionar un disco RAID o una alternativa. El nivel de integridad es uno
de los primeros criterios que se han de investigar.
Mirroring:
Haciendo espejo. Es un nivel de RAID (el nivel 1) que pasa por hacer una copia
íntegra de un disco en otro.
Paridad:
es una información redundante que es guardada para
regenerar datos perdidos por un error en el disco. La paridad se genera haciendo
un XOR sobre los datos de los discos y aguardándolo en otro disco o en un disco
dedicado a este efecto, esto dependerá del nivel RAID que usemos.
RAID:
Redundat Array of Inexpensive Disk Conjunto de discos con información redundante
de bajo costo. Reconstrucción o regeneración: Cuando un disco falla la
informacón redundante en los discos y los datos en los discos buenos son usados
para regenerar la informacón del disco averiado.
Striping:
es el acto de unir dos o más discos físicos en un solo disco lógico con el fin
de dividir los datos entre los diferentes discos para ofrecer una significativa
mejora en el rendimiento del conjunto de los discos.
Trabajo enviado y realizado por:
Francisco Armando Dueñas Rodríguez
fduenas_@hotmail.com
Edad: 23 años
Universidad La Salle
Lic. en Informática
Cancún, Quintana Roo México