LizardFS es un sistema de archivos distribuido de código abierto compatible con POSIX y con licencia GPLv3 . [3] [4] Fue lanzado en 2013 como una bifurcación de MooseFS . [5] LizardFS también ofrece soporte técnico pago (Standard, Enterprise y Enterprise Plus) con posibilidad de configurar y establecer el clúster y la monitorización activa del clúster.
LizardFS es un sistema de archivos distribuido, escalable y tolerante a fallos. El sistema de archivos está diseñado de modo que sea posible agregar más discos y servidores “sobre la marcha”, sin necesidad de reiniciar o apagar el servidor. [6]
Descripción
LizardFS protege los archivos al mantener todos los datos en múltiples réplicas distribuidas en los servidores disponibles. Este almacenamiento se presenta al usuario final como un único espacio de nombres lógico. También se puede utilizar para crear un almacenamiento que ahorre espacio, ya que está diseñado para ejecutarse en hardware estándar . Tiene aplicaciones en múltiples campos y lo utilizan instituciones en finanzas, telecomunicaciones, medicina, educación, posproducción, desarrollo de juegos, servicios de alojamiento en la nube y otros.
Hardware
LizardFS es totalmente independiente del hardware. Se puede utilizar hardware de consumo para lograr una mayor rentabilidad. Los requisitos mínimos son dos nodos dedicados con una cantidad de discos, pero para obtener una instalación con alta disponibilidad se necesitan al menos 3 nodos. Esto también permitirá el uso de codificación de borrado .
Arquitectura
LizardFS conserva los metadatos (por ejemplo, nombres de archivos, marcas de tiempo de modificación, árboles de directorios) y los datos por separado. Los metadatos se guardan en servidores de metadatos, mientras que los datos se guardan en servidores de fragmentos.
Una instalación típica consta de:
Al menos dos servidores de metadatos, que funcionan en modo maestro-esclavo para la recuperación de fallos. Su función es gestionar toda la instalación, por lo que el servidor de metadatos activo suele denominarse servidor maestro. La función de los demás servidores de metadatos es mantenerse sincronizados con el servidor maestro activo, por lo que suelen denominarse servidores maestros en la sombra. Cualquier servidor maestro en la sombra está preparado para asumir el papel de servidor maestro en cualquier momento. Una configuración sugerida de un servidor de metadatos es una máquina con una CPU rápida , al menos 32 GB de RAM y al menos una unidad (preferiblemente SSD) para almacenar varios GB de metadatos.
Un conjunto de servidores de fragmentos que almacenan los datos. Cada archivo se divide en bloques llamados fragmentos (cada uno de hasta 64 MB) que se almacenan en los servidores de fragmentos. Una configuración sugerida de un servidor de fragmentos es una máquina con gran espacio de disco disponible, ya sea en una configuración JBOD o RAID . La CPU y la RAM no son muy importantes. Puede tener tan solo 2 servidores de fragmentos o hasta cientos de ellos.
Clientes que utilizan los datos almacenados en LizardFS. Estas máquinas utilizan el montaje de LizardFS para acceder a los archivos de la instalación y procesarlos como si estuvieran en sus discos duros locales. Los archivos almacenados en LizardFS pueden ser vistos y accedidos por tantos clientes como sea necesario.
Características
Instantáneas : al crear una instantánea, solo se copian los metadatos de un archivo de destino, lo que acelera la operación. Se comparten fragmentos del archivo original y del duplicado hasta que se modifica uno de ellos.
QoS - LizardFS ofrece mecanismos que permiten a los administradores establecer límites de ancho de banda de lectura/escritura para todo el tráfico generado por un punto de montaje determinado, así como para un grupo específico de procesos distribuidos en múltiples máquinas cliente y puntos de montaje.
Replicación de datos : los archivos almacenados en LizardFS se dividen en bloques denominados fragmentos, cada uno de hasta 64 MB de tamaño. Cada fragmento se guarda en servidores de fragmentos y los administradores pueden elegir cuántas copias de cada archivo se mantienen. Por ejemplo, si se elige mantener 3 copias (objetivo de configuración=3), todos los datos sobrevivirán a una falla de dos discos o servidores de fragmentos, porque LizardFS nunca mantendrá 2 copias del mismo fragmento en el mismo nodo.
Replicación geográfica : con la replicación geográfica, puede decidir dónde se almacenan los fragmentos. La función de topología permite sugerir qué copia debe leer un cliente en caso de que haya más de una copia disponible. Por ejemplo, cuando se implementa LizardFS en dos centros de datos, por ejemplo, uno ubicado en Londres y otro en París, es posible asignar la etiqueta "Londres" a cada servidor en la ubicación de Londres y "París" a cada servidor en la ubicación de París.
Replicación de metadatos: los metadatos se almacenan en servidores de metadatos. En cualquier momento, uno de los servidores de metadatos también administra toda la instalación y se denomina servidor maestro. Los demás servidores de metadatos permanecen sincronizados con él y son servidores maestros en la sombra.
Alta disponibilidad : los servidores maestros Shadow proporcionan a LizardFS alta disponibilidad. Si hay al menos un servidor maestro Shadow en ejecución y se pierde el servidor maestro activo, uno de los servidores maestros Shadow toma el control
Cuotas : LizardFS admite el mecanismo de cuotas de disco conocido en otros sistemas de archivos POSIX. Ofrece una opción para establecer límites flexibles y estrictos para una cantidad de archivos y su tamaño total para un usuario específico o un grupo de usuarios. Un usuario cuyo límite estricto se excede no puede escribir datos nuevos en LizardFS.
Papelera: otra característica de LizardFS es una papelera transparente y completamente automática. Después de eliminar cualquier archivo, este se mueve a una papelera, que solo es visible para el administrador. Cualquier archivo que se encuentre en la papelera se puede restaurar o eliminar de forma permanente.
Cliente nativo de Windows™ : el cliente de Windows de LizardFS se puede instalar tanto en estaciones de trabajo como en servidores. Proporciona acceso a los archivos almacenados en LizardFS a través de una unidad virtual. El cliente de Windows es una función con licencia que se puede obtener poniéndose en contacto con los creadores de LizardFS - Distributed FS Sp. z oo
Monitoreo LizardFS ofrece dos interfaces de monitoreo. En primer lugar, hay una herramienta de línea de comandos útil para sistemas como Nagios, Zabbix, Icinga, que se utilizan normalmente para el monitoreo proactivo. Además, hay una interfaz de monitoreo gráfica basada en la web disponible para los administradores, que permite realizar un seguimiento de casi todos los aspectos de un sistema.
Hadoop : es una solución basada en Java que permite que Hadoop utilice el almacenamiento de LizardFS, implementando una interfaz HDFS para LizardFS. Funciona como una especie de capa de abstracción del sistema de archivos. Le permite utilizar trabajos de Hadoop para acceder directamente a los datos en un clúster de LizardFS. El complemento traduce el protocolo de LizardFS y hace que los metadatos sean legibles para Yarn y Map Reduce.
NFS y pNFS : LizardFS utiliza un servidor NFS-Ganesha para crear recursos compartidos NFS, por lo que, técnicamente, el cliente NFS no se conecta con el servidor maestro, sino con un servidor de archivos Ganesha que se comunica directamente con los componentes de LizardFS. Desde el punto de vista del usuario, funciona igual que un servidor NFS normal.
^ "LizardFS: el almacenamiento definido por software, como debería ser (artículo original en alemán)". www.golem.de . 27 de abril de 2016 . Consultado el 6 de mayo de 2016 .
^ "Mr. Blue Coat: (actualizado) Comparación del sistema de archivos distribuido" . Consultado el 6 de mayo de 2016 .
^ "ZFS + glusterfs en dos o tres nodos". permalink.gmane.org . Consultado el 6 de mayo de 2016 .
^ Korenkov, VV; Kutovskiy, NA; Balashov, NA; Baranov, AV; Semenov, RN (1 de enero de 2015). "Infraestructura en la nube JINR". Procedia Ciencias de la Computación . IV Congreso Internacional de Jóvenes Científicos en Ciencias Computacionales. 66 : 574–583. doi : 10.1016/j.procs.2015.11.065 .