Actualización do sistema de ficheiros de clúster LizardFS 3.13.0-rc2

Despois dun ano de calma no desenvolvemento retomado traballando nunha nova rama dun sistema de ficheiros distribuído tolerante a fallos LagartoF 3.13 и publicado candidato a segunda versión. Recentemente pasou cambio de propietarios da empresa que desenvolve LizardFS, adoptouse unha nova xestión e substituíronse os desenvolvedores. Durante os últimos dous anos, o proxecto foi retirado da comunidade e non lle prestou a atención suficiente, pero o novo equipo pretende reavivar a relación anterior coa comunidade e establecer unha estreita interacción con ela. O código do proxecto está escrito en linguaxes C e C++ e distribuído por baixo licenza GPLv3.

LagartoFS é un sistema de ficheiros de clúster distribuído, que permite distribuír datos en diferentes servidores, pero proporciona acceso a eles en forma dunha única partición grande, coa que se traballa de forma similar ás particións de disco tradicionais. Unha partición montada con LizardFS admite atributos de ficheiros POSIX, ACL, bloqueos, sockets, tubos, ficheiros de dispositivos, enlaces simbólicos e duros. O sistema non ten un único punto de fallo; todos os compoñentes son redundantes. Admítese a paralelización de operacións de datos (varios clientes poden acceder simultáneamente aos ficheiros).

Para garantir a tolerancia a fallos, os datos divídense en réplicas, que se distribúen en distintos nodos con redundancia (se colocan varias copias en distintos nodos); se fallan os nodos ou as unidades, o sistema segue funcionando sen perda de información e redistribúe automaticamente os datos. tendo en conta os nodos restantes. Para ampliar o almacenamento abonda con conectarlle novos nodos sen deter o traballo de mantemento (o propio sistema replica parte dos datos a novos servidores e equilibra o almacenamento tendo en conta os novos servidores). Podes facer o mesmo para reducir o tamaño do clúster: simplemente podes desactivar o equipo obsoleto que se está eliminando do sistema.

Os datos e os metadatos almacénanse por separado. Para o funcionamento, recoméndase instalar dous servidores de metadatos que funcionen en modo mestre-escravo, así como polo menos dous servidores de almacenamento de datos (chunkserver). Ademais, para facer copias de seguridade dos metadatos, pódense usar servidores de rexistro para almacenar información sobre os cambios nos metadatos e permitirlle restaurar o funcionamento en caso de danos en todos os servidores de metadatos existentes. Cada ficheiro divídese en bloques (anacos), de ata 64 MB de tamaño. Os bloques distribúense entre os servidores de almacenamento de acordo co modo de replicación seleccionado: estándar (determinación explícita do número de copias que se colocarán en diferentes nodos, incluso en relación con directorios individuais - para datos importantes pódese aumentar o número de copias e para datos non importantes reducidos), XOR (RAID5) e EC (RAID6).

O almacenamento pode escalar ata tamaños de petabyte. As áreas de aplicación inclúen o arquivo, almacenamento de imaxes de máquinas virtuais, datos multimedia, copias de seguridade, uso como DRC (Disaster Recovery Center) e como almacenamento en clusters informáticos de alto rendemento. LizardFS ofrece unha velocidade de lectura moi alta para ficheiros de calquera tamaño e, ao escribir, mostra un bo rendemento ao escribir ficheiros enteiros grandes e medianos, cando non hai modificación constante, traballo intensivo con ficheiros abertos e operacións puntuais cun grupo de arquivos pequenos.

Actualización do sistema de ficheiros de clúster LizardFS 3.13.0-rc2

Entre as características do FS, tamén se pode notar a presenza de soporte para instantáneas, que reflicten o estado dos ficheiros nun momento determinado, e unha implementación integrada da "lixa de reciclaxe" (os ficheiros non se eliminan inmediatamente e están dispoñibles para recuperación durante algún tempo). O acceso a unha partición pode estar limitado por enderezo IP ou contrasinal (semellante a NFS). Existen mecanismos de xestión de cotas e calidade do servizo que permiten limitar o tamaño e o ancho de banda para determinadas categorías de usuarios. É posible crear instalacións de almacenamento distribuídas xeograficamente, cuxos segmentos están situados en diferentes centros de datos.

O proxecto LizardFS fundouse en 2013 como un fork MooseFS, e difire principalmente na presenza dun modo de replicación baseado en códigos de corrección de erros de Reed-Solomon (análogos a raidzN), soporte ACL ampliado, presenza dun cliente para a plataforma Windows, optimizacións adicionais (por exemplo, cando se combina un cliente e un servidor de almacenamento, os bloques, se é posible, envíanse co nodo actual e os metadatos son almacenados na memoria caché), un sistema de configuración máis flexible, soporte para lectura anticipada de datos, cotas de directorio e reelaboración interna.

LizardFS 3.13.0 está programado para ser lanzado a finais de decembro. A principal innovación de LizardFS 3.13 é o uso dun algoritmo de consenso para garantir a tolerancia a fallos (cambio de servidores mestres en caso de falla) Balsa (utiliza a nosa propia implementación de uRaft, que se usaba anteriormente en produtos comerciais). Usar uRaft simplifica a configuración e reduce os atrasos de recuperación dos fallos, pero require polo menos tres nodos de traballo, un dos cales se usa para o quórum.

Outros cambios: un novo cliente baseado no subsistema FUSE3, resolvendo problemas coa corrección de erros, o complemento nfs-ganesha foi reescrito en linguaxe C. A actualización 3.13.0-rc2 corrixe varios erros críticos que facían inutilizables as versións de proba anteriores da rama 3.13 (aínda non se publicaron as correccións para a rama 3.12, e a actualización da 3.12 á 3.13 aínda leva á perda completa de datos).

En 2020, o traballo centrarase no desenvolvemento
Agama, un novo núcleo de LizardFS completamente reescrito, que, segundo os desenvolvedores, proporcionará un aumento de tres veces no rendemento en comparación coa rama 3.12. Agama pasará a unha arquitectura impulsada por eventos, baseada en entrada/saída asíncrona asio, traballa principalmente no espazo do usuario (para reducir a dependencia dos mecanismos de almacenamento en caché do núcleo). Ademais, ofrecerase un novo subsistema de depuración e un analizador de actividade de rede con soporte para o axuste automático do rendemento.

O cliente LizardFS engadirá soporte completo para as operacións de escritura de versións, o que mellorará a fiabilidade da recuperación ante desastres, resolverá os problemas que xurdan cando diferentes clientes comparten o acceso aos mesmos datos e permitirán melloras significativas no rendemento. O cliente transferirase ao seu propio subsistema de rede operando no espazo de usuario. Está previsto que o primeiro prototipo de traballo de LizardFS baseado en Agama estea listo no segundo trimestre de 2020. Ao mesmo tempo, prometen implementar ferramentas para integrar LizardFS coa plataforma Kubernetes.

Fonte: opennet.ru

Engadir un comentario