En la empresa donde trabajo hemos estado buscando una mejor manera de tener grandes espacios de almacenamiento de forma confiable y escalable. No es tarea fácil un servidor de almacenamiento de red (NAS), es una pieza de hardware/software costoso y que de todas formas no resuelve el problema del single point of failure. No importa cuantos miles de dólares se gasten en hacer confiable al NAS, siempre habrá un nuevo problema que no se penso incialmente que creará dolores de cabeza tarde o temprano. Google se dio cuenta de ello desde un incio y creo su propio sistema de archivos distribuido y escalable construido a base de equipos estándar, un sistema que se conoce como Google Fily System (GFS) y aunque hay muchos papers discutiendo sus bondades, el código fuente (lo realmente importante) no ha sido revelado, con lo que la salsa secreta que permite a Google escalar a Petabytes de datos sigue siendo su gran ventaja competitiva. Sin embargo hay otras alternativas que permiten tener el mismo nivel de escalabilidad y confiabilidad usando software libre, una de ellas es Gluster.
Gluster es un sistema de archivos distribuido (más información en wikipedia), que permite agregar (poner junto) el espacio de n-nodos y crear un sólo espacio de direccionamiento de archivos lineal y que puede escalar hasta los Petabytes. Pero no sólo eso, una de las características de la última versión de Gluster es que puede tener replicación con auto-sanación, es decir la información no sólo está distribuida a lo largo de diversos nodos (computadoras, PCs), sino que existen varias copias de ella en diversos lugares. De forma tal que si algún nodo se malogra (falla de disco, tarjeta de red, etc.), el conjunto sigue funcionando como si nada hubiera pasado porque existe alguna otra copia disponible que puede ser accesada, pero más alla de eso la posibilidad de auto-sanación significa que cuando se ha reemplazado el nodo dañado, este se sincroniza y todo el conjunto continúa operando como en un inicio y sin que los usuarios se den cuenta de la magia detras de la cortina.
Estas dos características distribución y replicación han sido las que nos han convencido de probarlo y hasta el momento los resultados son prometedores. Las pruebas han sido hechas en una sóla máquina física usando Xen 4.0.1 en un Debian Squeeze (6.0), con un total de 4 nodos en modo distribución/replicación en una matriz 2×2. No es la mejor forma de implementar algo que se supone está diseñado para funcionar de manera distribuida, pero antes de invertir unos cuantos miles de dólares comprando equipo era bueno probar si funcionaban las características que tanto promociona Gluster. Y vaya que si funcionan y bastante bien diría yo.
Pero dejenme contarles más sobre Gluster, toda la administración de los nodos (agregar, remover, reemplazar, expandir, rebalancear) se realiza a través de un utilitario de línea de comando llamado "gluster" que una vez que entendemos los conceptos básicos resulta muy sencillo de utilizar. Les recomiendo que le den una lectura al breve manual disponible en el website del proyecto que está muy bien redactado y enfoca claramente los conceptos básicos y da algunas recetas para escenarios comunes: entorno distribuido, entorno replicado, entorno fragmentado, entorno distribuido-replicado, etc.
Aquí les dejo un video introductorio a Gluster y sus características más importantes (lamentablemente en inglés, no he encontrado uno en español todavía y no he tenido tiempo de preparar uno):
Como ha ido la prueba luego de tanto tiempo?. Estoy probandolo para un entorno distribuido y me gustaria tener una opinion de alguien que lo haya probado ya.
Saludos,
Yo lo uso actualmente en producción, lo estoy usando desde el 2013 primero con 4 nodos y desde el 2014 con 6 nodos. Realmente es confiable y si pasa algun problema serio y por alguna razón gluster deja de trabajar por completo, siempre los archivos son accesibles desde los nodos que queden funcionando. Esa es una gran ventaja que he visto sobre soluciones RAID-5, donde si en el RAID falla más de un disco, la data se vuelve irrcuperable.
Al menos de mi experiencia lo recomendaría. Eso sí considera usar como mínimo un switch gigabit, hay bastante tráfico interno entre los nodos.