Tenía pendiente de lectura algunos artículos y el dia antes de salir de vacaciones los he imprimido e ido leyendo. Hay uno que me ha llamado mucho la atención, por lo interesante del tema y por la gran utilidad que creo que le vamos a dar para solucionar problemas actuales en Trovit.
Se trata de HDFS, un sistema de ficheros pensado para grandes tamaños (Gbs a Tbs), tolerante a fallos y diseñado para ser instalado en máquinas de bajo coste que puedan ejecutar una instancia de la JVM. Las aplicaciones más apropiadas para usar este sistema son aquellas en las que se escribe una vez y se lee N veces. Algunos ejemplos claros son web crawlers y sistemas MapReduce.
HDFS sigue una arquitectura cliente/servidor basada en un único nodo servidor denominado Nameserver que maneja el namespace del sistema de ficheros y regula el acceso a los mismos, y varios clientes, llamados Datanodes que gestionan el almacenamiento de los nodos que contienen.
Internamente, un fichero es dividido en bloques, y estos bloques son almacenados en un conunto de Datanodes. Todos los bloques excepto el último son del mismo tamaño (64Mbs por defecto). Los bloques de un fichero son replicados, con el fin de dotar al sistema de tolerancia a fallos (que en casos con tantas máquinas es más una regla que una excepción). El tamaño de bloque y el número de réplicas es parametrizable para cada fichero. La optimización de la colocación de las réplicas en los diferentes Datanodes es uno de los factores que distingue a este sistema de ficheros.
Soporta la típica estructura jerárquica de directorios, con posibilidades de crear, borrar, mover y renombrar tanto directorios como ficheros. Los ficheros borrados, serán en realidad movidos temporalmente a una ‘papelera’ localizada en /trash.
Es accesible de manera nativa mediante un API para java. También se puede usar un wrapper desarrollado en C. Se puede navegar por su contenido usando un navegador web y a través de una DFSShell. El acceso via WebDAV está aun en desarrollo.
Podéis consultar el diseño de su arquitectura si deseáis conocer cómo dan solución a problemas de caidas del Namenode, de los Datanodes o de la red que los une.
Actualmente no se hayan implementados sistemas de cuotas de disco, ni permisos de acceso. Tampoco se pueden crear ni soft ni hard links. Estos detalles junto con algun esquema de rebalanceo de datos supongo que estarán disponibles muy pronto.