1

RAID para dummies

Posted Febrero 24th, 2006. Filed under sistemas de archivos

Seguramente, todos los que estamos mucho tiempo frente a la PC o tenemos amigos demasiado empapados en el tema hemos escuchado de esta tecnología. Es normalmente relacionada con servidores o grandes compañías; pero ¿qué significa realmente?

RAID es sigla de “Redundant Array of Independent Disks“, en español: arreglo redundante de discos independientes. Esto tampoco aporta mucha información :s hay que investigar un poco más. Básicamente es una tecnología de almacenamiento de información desarrollada en la Universidad de Berkeley, California, en la que se intenta minimizar la pérdida de información y/o mejorar la velocidad de acceso. Esto se logra con más de un disco duro y el soporte adecuado, ahora disponible a nivel de hardware con sus respectivos controladores (drivers) en software. Para el usuario promedio puede ser un desperdicio de recursos (tanto económicos como tecnológicos) el utilizar dos discos duros en lugar de uno más extenso – generalmente más económico – o simplemente disponer espacio como si fuese un sólo disco. Por eso es más utilizado a nivel servidor pero no es de ninguna forma una condición o requisito.

Obviamente el tema es complicado; pero se puede tener una idea general sin entrar en mucho tecniscismo.

Tipos de RAID

Originalmente se plantearon 5 soluciones distinas para minimizar el tiempo promedio entre fallas (MTBF: Mean Time Between Failure), un parámetro de fabricación de cada disco duro, para mejorar la velocidad de lectura/escritura y/o minimizar la pérdida de información en casos de fallas de hardware. Obviamente cada una tiene sus ventajas y desventajas.

  • Raid 0: es lo contrario a la partición de un disco, un sólo sistema de archivos distribuído a lo largo de varios discos. No era parte del planteo original.
  • RAID 1: es el primer nivel en el que existe redundancia ya que se tiene una o más copias del sistema de archivos completo en tiempo real. La creación, modificación y eliminación de archivos o carpetas se realiza simultáneamente en todos los discos duros asociados.
  • RAID 2: en lugar de tener una copia exacta de todo el sistema tengo una parte de cada bloque repartido en varios discos. Divide la información a nivel de bits en lugar de bloques de datos y utiliza códigos especiales para corrección de errores. Requiere, sin embargo, que el controlador sincronice los discos perfectamente como si fuesen el mismo disco.
  • RAID 3: muy similar al nivel 2 pero utiliza un disco más dedicado a controlar la consistencia de los datos almacenando un bit de paridad por cada bloque almacenado. Divide la información a nivel de bytes (no de bits); pero no tiene corrección directa de errores.
  • RAID 4: es idéntico al nivel 3 (división de datos con control de paridad dedicado) pero divide la información a nivel de bloque. Esto puede mejorar considerablemente la velocidad de acceso pero la velocidad lectura se ve afectada en caso de falla de un disco.
  • RAID 5: es idéntico al nivel 4 (división de datos a nivel de bloque con control de paridad) pero el bloque de paridad se puede encontrar en cualquier disco – no sólo en uno dedicado – tolerando hasta una falla completa de cualquiera de los discos.
  • RAID 6: es idéntico al nivel 5 (división de datos a nivel de bloque) pero tiene dos bloques de control de paridad que se encuentran en cualquier disco. No era parte del planteo original.
  • RAID anidados: simplemente eso, se pueden anidar niveles de RAID. Por ejemplo, tener 4 discos duros y anidar un RAID 1 con un RAID 0. Esto se puede hacer de dos formas, dos copias de un sistema de archivos compartido entre 2 discos duros (RAID 01) o tener un un sistema de archivos compartido entre dos discos con mitades duplicadas por separado (RAID 10). El límite es la imaginación de cada uno (y el presupuesto disponible).

¿Por qué tantos niveles de RAID?

La respuesta es simple, cada uno tiene un objetivo distinto. El nivel 0 intenta darle utilidad a un conjunto de discos demasiado pequeños, por ejemplo, tomar un disco de 2Gb, dos de 1,5Gb y uno de 3Gb y hacer uno sólo de 8Gb. También es útil para disminuir el tiempo de lectura/escritura en sistemas multiusuario ya que es probable que la información accedida en un momento dado se encuentre en distintos discos duros. También es útil para sistemas que no disponen de LVM (un sistema de virtualización de las particiones).

Por su parte, el nivel 1 es útil para tener una solución simple que aumente la performance de lectura (no así la de escritura). Permite además, el retirar uno de los discos para poder hacer una ramificación del mismo; por ejemplo, una base de datos. Provee también soporte de la falla completa de uno de los discos. El nivel 2 aumenta considerablemente la velocidad de lectura, tantas veces como discos se posean, pero el sincronismo que se necesita para ello lo hace el único nivel de RAID no implementado.

El nivel 3, si bien no aumenta la velocidad de lectura/escritura (ya que no permite peticiones simultáneas) aumenta la capacidad de transmisión final del sistema tantas veces como discos se tengan menos 1. A diferencia del nivel 4, es poco utilizado. Este último sí mejora la velocidad de lectura en casos que los bloques pedidos se encuentren en diferentes discos siempre que el controlador lo permita; la escritura no mejora por la necesidad de escribir el bloque de paridad. Sin embargo, la tolerancia a fallos es bastante delicada; el contenido de uno de los discos se puede recuperar siempre que el disco de paridad sea consistente. En caso de fallar el disco de paridad se lo puede reconstruir pero no garantizar la consistencia de los datos previos a la reconstrucción del mismo.

Por último, el nivel 5 es uno de los más utilizados. Tiene una gran tolerancia a fallos, pudiendo reconstruir la información de un bloque a partir de los demás correspondientes a esa tira de información siempre que el fallo no sea en el disco que contiene ese bit de paridad. De esa forma, la lectura se agiliza evitando los cálculos de forma proporcional a la cantidad de discos que se tengan. Un gran incremento en la lectura es posible – al igual que en el nivel 4 – pero se reserva la lectura del bit de paridad para casos de errores. La escritura es complicada sin embargo, aunque el cálculo de la paridad se realiza por hardware. El nivel 6 es una extensión del nivel 5 en el que la tolerancia a errores aumenta drásticamente (tolerando fallas de hasta dos discos simultáneamente). Sin embargo, es sólo justificable en casos que la cantidad de discos sea grande minimizando la proporción de espacio desperdiciado.

Con todo esto ya pueden opinar tranquilamente en una charla de sus amigos nerds o impresionar a alguna chica ;)

If you have enjoyed this entry. Please feel free to bookmark it using your favorite social bookmarking site

One Response so far

  1. Edworld dice:

    soy recien egresado y me parece que tu información es bastante buena, ya que como en cualquier otra escuela, la documentación que nos proporcionan es bastante austera, aunque tambien quisiera saber si por medio de esta pagina abra algo relacionado con los RAID y las bases de datos.

    Saludos.