Tecnología

Guía de RAID de discos

Uno de los denominados “cuellos de botella” de nuestros actuales batatores conocido como “PC” es el subsistema de disco duro, máxime si consideramos que la velocidad de acceso a las memorias se mide en nano-segundos y la velocidad de acceso al disco se sigue midiendo en mili-segundos. Entonces ¿como podemos hacer para incrementar el rendimiento de disco sin tener que comprar discos más nuevos o más veloces? Aqui es donde RAID (Arreglo redundante de discos) aparece. El desarrollo de los discos duros, si bien en estos últimos años ha sido apabullante (llegar a cruzar la barrera de 1GB llevó 20 años, en cambio cruzar el 1TB llevó solo 5) sigue siendo el eslabon más debil de nuestro sistema. Los discos duros, reyes del almacenamiento por más de medio siglo siguen dependiendo de la mecánica básica en donde uno o más platos giran a determinada cantidad de revoluciones por minuto para que una cabeza de lectura/escritura pueda leer o escribir datos. Ese componente mecánico es el que limita la cantidad de información por segundo que se puede leer o escribir en el disco. Si bien en los últimos años los fabricantes han introducidos significativas mejoras en la interfaz (por ejemplo, Serial-ATA 1 y 2, NCQ, Memorias caché mas grandes) el disco duro sigue siendo el limitante de rendimiento de nuestra querida PC. Entonces ¿como podemos hacer para que la tasa de transferencia mejore sin tener que comprar un nuevo disco de 10.000 RPM? Comencemos a usar RAID (y no hablo del insecticida) ¿Que es RAID? RAID (o Redundat Array of Inexpensive Disks) fue creado en mente para mejorar el rendimiento de los servidores, consiste en el uso de dos o más discos duros a fin de generar un mejor rendimiento, una tolerancia a posibles fallos a discos o una combinación de ambas (ya veran más de eso más adelante en la nota). Mediante RAID, podremos combinar dos discos para obtener casi el doble de tasa de transferencia a un precio bastante tentador (no es lo mismo comprar dos discos de 80GB que uno de 160GB, es cierto, pero esos dos discos de 80GB superarán en rendimiento por un amplio margen al de 160) asique ¿quieren saber más sobre RAID? Pasen a la siguiente página. Siguiente: Modos de RAID RAID 0

El RAID0 está diseñado para proveer un rendimiento superlativo pero sin tolerancia a fallos. El mismo se implementa utilizando dos o más discos físicos a fin de crear un solo disco lógico usando un simple algoritmo que divide los datos en pequeños bloques de longitud fija llamado stripe que guarda los datos en distintos discos alternándolos de uno en uno. Es por ello que a RAID0 también se lo llama striping. Por ejemplo, un archivo de 256 KB con un tamaño de bloque de 64 KB será dividido en 4 porciones y guardado en cada uno de los discos del array de manera secuencial (observando el gráfico se darán cuenta de inmediato de cómo funciona el modo). Esto incrementa la velocidad considerablemente ya que en vez de tener que escribir en un solo disco, los 256 KB se escriben en diversos discos en simultáneo lo cual incrementa la performance de escritura. En caso de lectura, pasa exactamente lo mismo: en vez de tener que leer los datos desde un solo disco, lo hacemos desde varios. De esta manera, la transferencia en bruto del subsistema RAID0 hacia la PC crece de forma muy importante. RAID0 está apuntando al rendimiento masivo de disco, es muy utilizado en edición de video en tiempo real dado que este rubro exige una tasa de transferencia realmente desmesurada y RAID0 es el único que puede cumplir con ese objetivo. Pero este modo de RAID tiene una severa desventaja: Si uno de nuestros discos se rompe, todo el array colapsa y perderemos TODOS los datos, dado que no hay tolerancia a fallos ni tampoco forma de reconstruir el array. Y también hay dos limitaciones para no degradar la performance: la primera refiere a que en el caso de no usar discos iguales, el tamaño máximo del RAID será el del disco más pequeño multiplicado por la cantidad de discos existentes. Para decirlo con un ejemplo, si tenemos un disco de 250 GB y otro de 300 GB, el tamaño máximo del array será de 500 GB (250GB x 2), ya que la controladora divide los archivos y tiene que almacenarlos en iguales condiciones de espacio en ambos discos. La segunda refiere a la velocidad de transferencia: Dado que RAID tiene que escribir en simultáneo en ambos discos, la velocidad máxima estará determinada por el disco más lento del conjunto (por ejemplo: si armamos un RAID con discos PATA y hay un disco ATA66 y otro ATA133, la máxima la impone sí o sí el ATA66) a fin de no tener problemas de sincronismo. De aquí se desprende el consejo de usar discos IGUALES (misma marca, modelo y capacidad en lo posible), a fin de evitar estas dos limitaciones de rendimiento y capacidad de almacenamiento. JBOD JBOD (Just a Bunch of Disks) o spanning no es ni más ni menos que un arreglo de discos en el cual se arma un solo volumen de 500GB (en caso de tener dos discos de 250GB) pero no utiliza ningún algoritmo, simplemente llena un disco y cuando ese disco está lleno comienza a llenar el otro…no provee ningún beneficio más que el tener 500GB en un solo volumen y no en dos volúmenes separados. Es por ello que es el modo menos utilizado de todos. RAID 1
RAID1 trabaja escribiendo idénticos stripes a dos discos del conjunto. Cuando la controladora manda un bloque de 64 KB para ser escrito en un volumen RAID1, la copia se hace en ambos discos físicos del arreglo. Esta técnica se conoce como “espejado” (mirroring) y es la otra nomenclatura que se utiliza para este modo. La principal fortaleza es la tolerancia a fallos, ya que si uno de los dos discos falla, el sistema no se ve comprometido, dado que tiene una copia fiel en el segundo disco. Y no solo eso: cuando se reemplaza el disco dañado por uno nuevo, la controladora se encarga de rearmar el RAID a fin de que el volumen generado sea tolerante a fallos de vuelta. A niveles de rendimiento, RAID1 tiene poco para ofrecernos, dado que la información que se copia es idéntica en ambos discos, y la controladora sólo toma los datos de uno de ellos indistintamente, por lo que la performance del sistema es la misma que con un solo disco. En una configuración RAID1, lo mejor es tener discos idénticos ya que sino desperdiciaremos espacio. Si tomamos un disco de 250 GB y uno de 300 GB el arreglo sólo será de 250 GB espejados, desperdiciando así los 50 GB adicionales del otro disco. RAID 1 se utiliza en ambientes donde se puede sacrificar sin problemas la performance bruta en disco pero bajo ningún concepto se puede sacrificar la tolerancia a fallos en caso de rotura de uno o más discos. Siguiente: RAID 5 y 6 RAID 5
Esta configuración es la más utilizada en el ámbito corporativo, y solo es hallada en controladoras de alto rendimiento, dado que requiere una lógica adicional cálculo de paridad denominada paridad XOR para trabajar correctamente. RAID5 requiere al menos 3 discos para poder operar correctamente e intenta combinar la performance de un RAID0 con la fiabilidad de un RAID1 (no confundir con la configuración 0+1 que describiremos en breve). Esto se obtiene mediante el uso de dos discos como stripped y el tercer disco (teóricamente, ahora veremos el porque) como paridad. Esta paridad se obtiene mediante el uso de un algoritmo que es un estándar a fin de poder reconstruir datos en caso de que un disco o la controladora falle (si cada controladora usase su propio algoritmo, nos veríamos obligados a comprar la misma marca y modelo en caso que la misma se destruya lo cual sería impráctico). En realidad, en el funcionamiento del RAID5, la paridad cambia constantemente de discos. Por ejemplo, la controladora guarda dos bloques de 64 KB. Entonces, los almacenará en el disco 1 y 2 mientras que el cálculo de paridad lo hará en el número 3. La siguiente vez que la controladora mande dos bloques de 64KB, los mismos serán almacenados en los discos 2 y 3 y la paridad en el 1. De esta manera se incrementa la tolerancia a fallos y se minimiza el impacto de tener que escribir toda la información de paridad en un solo disco como en otros modos de RAID ya discontinuados (ver más abajo). La información de paridad es calculada por la controladora RAID en sí, y para ello tiene hardware dedicado para tal fin encargado de hacer toda la lógica XOR necesaria para el cálculo de paridad. RAID 5 provee un balance entre RAID0 y 1. Con RAID5, se encuentran algunas de las características del stripping junto a algunas del espejado. Gracias a la información de paridad, si se pierde información en algunos de los discos, la misma puede ser reconstruida sin sobresaltos. Y gracias a que parte los datos en stripes, las prestaciones de velocidad de RAID0 están casi en su esplendor en esta configuración. Otra de las ventajas de RAID5 es que provee un menor “desperdicio” de espacio en disco. Si arman un RAID5 con 3 discos de 250GB tendrán un arreglo de 500GB y 250GB de paridad, o lo que sería un 33% de espacio de disco físico no utilizable que contra con el 50% de un RAID1…ahora si usamos 5 discos de 250GB tendremos 1TB de almacenamiento neto y 250GB de paridad, lo que equivale a un desperdicio de 20% y ese porcentaje decrece a medida que agreguemos discos. En RAID5, un disco puede fallar y la información no sufre daño alguno y como RAID 5 soporta hot-swap de discos, se puede cambiar el disco dañado y reconstruir el array sin detener el equipo, algo considerado crítico en ambientes corporativos dado que un equipo detenido es un equipo que no genera dinero (suena duro, pero en las empresas los “downtime” de los equipos se mide en cuanto dinero no le generó a la empresa ese equipo detenido). Pero no todo es un lecho de rosas en RAID5; ya que cada vez que se escribe un dato o se chequea su integridad es necesario acceder a los tres discos en simultáneo, lo cual sobrecarga de trabajo a la controladora RAID y a los discos propiamente dichos, que sufren de mayor cantidad de accesos a datos contenidos en los mismos. Resumiendo: RAID5 provee un excelente balance ente rendimiento y tolerancia a fallos y es una configuración popular en variedades de sistemas, desde servers hasta estaciones de trabajo de alto desempeño. A causa de ello es que prácticamente todos los sistemas de alto rendimiento utilizan esta configuración. RAID 6
El RAID 6 es ni más ni menos que una revisión de RAID5 que emplea dos tipos de paridad diferentes a fin de garantizar una mayor tolerancia a datos. Además de utilizar una paridad XOR como ya comentamos en el RAID5, RAID6 genera otra paridad mediante el algoritmo Reed-Solomon. Esta “doble paridad” permite que un array pueda tener fallas en dos discos en simultáneo sin pérdida de datos. Básicamente se utiliza en arrays con muchos discos en donde las probabilidades de que falle más de un disco son un poco más elevadas. La performance está a la par de la versión anterior, solo se incrementa la seguridad de los datos que es esencial en ambientes de misión crítica como home banking, bases de datos on-line, etc. Siguiente: Combinaciones Combinaciones RAID 10 RAID10 es una combinación de mirroring y striping en donde dos discos con información espejados en RAID1 les transfieren esos datos a dos discos en modo RAID 0 y desde ahí son leídos. Si bien es costoso, es la solución que mejor performance y tolerancia a fallos provee si no podemos armar un RAID5. La definición que mejor le cabe es la de “RAID10 es un striped array cuyos segmentos (o stripes) están a su vez en un RAID1) RAID 0+1 RAID0+1 consiste en simplemente en cuatro discos (mínimo) que están en RAID0 de a pares para proveer una alta tasa de transferencia…a su vez esos dos arrays RAID0 se juntan en un array RAID1 para proveer tolerancia a fallos. Como verán además de ineficiente dado el 50% de desperdicio de espacio en disco es más costoso dado que con 4 discos de 250GB podríamos hacer un RAID5 de 750GB en vez de un RAID0+1 de 500GB. ¿Y que hay de RAID2, 3 y 4? Estos modos de RAID hace muchos años que no son soportados por ninguna controladora, pero a fines prácticos les contamos de que se trata cada uno. RAID2 (o Hamming Code ECC) consiste en varios discos en los que se segmenta la información y luego en varios discos más donde se guarda la configuración de ECC que es un algoritmo de corrección de errores. Esta técnica provee un rendimiento desmesurado pero a un costo altísimo dado que se requieren muchos discos para implementarla. RAID3 consiste en una transferencia paralela con paridad en donde la información segmentada en stripes se genera un cálculo de paridad y se guarda en un disco separado. La información de paridad se genera en cada escritura a disco y se almacena, y la misma información de paridad se revisa ante cada lectura. El problema de este modo es que la controladora no es tan eficiente y la velocidad máxima es la de un disco simple dado que no utiliza técnicas de optimización como el RAID 0 o 5 y por ello que cayó en desuso. RAID4 es muy similar a RAID3 pero en vez de usar stripes usa bloques de información para generar el cálculo de paridad y luego guardar esa paridad en un disco separado. Las desventajas es que usan una circuiteria muy compleja y reconstruir un disco con la información de paridad es muy difícil y afecta negativamente a la performance (en RAID5 la reconstrucción es transparente y no afecta el rendimiento del equipo). Siguiente: Todo muy lindo, ¿pero mi chipset soporta RAID? Es esta página comentaremos los actuales chipsets del mercado y el soporte RAID que poseen. Ahondaremos en los dos más importantes por formar una revolución en el almacenamiento de escritorio: Nvidia Mixed RAID y Intel Matrix RAID. ULI El más nuevo exponente es el M1575 que soporta SATA-II RAID 0,1,0+1, 5 o JBOD. Este southbridge está presente en los mothers que tienen el chipset Radeon Xpress para Intel o AMD. ULI fue comprada por nVidia hace varios meses, con lo cual estos chipsets ya están discontinuados y son dificiles de hallar. VIA El VIA 8237 es un southbridge altamernte integrado que soporta cuatro discos SATA en Raid 0,1,0+1 o JBOD. El VIA lanzará el 8251 que soportará 4 discos SATA-II configurados en modo RAID5 si así lo deseamos. SIS El SIS966 puede utilizarse en plataformas que solo tengan Northbridge SIS dado su link propietario MultiOL. Este southbridge soporta hasta cuatro discos SATA-II armando un RAID 0,1,0+1 o JBOD. nVidia Aquí las cosas se ponen interesantes. nVidia fue la primer compañía en introducir soporte SATA-II en su nForce4,5 y 6xx pero no solo eso sino que también es la primer compañía en introducir un nuevo concepto nunca antes visto ni desarrollado: nVidia Mixed Raid. El mismo permite hacer algo muy simple: Mezclar discos Serial-ATA (o Serial-ATA II) con discos Parallel ATA para armar arrays RAID 0, 1, 0+1 o JBOD. Con el Mixed RAID ya no será necesario vender nuestro disco de 120GB PATA para comprar dos discos SATA para armar un preciado RAID. Solo con comprar un disco de similar capacidad (sugerimos misma marca) en SATA podremos introducirnos en el mundo del RAID sin mayores sobresaltos. Por supuesto que hay una pérdida de performance dado que SATA es más rápido y eficiente en sus transferencias que PATA, pero ya verán en los benchmarks que hicimos con dos Seagate Barracuda de 400GB mezclando un PATA y un SATA que Mixed RAID es una aternativa que provee un rendimiento superior comparado a un disco en solitario. Otra de las ventajas de este chipset es que podremos hacer un RAID con dos discos PATA, ventaja que ninguno de los otros competidores permite hasta el momento dado que todos solo soportan SATA RAID. Los chipset nForce Intel Edition también soportan RAID5. Intel A partir de su ICH6R, Intel introdujo un nuevo concepto en RAID llamado Intel Matrix Storage. El Matrix Storage permite armar en un conjunto de discos dos sistemas RAID diferentes. Por ejemplo, si tenemos 2 discos de 250GB podremos armar la mitad del espacio disponible en RAID0 para tener una performance superior en transferencia de datos y al mismo tiempo podremos armar con el resto del espacio disponible un RAID1 para tener una tolerancia a fallos a prueba de desastres. Entonces en el RAID1 podremos almacenar el Sistema Operativo y todas la documentación que sea importante y en el RAID0 podremos almacenar nuestros juegos, el archivo de intercambio, etc. en donde necesitamos performance y la tolerancia a fallos es prescindible y no afecta a nuestro sistema más allá de tener que reinstalar algunas aplicaciones. Si bien esto suena como una RAID 0+1 la diferencia es que para hacer un modo 0+1 necesitamos 4 discos y en Matrix Storage se puede implementar con sólo dos de ellos. Matrix Storage soporta a partir del ICH7R Serial-ATA II y los modos de RAID 0, 1, 5, 0+1, 10 y JBOD y esto lo convierte en una de las soluciones RAID más completas que se puedan encontrar en el mercado dado que podemos combinar un RAID0 con un RAID5 con un mínimo de 3 discos y obtener rendimiento y tolerancia a fallos sin complicaciones. AMD/ATI El SB600 soporta hasta cuatro discos SATA-II armando un RAID 0,1,0+1 o JBOD. Estamos esperando una revisión de este chipset que quizás incorpore RAID 5, pero es sólo un rumor. Siguiente: Performance y Conclusiones ¿Y el rendimiento? ¿Que puedo esperar de un RAID 0? Usamos un nForce 4 SLI con un AMD Athlon 64-3000+, 1GB de Memoria. El sistema operativo es Windows XP SP2 y los discos duros son Seagate Barracuda 7200.8 de 400GB en sus versiones SATA-II NCQ y PATA. Hicimos 3 pruebas para que tengan una idea…una de ellas es el HD-TACH que mide el rendimiento en bruto de la interfaz, otra es PCMark 04 que hace una mezcla de accesos a disco con aplicaciones que utilizaríamos todos los dias y finalmente pusimos el cronometro a punto y cronometramos cuanto tardaba en encender nuestra PC desde que presionabamos el boton de power hasta que quedábamos parados en el desktop de windows y que el reloj de arena dejase de aparecer…si bien es estimativo, al menos les dará una idea del rendimiento del sistema. Vean los gráficos.
¿Que les parece? ¿Mejora el rendimiento o no? Conclusión Realmente RAID nos provee un rendimiento brutal a un bajo costo. Si consideramos que podemos comprar dos discos de 80GB por menos de 100 dólares y con ello armar un arreglo RAID 0 que duplique nuestra tasa de transferencia, realmente no parece una ecuación muy desacertada. Asique micos, piensen bien la próxima vez que armen un subsistema de disco duro porque por unas rupias adicionales pueden tener un rendimiento superior.

Escribe un comentario