Transcript
´ PRACTICA
12
Niveles RAID
12.1.
Meta
Que el alumno comprenda la importancia que tiene la implementaci´on de los niveles RAID en un SMBD as´ı como todos los beneficios que aporta esto.
12.2.
Objetivos
Al finalizar esta pr´actica el alumno ser´a capaz de: Implementar distintos niveles RAID dentro de un sistema. Apreciar las mejoras en cuanto a rendimiento y robustez obtenidas al implementar los distintos niveles RAID. Elegir correctamente el nivel de RAID adecuado para un sistema dependiendo de las necesidades y metas.
12.3.
Desarrollo
Los discos duros, como todos los dispositivos en una computadora, han ido disminuyendo en precio y aumentando en capacidad, por eso, ahora es econ´omicamente viable el reunir gran n´ umero de discos duros en un sistema. El tener muchos discos mejora el desempe˜ no en la escritura y lectura de datos, si estos est´an conectados en paralelo. M´as aun, el tenerlos as´ı puede aumentar la fiabilidad
138
Niveles RAID
del almacenamiento de datos, dado que informaci´on redundante puede almacenarse en m´ ultiples discos. Esto es, la falla de un disco, no supone la falla total del sistema.
12.3.1.
RAID
Una variedad de organizaciones en discos duros, conocida como RAID (‘Redundant Array of Inexpensive Disks’ - Arreglo Redundante de Discos No costoso1 ) ha sido propuesta para manejar este problema de fiabilidad y desempe˜ no. Hay que hacer hincapi´e de que la operatividad de los discos en RAID se da en funci´on de mejorar el desempe˜ no general del sistema y su robustez y no por cuestiones econ´omicas de almacenamiento. Los primeros niveles RAID fueron dados en 1987 [26], donde se definieron inicialmente 5 niveles RAID, aunque posteriormente se agregaron 2 m´as y de este conjunto se han generado combinaciones que abarcan caracter´ısticas de dos o m´as niveles. Los niveles RAID ofrecen grandes diferencias entre rendimiento e integridad de los datos, dependiendo de las especificaciones de cada nivel. No hay un nivel RAID perfecto para todos los usuarios, ya que cada uno de ellos cumple distintos prop´ositos. A continuaci´on se presentan los niveles RAID que se implementar´an en la pr´actica. RAID 0: Data Striping Without Parity (DSA) RAID 0: Datos en bandas de discos sin paridad y sin correcci´on de errores. Tambi´en conocido como “separaci´on ´o fraccionamiento”2 . Los datos se desglosan en peque˜ nos segmentos y se distribuyen entre varias unidades. Este nivel de arreglo no ofrece tolerancia al fallo. Al no existir redundancia, RAID 0 no ofrece ninguna protecci´on de los datos. El fallo de cualquier disco del arreglo tendr´ıa como resultado la p´erdida de los datos y ser´ıa necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acr´onimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simult´anea de datos a todos ellos, con lo que se obtiene una gran velocidad en las operaciones de lectura y escritura. La velocidad de transferencia de datos aumenta en relaci´on al n´ umero de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con archivos de gran tama˜ no. Por lo tanto, este arreglo es aconsejable en aplicaciones de tratamiento de im´agenes, audio, v´ıdeo o CAD/CAM, es decir, es una buena soluci´on para cualquier aplicaci´on que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. 1
‘Inexpensivo’ ser´ıa una traducci´on literal, pero esa palabra no existe en nuestro idioma. Adem´ as el termino ‘Inexpensive’ ha sido remplazado en m´ ultiples ocasiones por ‘Independent’, pero el primer t´ermino es el correcto ya que con ese fue ideado inicialmente por investigadores de la Universidad de California en Berkeley, en 1987 [26]. 2 ‘Striping’.
Niveles RAID
139
Se necesita un m´ınimo de dos unidades de disco para implementar una soluci´on RAID 0. RAID 1: Mirrored Disk Array (MDA) RAID 1: Conjunto de discos en espejo. Se basa en la utilizaci´on de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se est´an almacenando. RAID 1 ofrece una excelente disponibilidad de los datos mediante la redundancia total de los mismos. De esta manera se asegura la integridad de los datos y la tolerancia al fallo, pues en caso de aver´ıa, se sigue trabajando con los discos no da˜ nados sin detener el sistema. Los datos se pueden leer desde la unidad duplicada sin que se produzcan interrupciones. RAID 1 es una alternativa costosa para los grandes sistemas, ya que las unidades se deben a˜ nadir en pares para aumentar la capacidad de almacenamiento y se desaprovecha la mitad de la capacidad total del conjunto de discos. Sin embargo, RAID 1 es una buena soluci´on para las aplicaciones que requieren redundancia cuando hay s´olo dos unidades disponibles. Los servidores de archivos peque˜ nos son un buen ejemplo. Se necesita un m´ınimo de dos unidades para implementar una soluci´on RAID 1. RAID 5: Independent Disk Array (IDA) RAID 5: Sistema de discos con acceso independiente con integraci´on de c´odigos de error mediante una paridad. Este arreglo ofrece tolerancia al fallo, pero adem´as, optimiza la capacidad del sistema permitiendo una utilizaci´on de hasta el 80 % de la capacidad del conjunto de discos. Esto lo consigue mediante el c´alculo de paridad de la informaci´on y su almacenamiento alternativo por bloques en todos los discos del conjunto. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la informaci´on en tiempo real, mediante una operaci´on l´ogica de ‘O exclusivo’, sin que el servidor deje de funcionar. RAID 5 guarda la paridad de los datos dentro de los discos y no hace falta un disco dedicado para guardar dichas paridades. La paridad se genera haciendo un XOR de los datos, creando la zona de paridad PAR, la paridad nunca se guarda en los discos que contienen los datos que han generado dicha paridad, ya que en el caso que uno de ellos se estropease, bastar´ıa con aplicar la operaci´on XOR en los datos restantes para que el dato almacenado en el disco descompuesto, se restablezca. RAID 5 no asigna un disco espec´ıfico a esta tarea sino que asigna un bloque alternativo de cada disco para esta escritura. Al distribuir la funci´on de comprobaci´on entre todos los discos, se disminuye el cuello de botella y con una cantidad suficiente de discos puede llegar a eliminarse completamente, proporcionando una velocidad equivalente a un RAID 0. RAID 5 es
140
Niveles RAID
el nivel de RAID m´as eficaz y el de uso preferente para las aplicaciones de servidor b´asicas. Se necesita un m´ınimo de tres unidades para implementar una soluci´on RAID 5, aunque su resultado ´optimo de capacidad se obtiene con siete o m´as unidades. RAID 5 es la soluci´on m´as econ´omica por megabyte, que ofrece la mejor relaci´on de precio, rendimiento y disponibilidad para la mayor´ıa de los servidores.
12.3.2.
Hardware RAID
Actualmente la implementaci´on de un sistema RAID puede llevarse a cabo mediante la utilizaci´on de hardware dedicado o bien simular su funcionamiento mediante el software. En el primer caso, el sistema basado en el hardware gestiona el subsistema independientemente de la m´aquina y presenta a la misma un u ´nico disco por conjunto de discos RAID. Un ejemplo del hardware RAID es el que se conecta a un controlador SCSI y presenta el conjunto de discos RAID en una sola unidad de disco. Un sistema externo RAID se encarga de mover la “inteligencia” RAID a un controlador que se encuentra en un subsistema de discos externo. Todo el subsistema est´a conectado a la computadora con un controlador SCSI normal y para esta es como si se tratara de una sola unidad de disco. Los controladores RAID tambi´en tienen la forma de tarjetas que act´ uan como un controlador SCSI del sistema operativo pero se encargan de todas las comunicaciones del disco actual. En estos casos, se conectan las unidades de disco al controlador RAID como si se tratara de un controlador SCSI pero se tienen que a˜ nadirlas a la configuraci´on del controlador RAID; de todas maneras el sistema operativo nunca nota la diferencia.
12.3.3.
Software RAID
El software RAID implementa los diversos niveles de RAID en el c´odigo del kernel (dispositivo de bloque) del sistema operativo Linux3 . Ofrece la soluci´on m´as barata ya que las tarjetas de controladores de disco y los chasis “hot-swap” son bastante costosos4 y no se requieren. El software RAID funciona con discos ATA, SATA (que son m´as baratos) y SCSI. El controlador MD (‘Multiple Devices’) en el kernel de Linux es un ejemplo de la soluci´on RAID que es completamente independiente del hardware. El rendimiento del conjunto de discos del software RAID depende del rendimiento y de la carga que presenta el procesador en un momento dado. El software RAID, cuenta con las siguientes caracter´ısticas principales: Proceso de reconstrucci´on de subprocesos. 3
En nuestro caso particular en la distribuci´ on Fedora Core 3, ya que el kernel ofrece soporte desde su versi´ on 2.4.X. 4 Un chasis de “hot-swap” permite quitar un disco duro sin tener que apagar la computadora.
Niveles RAID
141
Configuraci´on basada en el kernel. Portabilidad de los conjuntos de discos entre m´aquinas Linux sin reconstrucci´on. Reconstrucci´on de los conjuntos de discos con el uso de los recursos que no se usan del sistema. Soporte para las unidades de disco en las que se pueden hacer cambios “en caliente” (hot-swappable). Detecci´on autom´atica de procesador con el objetivo de obtener beneficios de las mejoras del mismo. El RAID por software, dada su naturaleza, tiende a ser una soluci´on m´as flexible que el RAID por hardware. el lado negativo de esto, es que en general se requiere m´as ciclos del procesador, aunque con los procesadores ‘r´apidos’ de hoy en d´ıa, el rendimiento del software RAID aumenta considerablemente con respecto al hardware RAID.
142
Niveles RAID Actividad 12.1 Dado que en Fedora Core 3, el software RAID es mas sencillo configurarlo durante la instalaci´on. Ser´a preciso contar una m´aquina para este prop´osito Inicia el proceso de instalaci´on de Fedora Core 3. Durante la Configuraci´ on de la partici´ on del disco, selecciona Partici´ on manual con Disk Druid. En Disk Druid, elije Nuevo para crear una nueva partici´on. Crea las particiones “/boot” , “/ ” (ra´ız) con el Tipo de sistema de archivos ext3, adem´as del “swap”. Crea otra partici´on y selecciona software RAID desde el men´ u Tipo de sistema de archivos (observa que no se puede elegir un punto de montaje esto se hace una vez que se ha creado el dispositivo RAID). Para Unidades admisibles, selecciona el(los) disco(s) donde se quiera configurar el arreglo RAID. Si se cuenta con varios discos, todos los discos podr´an ser seleccionados desde aqu´ı y deber´an anularse de la selecci´on los discos que no tengan un arreglo RAID. Introduce el tama˜ no de la partici´on. Selecciona Tama˜ no fijo para hacer la partici´on de un tama˜ no especificado, Haz click en OK para volver a la pantalla principal. Repite estos pasos para crear tantas particiones como necesite la configuraci´on RAID. Ten en cuenta que no todas las particiones no tienen porqu´e ser RAID. Por ejemplo, se puede configurar tan s´olo la partici´on /home como un dispositivo RAID por software.
Niveles RAID
143
Actividad 12.1 - continuaci´ on Una vez que se hayan creado todas las particiones como particiones software RAID, hay que hacer lo siguiente: Selecciona el bot´on RAID en la pantalla principal de particionamiento Disk Druid. A continuaci´on, aparecer´a un dialogo nuevo donde se puede crear un dispositivo RAID. Introduce un punto de montaje llamado /psql. Selecciona por tipo de sistema de archivos para la partici´on reci´en creada: ‘ext3’. Selecciona md0 como el nombre del dispositivo RAID. Elige RAID 0. Las particiones RAID que se acaban de crear aparecer´an en la lista Miembros RAID. Selecciona cuales particiones de ´estas deben ser usadas para crear el dispositivo RAID. Despu´es de hacer click en OK, el dispositivo RAID aparecer´a en la lista Descripci´ on de la unidad. Llegados a este punto, podemos continuar con el proceso t´ıpico de instalaci´on. pero NO selecciones la instalaci´on de PostgreSQL. Despu´es de tener tu sistema ya instalado, descarga la u ´ltima versi´on disponible de PostgreSQL e inst´alala. Teniendo el cuidado de hacerlo sobre la partici´on creada en la actividad anterior, as´ı como tambi´en de ubicar el directorio de datos en dicha partici´on.
144
Niveles RAID
12.4.
Ejercicios
1. Realiza la instalaci´on de otros dos sistemas, uno con nivel RAID 1 y otro con nivel RAID 5. 2. Carga una nueva base de datos en todos los sistemas utilizando sentencias ‘INSERT INTO’. a) Para 10000 tuplas en la tabla. b) Para 1000000 tuplas en cada tabla. 3. Ejecuta las siguientes consultas: a) Obten el nombre de todos los cliente cuyo nombre empieza con las letras ‘Ma’. b) Obten el nombre de todos los clientes que hay realizado una compra en el a˜ no 2004. c) Obten el nombre y apellido de todos los clientes que han comprado alg´ un videojuego de la consola ‘PS2’. d ) Obten para cada consola, el nombre de la consola y el total de videojuegos disponibles para ella. e) Obten el nombre de la consola con menor n´ umero de videojuegos. Genera un reporte de tus experimentos al llevar a cabo las inserciones en las tablas y la ejecuci´on de cada consulta. Incluye una gr´afica comparativa y las conclusiones con respecto al rendimiento de cada sentencia en funci´on del tiempo5 necesario que se tardo en ejecutar para cada nivel RAID. 6 ¿Qu´e nivel de RAID fue el mejor en t´erminos generales? ¿Por qu´e consideras esto? EXTRA Genera una base de datos que contenga im´agenes dentro de alguna o alguna de sus tablas. Repite los experimentos y analiza los nuevos resultados. ¿Existe alguna relaci´on con el tama˜ no de los datos almacenados que afecta el rendimiento de alg´ un nivel RAID?
5
Para tomar los tiempos de una consulta, PostgreSQL cuenta con el comando ‘\timing’. No olvides incluir en el reporte la configuraci´ on del equipo en donde ejecutaste las pruebas, tanto de hardware como de software. 6