Actualización del sistema de archivos en clúster LizardFS 3.13.0-rc2

Después de un año de inactividad en el desarrollo se reanudó el trabajo en una nueva rama del sistema de archivos distribuido y tolerante a fallos LizardF 3.13 y publicado el segundo candidato en lanzamientos. Recientemente ocurrió tras el cambio de propietarios de la empresa que desarrolla LizardFS, se ha nombrado un nuevo liderazgo y han cambiado los desarrolladores. En los últimos dos años, el proyecto se ha distanciado de la comunidad y no le ha prestado la atención adecuada, pero el nuevo equipo tiene la intención de revivir las relaciones anteriores con la comunidad y establecer una estrecha colaboración. El código del proyecto está escrito en C y C++ y se distribuye bajo la licencia GPLv3.

LizardFS es es un sistema de archivos clúster distribuido que permite dispersar datos a través de diferentes servidores, pero presentarlos como un único gran volumen al que se puede acceder de forma similar a las particiones de disco tradicionales. En la partición montada con LizardFS se soportan atributos de archivos POSIX, ACL, bloqueos, sockets, pipes, archivos de dispositivos, enlaces simbólicos y duros. El sistema no tiene un único punto de fallo, todos los componentes están redundados. Se permite la paralelización de operaciones con datos (varios clientes pueden acceder simultáneamente a archivos).

Para garantizar la tolerancia a fallos, los datos se dividen en réplicas, que se distribuyen entre diferentes nodos con redundancia (varias copias se almacenan en nodos diferentes); en caso de fallo de nodos o dispositivos, el sistema continúa funcionando sin pérdida de información y redistribuye automáticamente los datos teniendo en cuenta los nodos restantes. Para expandir el almacenamiento, sólo es necesario conectar nuevos nodos sin detener el funcionamiento para el mantenimiento (el sistema replica automáticamente parte de los datos en los nuevos servidores y equilibra el almacenamiento según los nuevos servidores). De manera similar, se puede proceder a reducir el tamaño del clúster: simplemente se puede desconectar el hardware obsoleto que se está retirando.

Los datos y metadatos se almacenan por separado. Para su funcionamiento, se recomienda instalar dos servidores de metadatos que operen en modo maestro-esclavo, así como al menos dos servidores de almacenamiento de datos (chunkserver). Adicionalmente, para la copia de seguridad de los metadatos, se pueden utilizar servidores de registro que almacenan información sobre los cambios en los metadatos y permiten recuperar el funcionamiento en caso de que todos los servidores de metadatos se dañen. Cada archivo se divide en bloques (chunk) de hasta 64 MB. Los bloques se distribuyen entre los servidores de almacenamiento de acuerdo con el modo de replicación seleccionado: estándar (definición explícita del número de copias para su colocación en diferentes nodos, incluida la vinculación a directorios específicos; para datos importantes, se puede aumentar el número de copias, mientras que para datos no críticos se puede reducir), XOR (RAID5) y EC (RAID6).

El almacenamiento puede escalar hasta tamaños de petabytes. Entre las áreas de aplicación se mencionan la gestión de archivos de archivo, el almacenamiento de imágenes de máquinas virtuales, datos multimedia, copias de seguridad, uso como DRC (Centro de Recuperación ante Desastres) y como almacenamiento en clústeres de computación de alto rendimiento. LizardFS proporciona una velocidad de lectura muy alta para archivos de cualquier tamaño, y al escribir muestra un buen rendimiento al grabar archivos grandes y medianos en su totalidad, cuando no hay modificaciones constantes, un trabajo intensivo con archivos abiertos y operaciones únicas con un gran número de archivos pequeños.

Actualización del sistema de archivos en clúster LizardFS 3.13.0-rc2

Entre las características del sistema de archivos también se puede destacar el soporte para instantáneas, que reflejan el estado de los archivos en un momento determinado, y la implementación incorporada de una "papelera" (los archivos no se eliminan de inmediato y están disponibles para su recuperación durante un tiempo). El acceso a la sección puede limitarse por dirección IP o contraseña (similar a NFS). Existen mecanismos de cuotas y gestión de calidad de servicio que permiten limitar el tamaño y el ancho de banda para algunas categorías de usuarios. Es posible crear almacenamientos distribuidos geográficamente, cuyos segmentos están ubicados en diferentes centros de datos.

El proyecto LizardFS fue fundado en 2013 como un fork MooseFS, y se diferencia, principalmente, por tener un modo de replicación basado en códigos de corrección de errores de Reed-Solomon (similar a raidzN), soporte ampliado de ACL, un cliente para la plataforma Windows, optimizaciones adicionales (por ejemplo, al combinar el cliente y el servidor de almacenamiento, los bloques se entregan desde el nodo actual siempre que sea posible, y los metadatos se almacenan en caché en la memoria), un sistema de configuración más flexible, soporte para lectura anticipada de datos, cuotas en directorios y reestructuraciones internas.

El lanzamiento de LizardFS 3.13.0 está programado para finales de diciembre. La principal novedad de LizardFS 3.13 es la utilización de un algoritmo para garantizar la resistencia a fallos (cambio de servidores master en caso de falla) basado en consenso. Raft (se utiliza una implementación propia de uRaft, que anteriormente se había aplicado en productos comerciales). El uso de uRaft simplifica la configuración y reduce la latencia en la recuperación después de un fallo, pero requiere al menos tres nodos operativos, uno de los cuales se usa para el quorum.

Otros cambios incluyen: un nuevo cliente basado en el subsistema FUSE3, solución a problemas de corrección de errores, el plugin nfs-ganesha reescrito en lenguaje C. En la actualización 3.13.0-rc2 se corrigieron varios errores críticos que hacían que las versiones de prueba anteriores de la rama 3.13 fueran poco adecuadas para su uso (las correcciones para la rama 3.12 aún no se han publicado, y la actualización de 3.12 a 3.13 sigue provocando la pérdida total de datos).

En 2020, el trabajo se centrará en el desarrollo
Agama, un nuevo núcleo de LizardFS completamente reescrito, que, según los desarrolladores, proporcionará un aumento de rendimiento de tres veces en comparación con la rama 3.12. En Agama se llevará a cabo la transición a una arquitectura orientada a eventos (event driven), entrada/salida asíncrona basada en asio, y funcionará principalmente en el espacio de usuario (para reducir la dependencia de los mecanismos de almacenamiento en caché del núcleo). Adicionalmente, se ofrecerá un nuevo subsistema de depuración y un analizador de actividad de red con soporte de autoajuste de rendimiento.

El cliente LizardFS contará con soporte completo para la versión de operaciones de escritura, lo que mejorará la fiabilidad de la recuperación tras fallos, resolverá problemas relacionados con el acceso simultáneo de diferentes clientes a los mismos datos y permitirá un aumento significativo en el rendimiento. El cliente será trasladado a su propio subsistema de red, operando en el espacio de usuario. Se prevé que el primer prototipo funcional de LizardFS basado en Agama esté listo en el segundo trimestre de 2020. También se esperan medidas para integrar LizardFS con la plataforma Kubernetes durante este mismo periodo.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster