Autores: Nuria Acebal del Rio, Guillermo Fernández del Moral, Héctor Arroyo Santiago
Fecha: 13 de mayo de 2010
El objetivo es medir la mejora de rendimiento que se produce al usar un RAID 5 tanto en operaciones E/S en general como en velocidad de carga del sistema operativo.
Además de los benchmarks, tambié se explica cómo montar y configurar el RAID por hardware en los equipos de la sala de prácticas y el proceso para instalar Windows Server 2003 en él (incluyendo algunos problemas imprevistos y sus soluciones).
El acónimo RAID denomina a cualquier sistema de almacenamiento de datos que utilice múltiples discos para conseguir mayor velocidad, seguridad, capacidad, o una combinación de éstas. La especificación original definía varias combinaciones o "niveles" distintos de RAID según la configuración lógica de los discos.
En nuestro caso usamos un RAID 5, que escribe cada bloque en un disco distinto y distribuye igualmente la información necesaria para la corrección de errores en caso de un error de lectura. Las lecturas acceden a los bloques necesarios en paralelo desde todos los discos. Las escrituras requieren leer el bloque a escribir (si no se va a sobreescribir completamente), escribir el nuevo bloque y calcular y escribir la información de paridad para el bloque escrito. En caso de error, se lee el bloque de paridad correspondiente y se reconstruye el sector erróneo "al vuelo", ocultando así el error al sistema operativo (en el caso del RAID por hardware) o a la aplicación que solicitó la lectura (si el RAID es por software). En general, para n discos de igual tamaño (como en nuestro caso), RAID 5 proporciona un tamaño igual a (n-1) veces el de los discos, permitiendo así seguridad en los datos sin sacrificar (tanto) el espacio disponible como RAID 1.
RAID 5 tolera el fallo completo de un único disco antes de que se pierdan todos los datos, ya que reconstruye los datos perdidos de éste a partir de la información de paridad de sus bloques (almacenada en los restantes discos). El fallo de un segundo disco produce una pérdida de datos (al perder parte de los bloques de paridad). Para evitar este problema algunas implementaciones permiten definir discos extra (hot spares) a usar en caso de fallo. Un sistema de este tipo recalcula la información perdida usando los bloques de paridad y la escribe en un disco "de reserva", con lo que podría producirse el fallo de varios discos completos antes de que hubiese pérdida de datos. En general, con N discos de reserva se permite el fallo de N+1 discos antes de que se pierdan datos.
Si tenemos un RAID con n discos, las siguientes expresiones permiten calcular su tiempo medio entre fallos (MTBF: Mean time Between Failures) según el tipo de configuración y sin considerar el tiempo necesario para la reconstrucción:
Los anteriores cálculos están simplificados, ya que no tienen en cuenta otros factores, como que un fallo hardware haga que fallen varios discos en un periodo de tiempo muy corto, fallos en varios discos de un lote de discos, etc. En este post puede consultarse más información al respecto.
Además, en caso de RAID por hardware, la propia controladora supone un punto único de fallo (SPOF).
Si el trabajo consiste en configurar algo, se debería explicar la configuración tanto hardware (procesador, disco duros, tarjetas, memoria, modelo de los periféricos...) como software (sistema operativo, programas que afecten a lo que se va a configurar) de la que se parte.
Ante la imposibilidad de realizar este trabajo con nuestros propios ordenadores personales, hemos decidido utilizar el laboratorio de hardware, donde el profesor nos ha suministrado todo lo necesario. Escogimos un ordenador par, el ATC128, y lo abrimos para comprobar que los dos discos duros que tiene son exactamente iguales.
Para montar el RAID 5 vamos a usar la controladora integrada en la placa base de los equipos. Como para ello necesitamos como mínimo 3 discos duros, extraemos otro disco del ATC136, que es igual a los otros dos que ya teníamos, y el cable de alimentación SATA que estaba utilizando. Al ir a conectarlo nos damos cuenta de que no quedan conectores de 5V SATA libres en la fuente de alimentación, por lo que inicialmente pensamos en buscar un "ladrón" que nos permita sacar dos tomas de alguna de las que estaban en uso. Sin embargo, al final optamos por desconectar la alimentación de las conexiones eSATA del ordenador para usarlas para alimentar el disco duro.
Colocamos el nuevo disco duro y conectamos su alimentación. Nos falta también un cable de transmisión de datos SATA, que también lo cogemos del otro ordenador.
Como la placa base dispone de varios conectores SATA, al principio nos preguntamos si estaríamos conectando bien los discos, ya que tal vez no se podrían conectar de cualquier manera para montar el RAID por hardware. Tras consultar el manual de la placa base vemos que efectivamente los discos a usar en el RAID tienen que estar montados en unos conectores especiíficos para que todos ellos los reconozca la controladora RAID del chipset ICH9R, que es sobre el que se montará el RAID hardware. No tuvimos que hacer cambios, ya que casualmente los habíamos conectado a los puertos de la controladora correcta.
Tras comprobar que todas las conexiones eran correctas, arrancamos el ordenador y entramos en la BIOS pulsando suprimir. Modificamos el parámetro SMART LINE, pasándolo de disabled a RAID.
Tras guardar los cambios arrancamos de nuevo el ordenador y pulsamos Control+I para acceder a la BIOS del controlador RAID. Seleccionamos "Create RAID Volume".
Dentro del menú cambiamos el nivel de RAID a "RAID 5 (Parity)". El progama de configuración nos advierte de que se borrarán todos los datos de los discos.
La configuración final se muestra en la siguiente imagen, donde podemos ver como ya detecta los tres discos.
Una vez configurada la controladora solo nos queda instalar Windows. Nos hacemos también con el CD de la placa base, porque según el manual nos va a pedir los drivers. Durante la instalacción de Windows se nos pide insertar un disquette, lo cual es un problema porque no tenemos disquetera en este PC. En un principio, y dado que en la actualidad no es normal que los equipos traigan una, pensamos que el programa de instalación nos permitiría instalar los drivers desde el CD de la placa base... pero no hubo suerte y nos pidió que insertáramos el disco de drivers en la unidad A:.
El profesor nos facilitó un equipo con disquetera para poder extraerla y montarla en el nuestro. También utilizamos el cable del bus de datos que se estaba usando en ese equipo. Tuvimos problemas para montarla en la caja, pues era dificil introducirla en el hueco correspondiente, y hubo que sostenerla sobre una carpeta que llegaba justo a su altura.
El siguiente paso fue escoger "ICH9R SATA RAID controller" de entre las opciones que se nos presentaban, tras lo cual, como si de una broma se tratase, se nos advierte de que el controlador que viene con Windows es más reciente que el que le estamos pasando por disquete. Ya que nos lo pedía inicialmente, escogimos el del disquete. Una vez que se han copiado los archivos correspondientes, seleccionamos dar formato NTFS y se inicia la instalación de Windows.
Como estamos usando un RAID 5, la instalación iba a tardar más de lo normal debido a que ofrece menos rendimiendo cuando se realiza un número elevado de escrituras de ficheros pequeños. Mientras tanto hicimos unas pruebas de rendimiento en un equipo igual al nuestro antes de montar el RAID 5 para poder medir la ganancia de rendimiento. Al final fueron necesarios dos días para montar el RAID, tras los cuales comprobamos de el Administrados de Discos Locales de Windows lo reconoce como una única unidad por estár montado por hardware (si fuese por software el Administrador de Discos nos mostraría una lista con todos los discos).
Una vez instalado el sistema operativo pasamos hacer las pruebas de rendimiento con un disco duro como en los que montamos el RAID 5 pero sin montarlo y en el RAID que hemos montado. Para realizar las pruebas de rendimiento usamos dos programas distintos para tener distintos resultados. Los programas que utilizamos fueron el PcMarck'04 y el CristalDisckMark. A continuación mostramos los resultados en una tabla y pasamos a explicarlo.
Tipo de prueba | Con RAID | Sin RAID |
---|---|---|
Escritura secuencial: 500 MB | 16.62 MB/s | 89.28 MB/s |
Lectura secuencial: 500 MB | 74.67 MB/s | 79.38 MB/s |
Escritura aleatoria: 500 MB | 12.56 MB/s | 34.11 MB/s |
Lectura aleatoria: 500 MB | 41.80 MB/s | 39.34 MB/s |
Inicio de Windows | 9.49 MB/s | 8.28 MB/s |
Carga de aplicaciones | 4.96 MB/s | 4.57 MB/s |
Copia de archivos | 17.49 MB/s | 42.06 MB/s |
Uso general | 4.16 MB/s | 4.46 MB/s |
Como se ve por los resultados obtenidos, ganamos velocidad en la lectura aleatoria, mientras que se pierde en la secuencial. También se pierde velocidad en las escrituras (de cualquier tipo), ya que el sistema de archivos usa un tamaño de bloque menor que el del RAID, con lo que cada escritura requiere de un ciclo lectura + escritura + actualización de paridad. En general, podría decirse que se pierde velocidad a costa de mejorar la fiabilidad, siendo la perdida de rendimiento mayor o menor según el tipo de acceso.
Las imagenes que mostramos a continuación son las capturas los resultados obtenidos:
Aunque para la configuración de los discos ha sido suficiente con el manual de la placa base, sí que hemos necesitado consultar otros sitios para elaborar el resumen teórico, los cuales se muestran a continuación:
El uso de un RAID 5 en un sistema puede beneficiarnos o no según el tipo de uso que se le vaya a dar. Para aplicaciones que requieran muchas lecturas (tanto aleatorias como secuenciales) puede ser útil con la ventaja adicional de poder recuperar el sistema fácilmente en caso de que uno de los discos falle, minimizando el tiempo necesario para la recuperación.