RAID o no RAID?

RAID o no RAID?

25 Octubre 2011

En este post intentaremos explicar el por qué no está recomendado considerar el uso de RAID en un proyecto de virtualización y/o cloud computing. Es probable que en algunos casos sea necesario, pero sumando y restando notaremos que es una perdida de plata, espacio en disco y espacio físico…

Disclaimer: Es posible que este post contenga lenguaje violento que haga que algunas personas se sientan ofendidas. Pedimos disculpas si esto sucede, pero en verdad es así.

Para muchas personas la seguridad e integridad de la información es fundamental. Si alguien exige esto, y lo exige en forma de RAID, estaremos frente a una persona con una formación de la vieja escuela y que nunca se adaptó al cambio tecnológico, por lo tanto podemos decirle “si, si.. ya, ya..” y luego ignorarlo, básicamente por que con ese comentario demuestra que no tiene idea de lo que está hablando.

Cuando estuvimos en la universidad a todos nos enseñaron los beneficios del RAID y, si bien nos dijeron que uno de los problemas es que reduciremos notoriamente nuestra capacidad de almacenamiento (en el mejor de los casos, a la mitad), nunca fueron más allá. Nunca nadie explica que tener RAID aumenta el costo de la solución de almacenamiento y por si esto fuera poco, aumenta la complejidad del sistema. Además de eso, el desempeño de las máquinas virtuales en lo que se refiere a I/O siempre es menor cuando se usa RAID.

Entonces, qué hacer?

Los sistemas actuales de cloud computing están dejando de lado el uso del RAID y están comenzando a utilizar la configuración JBOD (Just a Bunch Of Disks) junto con un diseño que en el cual aparece lo que se denomina fault zone, en donde cualquier cosa puede fallar y, en efecto, se espera que falle (principalmente los discos), pero es el diseño el que permite que cualquier componente que falle pueda ser reemplazado por el mismo componente que esté ubicado en una fault zone diferente. Esto es lo que proporciona alta disponibilidad al modelo.

A diferencia de lo que mucha gente cree, la arquitectura de una nube es bastante simple. Si bien tiene componentes que podrían ser complejos, si analizamos el funcionamento conjunto de estos componentes veremos que todos se basan en el principio KISS. Teniendo este principio en mente, todo diseño debe hacerse considerando posibles fallas en el sistema y por lo tanto la forma en que el sistema solucione este problema sin que tengamos que intervenir en ello o que lo nuestra intervención sea mínima.

Siempre debemos asumir que nuestra nube será tan grande, que el hecho de tener que realiar administración manual podría ser caótico. De la misma forma, debemos diseñar nuestra nube de una forma tan simple que la solución a cualquier problema sea simple de programar para que sea la misma nube quien solucione el problema.