Instalación y configuración de Computadores y Periféricos
Escuela Técnica de Ingeniería Informática de Gijón
3º Ingeniería Técnica en Informática de Sistemas

Instalación, Configuración y Pruebas sobre un sistema RAID

Autores: César Caamaño Beiro, Héctor González Velasco y Noé Vázquez González

Fecha: 15 de mayo de 2004

Ver o hacer comentarios sobre este trabajo
Índice de todos los trabajos

Índice

↑Arriba

Objetivos

El principal objetivo de este trabajo es explicar cómo instalar y configurar un nivel RAID-0 (Redundant Array of Independent (or Inexpensive) Disks) sobre dos discos con interfaz SATA (Serial ATA) gracias a las controladoras integradas en la placa base.

Además de ello se explicará la forma de transformar un disco duro con tecnologría ATA/IDE a SATA mediante un adaptador, cómo instalar Windows XP y Linux Suse 8.1 sobre los discos duros en RAID, y se mostrarán algunas pruebas y medidas realizadas con benchmarks sobre diferentes tipos de sistemas de ficheros.

↑Arriba

Teoría básica

Interfaz SATA

Vamos a empezar explicando qué son los discos Serial ATA y cuales son las ventajas sobre los discos duros P-ATA que se han venido utilizando hasta el momento. (Desde la aparición del Serial ATA, se acostumbra a denominar al ATA normal como ATA paralelo (P-ATA) para no confundirlos.)

Imagen de ejemplo Pulsar para ver en grande

Serial ATA es un nuevo interfaz de conexión en bus diseñado principalmente para la transferencia de datos entre un computador y un disco duro.

Serial ATA tiene tres ventajas principales sobre su predecesora:

Velocidad:

Inicialmente, el Serial ATA alcanza una velocidad de sólo 150 MegaBytes por segundo, la que no es mucho mayor que la alcanzada por el ATA paralelo (133 MB/seg), pero a diferencia del P-ATA, la nueva interface tiene mucha mayor capacidad de crecimiento. El 2005 aparecerá el Serial ATA II, que duplica la velocidad hasta llegar a 300 MB/seg y se espera que los 600 MB/seg (SATA III) se alcancen para el año 2007.

Los buses paralelos, como el P-ATA, tienen dificultad para alcanzar grandes velocidades debido a que mantener sincronizadas todas las líneas de datos es difícil. En cambio, Serial ATA usa la tecnología de LVDS ("Low Voltage Differential Signaling" o Señalización Diferencial de Bajo Voltaje) para sus señales. Esta tecnología utiliza dos hilos para cada canal por los cuales se transmite una intensidad muy pequeña (3 mA) para conseguir que la diferencia de voltaje entre ambos sea muy pequeña (300 mV) y reducir así los efectos de la capacitancia e inductancia. Si además de esto se trenzan los hilos se consigue una disminución del ruido.

Es discutible la necesidad de tales velocidades, teniendo en cuenta que muy pocos discos pueden exceder los 60 MB/seg de transferencia sostenida.

Imagen de ejemplo Pulsar para ver en grande

Cableado:

En lugar del ancho y corto cable de los discos P-ATA (de 80 conductores y sólo 45 cm de longitud), el cable Serial ATA es mucho mas delgado, con sólo 7 conductores y una longitud de hasta 1 metro. Este cambio en el cableado permite mejorar la ventilación interna de los PCs. También, la relación Master/Slave del estándar P-ATA ha sido eliminada, pues los cables S-ATA sólo admiten un disco en cada cable.

Imagen de ejemplo Pulsar para ver en grande

Alimentación:

Con respecto del cable de energía, los discos Serial ATA usan ahora un conector diferente al P-ATA, para permitir la capacidad de conexión "en caliente" (es decir, el disco puede ser conectado y desconectado del PC mientras este se encuentra en funcionamiento). El nuevo conector de energía tiene 15 pines y entrega tres voltajes diferentes: 3.3 Volts, 5 V y 12 V.

Existen soluciones alternativas para la utilización conjunta de Discos SATA y P-ATA. En nuestro caso hemos utilizado un adaptador denominado Serillel. Éste permite la conexión de un disco duro P-ATA mediante un cable SATA. Requiere alimentación externa mediante un molex de 3 pines y su precio ronda los 30€.

Imagen de ejemplo Pulsar para ver en grande Imagen de ejemplo Pulsar para ver en grande

Configuración de partida

Discos

Contamos con un disco SATA 150 Maxtor 6Y160M0 (7200rpm, Buffer 8MB, 160GB, 9.3ms tiempo medio de búsqueda) y un disco ATA 133 Maxtor 6Y120L0 (7200rpm, Buffer 2MB, 120GB, 9.3ms tiempo medio de busqueda). Utilizamos un adaptador para discos duros de ATA100/133 a SATA150, Serillel.

Imagen de ejemplo Pulsar para ver en grande Imagen de ejemplo Pulsar para ver en grande

Placa Base

ABIT NF7-S, que posee una controladora SATA-RAID SiliconImage 3112a con dos canales y soporte para RAID0 y RAID1.

Imagen de ejemplo Pulsar para ver en grande

Cableado

Dos cables SATA y dado que el disco duro SATA soporta las conexiones de alimentación tradicionales, no será necesario un adaptador de corriente.

Drivers

Es preciso recopilar todos los drivers y software necesario para la configuración y arranque con dispositivos SATA y RAID, dado que es necesario tanto a la hora de instalar Windows como Linux. En la página de SiliconImage, se pueden encontrar los drivers necesarios para Windows y también se puede encontrar un kernel precompilado con el driver de la controladora incluido sólo para algunas distribuciones. A día de hoy, no hay otra forma de conseguir el driver de la controladora para Linux de ninguna otra forma más que utilizando ese kernel precompilado.

↑Arriba

Desarrollo

Reunir material necesario

Para empezar, deberemos reunir todo el software y drivers que hayamos conseguido y asegurarnos de que tenemos todo lo necesario para hacer que el sistema vuelva a funcionar. Por tanto, tendremos, los dos discos duros ya mencionados, los cables SATA, el adaptador para uno de los discos duros, los disquetes con los drivers y los cds con el software.

Instalación de los componentes Hardware

Una vez que estuvieron montados ambos discos duros sobre las ranuras de la caja, se colocó el adaptador a uno de los discos duros. A continuación se instalaron los cables SATA, desde la placa a los disco y al adaptador. Se estableció el disco SATA en el canal 1 y el PATA reciclado en el canal 2. Por último, se conectaron los cables de alimentación tanto a los discos como al adaptador.

Imagen de ejemplo Pulsar para ver en grande Imagen de ejemplo Pulsar para ver en grande

Configuración de la BIOS

En la BIOS es necesario activar la controladora SATA, si no lo estaba, en el apartado de Integrated Peripheals, On Board PCI Device.

Imagen de ejemplo Pulsar para ver en grande

Fase creación RAID

Con la controladora activada, en cada arranque se cargará la BIOS de la controladora justo antes del Post, que nos detectará los discos además de dejarnos acceder a la configuración de la controladora, donde podremos administrar el RAID, en el caso de que se quiera utilizar. Una vez dentro de la BIOS de la controladora, podremos crear o borrar un conjunto (SET) de discos, así como realizar un formateo a bajo nivel.
Cabe destacar, que todas estas opciones suministradas por esta BIOS suponen la pérdida completa de todos los datos que hubiera en los discos afectados.
Entraremos en crear un nuevo SET, donde podremos elegir el tipo de RAID que deseamos: Striped o Mirrored.

Imagen de ejemplo Pulsar para ver en grande

En la siguiente pantalla elegiremos el tamaño del chunk (bloque en que se divide la información que irá a cada disco) y el orden de los discos. En este caso la controladora soporta tamaños entre 4Kb y 128Kb.

Imagen de ejemplo Pulsar para ver en grande

Como en esta práctica se pretende medir el rendimiento máximo que darían estos discos, se eligió RAID0 y se fue variando para cada prueba el tamaño de chunk entre todos los disponibles.

↑Arriba

Análisis de los Discos con HDtach

Se ha utilizado el benchmark HDtach para medir el rendimiento general de los discos sin tener en cuenta el sistema operativo que se tenga instalado. Como se puede observar en los resultados, la propiedad denominada Read Burst Speed, que es una medida de la cantidad de información que el disco puede bombear desde su buffer a través del bus SATA son 110 MB/s. Esta velocidad, solía ser, con un dispositivo IDE, de aproximadamente 80 MB/s con un buffer de 8MB. Con esto se comprueba que ya se supera la barrera de rendimiento que nos daba el bus IDE, que estaba situada en los 100MB/s, pero aún está lejos la frontera de esta primera versión de SATA que está situada en 150MB/s.

Los siguientes resultados son un resumen de la información obtenida con HD Tach:

Imagen de ejemplo Pulsar para ver en grande Imagen de ejemplo Pulsar para ver en grande Imagen de ejemplo Pulsar para ver en grande

Todas las pruebas y resultados individuales se pueden ver en las siguientes imágenes:

HD tach:

↑Arriba

Instalación de Windows XP

En la instalación de Windows XP es necesario especificar que se requerirán drivers no incluidos en la distribución. Esto se hace pulsando la tecla F6 al inicio de la instalación y teniendo preparado un disquete con los drivers del fabricante, que se pedirá más adelante durante la instalación. Por lo demás, la instalación es idéntica a cualquier otro sistema.

Imagen de ejemplo Pulsar para ver en grande

Una vez seleccionado que vamos a instalar el controlador para dispositivo de almacenamiento masivo, deberemos escoger en la siguiente pantalla el driver adecuado de los disponibles en el disquete.

Imagen de ejemplo Pulsar para ver en grande

Configuración de las particiones

Una vez instalado Windows correctamente, con soporte para nuestra controladora; ya sea porque se haya instalado sobre el raid o, como es este caso, esté instalado en un disco IDE; se procederá a crear las particiones sobre las que haremos los test más adelante.
Utilizando la herramienta de sistema de Administración de discos, se crearon dos particiones primarias de 20GB, una NTFS y otra FAT32. Ésta operación, fue repetida de la misma forma para cada tamaño de chunk y cada test que se realizó.

Imagen de ejemplo Pulsar para ver en grande

Pruebas bajo Windows

Las pruebas de rendimiento realizadas con SiSoft Sandra sobre Windows XP para los 2 sistemas de archivos que utiliza este sistema operativo reflejan que la configuración para un óptimo rendimiento del RAID son: FS: FAT32. TAMAÑO CHUNK: 128 K. WRITE CACHE: ACTIVADA.
Sin Embargo las difencias de tasas de L/E de FAT con respecto a NTFS son mínimas (al rededor de 0,20 MB/s) Por lo que respecta a sistemas de archivos en windows la diferencia es despreciable. Lo que si incremeta el rendimiento como era de esperar es el sistema SATA-RAID. Por ejemplo un disco PATA100 7200rpm logra al rededor de 30 MB/s en pruebas sobre sistemas de archivos y un disco SATA150 7200rpm consigue alrededor de 35Mb/s, nuestro SATA-RAID (1ATA133 7200rpm +1SATA150 7200rpm) rinde al rededor de 55 Mb/s.
Por ultimo resaltar que la cache de escritura incremeta de manera considerable el rendimiento del disco como podemos ver en las primeras pruebas en muy recomedable que esté simpre activa.

Aquí se muestran resumidos los resultados obtenidos con Sisoft Sandra:

Imagen de ejemplo Pulsar para ver en grande Imagen de ejemplo Pulsar para ver en grande

Siguiendo estos enlaces se pueden ver todos los resultados obtenidos en las pruebas de rendimiento:

Sisoft Sandra:

↑Arriba

Instalación de Linux

Para linux se ha utilizado un kernel precompilado obtenido de la web del fabricante, dado que tanto los módulos de soporte de RAID sobre esta controladora están todavía en desarrollo. Ya se soportan los discos sata de la misma, pero sin RAID. Este kernel no es público, es decir, el código no es abierto lo que dificulta en parte el desarrollo de esta compatibilidad.

Se soportan, por tanto, sólo unas distribuciones muy específicas, detalladas en la zona de descarga de este fichero. Se debe señalar la inestabilidad demostrada de este kernel, que ya se avisaba en algunos foros, que hace que el sistema deje de responder en un punto sin posibilidad de recuperación. En nuestro caso se eligió SUSE 8.1, para la que se proporcionan unos ficheros [Quick] [Full] con pasos a seguir para completar la instalación de este núcleo con el soporte deseado.

Resumen de los pasos a seguir:

Primero se debe crear un disquete, bien sea desde linux o desde windows que contenga la imagen de disquete que proporciona este paquete. Insertar el CD de instalación de la distribución linux adecuada, en este caso SuSE 8.1 y presionar Ctrl-Alt antes de que la instalacion comience, durante el menú de arranque del CD. Insertar el disquete e introducir 'noapic' como opción de arranque. Continuar con la nueva instalación normalmente.

Configuración de las particiones

En este caso, sólo dio tiempo a realizar las pruebas sobre una particion EXT3 de 20GB antes de que el kernel se volviera inestable, por tanto se adjuntarán sólo pruebas para este sistema de ficheros con tamaño de chunk de 32KB. En linux se creó la partición mencionada utilizando cfdisk, y se formateó adecuadamente con mkfs.

Pruebas bajo Linux

Como ya se dijo anteriormente, sólo se realizaron las pruebas sobre un tamaño de chunk de nuestro Set, no obstante, fueron lo suficientemente amplias como para hacer un estudio preciso desde linux. El programa utilizado fue el IOZone, realizando un test estándar automático sobre una partición EXT3.
En todas estas gráficas se aprecian claramente los efectos producidos por las cachés, tanto de CPU, como del sistema como de los discos, viéndose también el punto en el que las caches dejan de tener efecto al ser superadas en tamaño por las operaciones realizadas. También quedan bien definidos los puntos en los que deja de tener efecto una de las partes, como puede ser la de buffer y pasa al rendimiento real una vez superada.

Escritura:

Mide el rendimiento resultante de escribir un nuevo fichero, con la sobrecarga de 'metadatos' que conlleva (información del directorio, espacio ocupado, etc.).

Imagen de ejemplo Pulsar para ver en grande

Re-Escritura:

Este test, evalúa el rendimiento resultante de escribir un fichero ya existente. De esta forma, los metadatos no deben escribirse por que ya lo están.
Se puede observar el rendimiento claramente superior al anterior, sobre todo con fichero y bloques pequeños, llegando a ser casi cinco veces superior.

Imagen de ejemplo Pulsar para ver en grande

Lectura:

Mide la capacidad de lectura de un fichero existente.

Imagen de ejemplo Pulsar para ver en grande

Re-Lectura:

Obtiene el resultado de haber leído un fichero que ya había sido leído recientemente. De esta forma, se aprovecha la caché que pueda tener el sistema operativo de los ficheros que acaban de ser utilizados.
También en este caso, se puede notar claramente que el rendimiento es superior cuando el fichero y los bloques son pequeños.

Imagen de ejemplo Pulsar para ver en grande

Lectura Aleatoria:

En este test se realizan accesos a lo largo del fichero de forma aleatoria. Aquí influyen mucho factores de los discos como el tiempo de búsqueda o el número de discos.
En este caso, se observa que el rendimiento de las lecturas aleatorias es algo superior a las lecturas secuenciales, esto se debe a que existen dos discos y de esta forma responden mejor a las lecturas aleatorias.

Imagen de ejemplo Pulsar para ver en grande

Escritura Aleatoria

Se realizan escrituras en lugares aleatorios del fichero, también influye mucho aquí el tiempo de búsqueda y el número de discos. Aquí también se obtiene un mejor rendimeinto que en el de escritura se cuencial.

Imagen de ejemplo Pulsar para ver en grande

Lectura hacia atrás:

Con este test, se obtienen resultados provenientes de haber leído el fichero hacia atrás, justo la forma contraria a la habitual, no obstante, hay muchas aplicaciones que utilizan este método de lectura. Es una buena idea para observar el rendimiento ya que muchos sistemas operativos tienen mecanismos para mejorar el rendimiento de lecturas hacia delante, pero no así al revés.
Queda claro, después de ver estos resultados, que el rendimiento es pobre comparado con las lecturas hacia delante, no teniendo apenas efecto las caches del sistema y obteniéndose un resultado final menor.

Imagen de ejemplo Pulsar para ver en grande

Rescritura de un Bloque:

En este test se realizan escrituras sucesivas de un bloque concreto de un fichero. De esta forma, se puede comparar el rendimiente cuando los datos caben en la cache (con el bloque suficientemente pequeño) y cuando no caben.
En este test, queda claro el tremendo efecto de la caché cuando el dato cabe en ella y se vuelve a confirmar el rendimiento cuando las cachés y sistemas de mejora de rendimiento se superan, pues se obtienen los mismos resultados.

Imagen de ejemplo Pulsar para ver en grande

Lectura Siguiendo un Patrón:

Se simula el comportamiento de una aplicación, haciendo secuencias de lecturas y búsquedas, comportamiento no optimizado por ningún sistema operativo. Con este test se pueden detectar algunas anomalías en el rendimiento, dependiendo de como coincidadn las lecturas y búsquedas, detectando tambíen discos que hagan de cuello de botella, en un Set como el nuestro, por ejemplo.
Se observa que en este test,la caché de la CPU tiene mucho que decir, dando un enorme rendimiento, el resto de zonas son coincidentes con tests anteriores.

Imagen de ejemplo Pulsar para ver en grande

Test de Fwrite:

Este test mide el rendimiento obtenido a raiz de usar la función de libreria fwrite() para crear un nuevo fichero, que realiza escrituras con buffer This test measures the performance of writing a file using the library function fwrite(). Ésta función es muy utilizada en las aplicaciones, por tanto, es interesante ver su rendimiento.
Se puede ver, en este test, una curiosa gráfica, que remarca un alto rendimiento en las zonas en las que los datos caben en el buffer que utiliza fwrite(), decayendo claramente cuando éste se ve superado.

Imagen de ejemplo Pulsar para ver en grande

Test de Re-Fwrite:

Se mide el rendimiento de fwrite() sobre un fichero existente, ahorrando la parte de los metadatos. Se observa que la forma de la gráfica es muy similar a la anterior, sólo que el rendimiento en este test es mayor que el doble que el anterior, fruto de las mejoras de rendimiento que ofrecen los sistemas.

Imagen de ejemplo Pulsar para ver en grande

Test de Fread:

En este, se mide el redimiento de la funcion de librería fread(), que también utiliza un buffer de lectura y también es ampliamente utilizada por las aplicaciones. El rendimiento aquí es algo inferior al de lectura sin utilizar fread().

Imagen de ejemplo Pulsar para ver en grande

Test de Re-Fread:

Mide el rendimiento de fread() sobre ficheros leídos recientemente. Aqui, el rendimiento es casi el doble que el anterior, gracias, una vez más, a los mecanismos de optimización de este tipo de operaciones proporiconados por los sistemas.

Imagen de ejemplo Pulsar para ver en grande

Analizando los resultados de estas pruebas sobre EXT3, refiriéndonos a cuando las caches del sistema no tienen efecto, los resultados son aproximadamente los mismos, si comparamos los detalles ofrecidos por Sandra y por IOZone veremos que las diferencias son mínimas, quedando unos por encima de otros alternativamente y sin notables variaciones.

Configuración y seguimiento de discos

Para llevar a cabo esta tarea, en la página del fabricante, se puede descargar una utilidad en java, que por tanto, nos puede servir tanto para windows como para linux, en la cual podemos comprobar bastantes detalles de los discos y el Set, así como un historial de eventos sucedidos desde la creación del mismo.

Imagen de ejemplo Pulsar para ver en grande

Desde esta aplicación podemos obtener información detallada de los discos, como el modo en el que están funcionando o si tienen o no activada la caché de escritura.

Imagen de ejemplo Pulsar para ver en grande Imagen de ejemplo Pulsar para ver en grande

También se pueden visualizar detalles de la controladora, desde la versión hasta el driver, pasando por la IRQ en la que se encuentra, etc.

Imagen de ejemplo Pulsar para ver en grande

Finalmente nos plantea un esquema del Set que hemos montado, facilitando en cierta forma la disposición que hemos elegido. Aunque en este caso sea sencilla, habrá casos en los que sea de gran utilidad.

Imagen de ejemplo Pulsar para ver en grande
↑Arriba

Enlaces

Conclusiones

Una vez observados los resultados del test, y sobre todo, después de convivir un tiempo con un RAID de este tipo, se podría decir que realmente merece la pena, intentar mejorar de alguna manera, el cuello de botella de los sistemas actuales: los dispositivos de almacenamiento permanente.

Ésta es una solución relativamente barata, en los ordenadores que se venden hoy en dia, ya que poseen todos una controladora SATA-RAID, y muchas suelen traer el material necesario (cables y adaptarores) para que sea montado con facilidad.

Es decir, que hoy en día, se podría reducir el coste del montaje de un SET como éste, al precio de un disco duro decente, es decir, unos 100€. Algo que podría echar para atrás a la gente, es lo relativo a la fiabilidad de el RAID0, porque tiene el doble de posibilidades de fallar que el disco aislado de toda la vida. Esto es cierto, pero la probabilidad de que falle un disco de los que se venden actualmente (con un trato adecuado) es muy baja.

Como ejemplo, este SET, lleva en funcionamiento unas treinta mil horas con una exigencia de trabajo elevada. Además, uno de los discos ha sido usado previamente durante más de un año. Y, actualmente, no ha habido ningun problema de ningún tipo con estos discos.

Por tanto, se recomienda el uso de este sistema como una forma económica de mejorar en buena parte el rendimiento de un equipo.

↑Arriba

Licencia

Valid XHTML 1.0!

Valid CSS!

Creative Commons License
Este trabajo utiliza una Licencia Creative Commons.