Sistemas RAID

25
Víctor Barranco Fernández Jose Ignacio Honrado Benítez Jesús del Río de Sande

Transcript of Sistemas RAID

Víctor Barranco Fernández Jose Ignacio Honrado Benítez Jesús del Río de Sande

¿Qué es un RAID? ¿Por qué usar RAID? Un poco de Historia Implementación Hardware, Software e Híbrida Tipos de RAID en la actualidad Implementación de RAID en Linux Términos relacionados con RAID ¿Cómo elegir un RAID? Recuperación de datos Curiosidades Futuro

EL ACRÓNIMO “RAID” SIGNIFICA REDUNDANT ARRAY OF INEXPENSIVE DISKS.

ES UN CONJUNTO DE DISCOS QUE EL SISTEMA TRATA COMO SOLO

UNO EN EL QUE SE REPARTEN O REPLICAN LOS DATOS PARA LOGRAR MAYOR INTEGRIDAD, VELOCIDAD O CAPACIDAD.

EL SISTEMA RAID SURGIÓ DEBIDO A LA POCA EVOLUCIÓN DE LOS DISCOS DUROS EN CUANTO A RENDIMIENTO SE REFIERE, SURGIENDO DISTINTOS NIVELES SEGÚN LAS NECESIDADES DEL USUARIO

MEJORA EL RENDIMIENTO DE TRANSFERENCIA USANDO VARIOS

DISCOS EN PARALELO, YA QUE LA INFORMACIÓN ES GUARDADA SEGMENTADA EN CADA UNO DE ELLOS (RAID O).

OFRECE TOLERANCIA A FALLOS MEDIANTE LA REDUNDANCIA DE

DATOS, MAYOR FIABILIDAD, ALTA DISPONIBILIDAD Y MENOR COSTE.

LOS INICIOS DEL SISTEMA RAID SURGIERON DE LA NECESIDAD DE RECUPERACIÓN DE DATOS DE LA MANO DE IBM EN 1978 CON SU PATENTE LLAMADA “SYSTEM FOR RECOVERING STORED IN FAILED MEMORY UNIT”

ESTA PATENTE UTILIZA LOS SISTEMAS QUE VAN A USAR LOS DISTINTOS NIVELES RAID COMO FULL STRIPING, MIRRORING O DUPLEXING

LA TECNOLOGIA RAID FUE DEFINIDA EN 1987 PORLA UNIVERSIDAD DE CALIFORNIA Y EN 1988 SE DEFINIO LOS NIVELES DEL 1 AL 5 YA SE ESTABLECIO EL TERMINO “RAID” PARA HABLAR DE ESTA TECNOLOGIA

EN LA IMPLEMENTACIÓN MEDIANTE SW ES EL SISTEMA OPERATIVO EL CUAL GESTIONA EL CONJUNTO DE DISCOS A TRAVES DE UNA CONTROLADORA SOFTWARE. ES LA SOLUCIÓN MAS LENTA.

LA IMPLEMENTACION MEDIANTE HW REQUIERA UNA CONTROLADORA RAID ESPECIFICA. ESTA OBTIENE UN RENDIMIENTO MAYOR Y PERMITE REALIZAR HOT SWAPPING. PERMITE AUMENTAR EL RENDIMIENTO SIN COMPROMETER LA INTEGRIDAD DE LOS DATOS.

LA IMPLEMENTACIÓN HIBRIDA SE HA PUESTO DE MODA YA QUE EL HW ES UNA CONTROLADORA NORMAL SIN CARACTERISTICA RAID PERO EL SISTEMA INCORPORA UNA APLICACIÓN QUE PERMITE A LOS USUARIOS CONSTRUIR RAIDS CON LA BIOS.

Los sistemas RAID se pueden dividir en 3 grupos fundamentales:

- Simples o estándar: nivel 0, 1, 3, 5, etc…

- Complejos o anidados: 0+1, 1+0, 50

- Propietarios: raid 7, raid 1.5, matrix RAID

RAID 0: Los datos se distribuyen en pequeños fragmentos en varios discos. Este nivel ofrece un alto rendimiento en operaciones de L/E pero no ofrece tolerancia a fallos. Además, se usa toda la capacidad de los discos para almacenar la información. Se necesitan al menos 2 discos para montar un RAID 0.

RAID 1: Los datos se copian en los 2 discos, lo que quiere decir que tenemos la misma información en ambos (espejo). Si un disco falla el otro sigue funcionando sin necesitad de parar el sistema. Este nivel es muy costoso para grandes servidores. Se necesitan al menos 2 discos para montar un RAID 1.

RAID 3: Dedica un único disco al almacenamiento de info. de paridad (para detectar errores). La recuperación de datos se consigue calculando el XOR de la información almacenada en los discos. Alta tasa de transferencia y fiabilidad . Operaciones de escritura limitadas por el cuello de botella que supone el disco de paridad. Si falla éste último perdemos la redundancia. Se necesitan al menos 3 discos para montar un RAID 3.

RAID 4: Es un RAID 3 pero con la división de datos a nivel de bloques en lugar de a nivel de bytes, lo que hace que se pueda acceder a los discos de forma individual. Se necesitan al menos 3 discos para montar un RAID 4.

RAID 5: Tolerancia a fallo llegando a usar el 80% de la capacidad de los discos. Esto se consigue calculando la info. de paridad y guardándola de forma alternativa por bloques en los discos. De esta forma si un disco falla se puede recuperar la info. en caliente calculando el XOR. No hay cuello de botella. Mejor relación rendimiento-coste. Se necesitan al menos 3 discos para montar un RAID 5 aunque su rendimiento óptimo se obtiene con 7 ó más unidades.

RAID 1+0: Es una división de espejos, es decir, un RAID 0 montado a partir de n RAID 1. En cada división RAID 1 pueden fallar todos los discos excepto uno sin que se pierdan datos. Este tipo de RAID es apto para BBDD de altas prestaciones ya que al no haber cálculos de paridad la velocidad de escritura es muy alta.

RAID 0+1: Es un espejo de divisiones, es decir, un RAID 1 montado a partir de n RAID 0. Cuando un disco falla se puede copiar la información del otro nivel 0 para reconstruirlo. Este nivel no es tan robusto como el 1+0 no tolerando más de un fallo de disco a no ser que sean en la misma división. Si se añade un disco a una división, hay que añadirlo también a la otra para quilibrar.

raiddev /dev/md0 raid-level 5

nr-raid-disks 4 nr-spare-disks 1 chunk-size 32 device /dev/sda1 raid-disk 0 device /dev/sdb1 raid-disk 1 device /dev/sdc1 raid-disk 2 device /dev/sdc2 raid-disk 3 device /dev/sdf1 spare-disk 0

1) Editamos el fichero: /etc/raid/tab 2) Introducimos el código de la izquierda 3) Ejecutamos: mkraid /dev/md0 4) Formateo de la unidad y uso de ella

1) Con el siguiente comando crearíamos el array de discos: sudo mdadm –create /dev/md0 –level=5 –raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1 2 ) Seguidamente los discos son sincronizados y al término podemos ver su

estado ejecutando: /proc/mdstat 3) Como queremos que el dispositivo este disponible al reiniciar ejecutamos los

siguientes comandos y de esta manera el demonio md tendrá la información necesaria para reensamblarlo al inicio:

sudo echo "DEVICE partitions" > /etc/mdadm/mdadm.conf sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf 4) El siguiente paso sería formatear la unidad para que pueda ser utilizada, por

ejemplo con: mkfs.ext3 /dev/md0

Hot Swap: El término Hot Swap hace referencia a la capacidad de algunos componentes hardware para sufrir su instalación o sustitución sin necesidad de detener o alterar la operación normal de la computadora donde se alojan.

Hot Spare: Son discos adicionales como reserva. En el momento que alguno de los discos sufra algún fallo, uno de los discos de reserva entra a formar parte del array de discos. 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.

Mirroring: Sistema que pasa por hacer una copia íntegra de un disco en otro. Si el disco primario falla el espejo continúa trabajando. Una vez sustituido el disco averiado, los datos se reconstruyen al 100%.

Paridad: 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 y guardándola en otro disco del RAID.

Striping: Sistema que consiste en guardar los datos segmentados en distintos discos para así ganar rendimiento en L/E.

Sistemas basados en velocidad de demanda: Son aquellos en los que se requiere un gran número de demandas de Entrada/Salida en el menor tiempo posible.

Sistemas basados en velocidad de transferencia: Son aquellos que intentan satisfacer una sola demanda con la máxima velocidad. En estos sistemas el tamaño de la demanda es mucho más grande que en los sistemas basados en velocidad de demanda, para el que emplea todos los discos del conjunto en paralelo para satisfacerla en el mínimo tiempo posible.

Aplicaciones de demanda: Podríamos seleccionar el Raid 5 ya que ofrece una alta velocidad de demanda, tanto en escrituras como lecturas.

Aplicaciones de transferencia: La mejor opción pasaría por RAID 3 ya que ofrece una alta velocidad de transferencia para gráficos e imágenes y aplicaciones en general en las que necesitamos gran transferencia de datos.

Coste: Vendrá marcado por nuestro poder adquisitivo, será uno de los factores mas importantes a la hora de seleccionar nuestro disco. No solo tenemos que pensar en la integridad de los datos, sino en cuando se estropee un disco tenemos que apagar el sistema. Para ello existen varios dispositivos como Hot Swap, Hot Spare, Duplex Controler, Redundant Power Supplies.

¿Qué pasa cuando falla un sistema RAID?

Aunque los sistemas RAID están diseñados para proteger frente a la pérdida de datos, están expuestos a los fallos de todo el sistema si varias unidades experimentan problemas simultáneamente.

Una vez que se ha producido una disfunción en un RAID, muchas empresas lo dan todo por perdido, la mayoría piensa que es el final de los datos afectados.

Sin embargo, esto no es cierto, existen empresas que se dedican a eso y que reconstruyendo los discos sector a sector, consiguen recuperar hasta el RAID más dañado.

9 discos Mtron de tecnología SSD (uno de los más rápidos del mercado), de 16GB cada uno, montados en RAID 0 son capaces de copiar una carpeta de 1GB en solo 4 segundos.

Existe una aplicación gratuita llamada RAID to RAID que

transfiere configuraciones RAID de un ordenador a otro sin perder los datos por implicar chipset distintos o incluso por migración a una máquina cuya placa base no soporte RAID.

Muchos sistemas operativos implementan soporte software para RAID.

Cualquier web que maneje una gran cantidad de información usa este tipo de sistema.

No hay mucha información en cuanto a futuros niveles de RAID pero en cualquier caso siempre será interesante de cara a ganar rendimiento o integridad de los datos con tolerancia a fallos y seguro que se seguirá investigando en nuevos y mejorados niveles RAID, algoritmos de paridad y controladoras.

Con la llegada de los discos duros de estado sólido (tecnología SSD / Flash) quizás se llegue al pleno apogeo de los RAID.