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

Después de un año de pausa en el desarrollo reanudado trabajando en una nueva rama de un sistema de archivos distribuido tolerante a fallos LagartoF 3.13 и publicado Segundo candidato de liberación. Recientemente sucedió cambio de propietarios de la empresa que desarrolla LizardFS, se adoptó una nueva dirección y se reemplazaron los desarrolladores. Durante los últimos dos años, el proyecto ha sido retirado de la comunidad y no le ha prestado suficiente atención, pero el nuevo equipo pretende revivir la relación anterior con la comunidad y establecer una estrecha interacción con ella. El código del proyecto está escrito en lenguajes C y C++ y distribuido por bajo licencia GPLv3.

LagartoFS es un sistema de archivos de clúster distribuido, que le permite distribuir datos entre diferentes servidores, pero proporciona acceso a ellos en forma de una única partición grande, que funciona de manera similar a las particiones de disco tradicionales. Una partición montada con LizardFS admite atributos de archivos POSIX, ACL, bloqueos, sockets, tuberías, archivos de dispositivos y enlaces físicos y simbólicos. El sistema no tiene un único punto de falla; todos los componentes son redundantes. Se admite la paralelización de operaciones de datos (varios clientes pueden acceder a los archivos simultáneamente).

Para garantizar la tolerancia a fallos, los datos se dividen en réplicas, que se distribuyen en diferentes nodos con redundancia (se colocan varias copias en diferentes nodos); si los nodos o las unidades fallan, el sistema continúa funcionando sin pérdida de información y redistribuye automáticamente los datos. teniendo en cuenta los nodos restantes. Para ampliar el almacenamiento, basta con conectarle nuevos nodos sin detener el trabajo por mantenimiento (el propio sistema replica parte de los datos a nuevos servidores y equilibra el almacenamiento teniendo en cuenta los nuevos servidores). Puede hacer lo mismo para reducir el tamaño del clúster: simplemente puede desactivar el equipo obsoleto que se elimina del sistema.

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). Además, para realizar copias de seguridad de los metadatos, se pueden utilizar servidores de registro para almacenar información sobre los cambios en los metadatos y permitirle restaurar el funcionamiento en caso de daños a todos los servidores de metadatos existentes. Cada archivo se divide en bloques (fragmentos), de hasta 64 MB de tamaño. Los bloques se distribuyen entre los servidores de almacenamiento de acuerdo con el modo de replicación seleccionado: estándar (determinación explícita del número de copias que se colocarán en diferentes nodos, incluso en relación con directorios individuales; para datos importantes se puede aumentar el número de copias, y para datos sin importancia reducidos), XOR (RAID5) y EC (RAID6).

El almacenamiento puede ampliarse hasta tamaños de petabytes. Los campos de aplicación incluyen el archivado, el almacenamiento de imágenes de máquinas virtuales, datos multimedia, copias de seguridad, el uso como DRC (Centro de recuperación de desastres) y como almacenamiento en clústeres informáticos 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 escribir archivos completos de tamaño grande y mediano, cuando no hay modificaciones constantes, trabajo intensivo con archivos abiertos y operaciones únicas con un montón de archivos pequeños.

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

Entre las características del FS, también se puede destacar la presencia de soporte para instantáneas, que reflejan el estado de los archivos en un momento determinado, y una implementación integrada de la "papelera de reciclaje" (los archivos no se eliminan inmediatamente y están disponibles para recuperación por algún tiempo). El acceso a una partición puede estar limitado por dirección IP o contraseña (similar a NFS). Existen mecanismos de gestión de cuotas y calidad del servicio que le permiten limitar el tamaño y el ancho de banda para determinadas categorías de usuarios. Es posible crear instalaciones de almacenamiento distribuidas geográficamente, cuyos segmentos estén ubicados en diferentes centros de datos.

El proyecto LizardFS se fundó en 2013 como una bifurcación. alcesfs, y se diferencia principalmente en la presencia de un modo de replicación basado en códigos de corrección de errores Reed-Solomon (análogo a raidzN), soporte ACL ampliado, la presencia de un cliente para la plataforma Windows, optimizaciones adicionales (por ejemplo, al combinar un cliente y un servidor de almacenamiento, los bloques, si es posible, se envían con el nodo actual 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 de directorio y reelaboración interna.

El lanzamiento de LizardFS 3.13.0 está previsto para finales de diciembre. La principal innovación de LizardFS 3.13 es el uso de un algoritmo de consenso para garantizar la tolerancia a fallas (cambiando de servidor maestro en caso de falla) Raft (utiliza nuestra propia implementación de uRaft, que anteriormente se utilizaba en productos comerciales). El uso de uRaft simplifica la configuración y reduce los retrasos en la recuperación de fallas, pero requiere al menos tres nodos de trabajo, uno de los cuales se usa para el quórum.

Otros cambios: un nuevo cliente basado en el subsistema FUSE3, que resuelve problemas con la corrección de errores, el complemento nfs-ganesha se ha reescrito en lenguaje C. La actualización 3.13.0-rc2 corrige varios errores críticos que inutilizaban las versiones de prueba anteriores de la rama 3.13 (las correcciones para la rama 3.12 aún no se han publicado y la actualización de 3.12 a 3.13 aún provoca una pérdida completa de datos).

En 2020, el trabajo se centrará en desarrollar
Agama, un nuevo kernel LizardFS completamente reescrito que, según los desarrolladores, triplicará el rendimiento en comparación con la rama 3.12. Agama hará la transición a una arquitectura basada en eventos, basada en entrada/salida asíncrona asiático, funcionan principalmente en el espacio del usuario (para reducir la dependencia de los mecanismos de almacenamiento en caché del kernel). Además, se ofrecerá un nuevo subsistema de depuración y un analizador de actividad de red con soporte para ajuste automático del rendimiento.

El cliente LizardFS agregará soporte completo para operaciones de escritura de versiones, lo que mejorará la confiabilidad de la recuperación ante desastres, resolverá los problemas que surgen cuando diferentes clientes comparten el acceso a los mismos datos y permitirá mejoras significativas en el rendimiento. El cliente será transferido a su propio subsistema de red que opera en el espacio del usuario. Está previsto que el primer prototipo funcional de LizardFS basado en Agama esté listo en el segundo trimestre de 2020. Al mismo tiempo, prometen implementar herramientas para integrar LizardFS con la plataforma Kubernetes.

Fuente: opennet.ru

Añadir un comentario