Moose File System ( MooseFS ) es un sistema de archivos distribuido de código abierto compatible con POSIX desarrollado por Core Technology. MooseFS tiene como objetivo ser un sistema de archivos distribuido en red de propósito general, escalable, de alto rendimiento, de alta disponibilidad y tolerante a fallos para centros de datos . Inicialmente era un software propietario, pero se lanzó al público como código abierto el 30 de mayo de 2008.
Actualmente hay dos ediciones de MooseFS disponibles:
MooseFS - publicado bajo licencia GPLv2,
MooseFS Professional Edition (MooseFS Pro): publicación bajo licencia propietaria en forma de paquetes binarios.
Diseño
MooseFS sigue principios de diseño similares a los de Fossil , Google File System , Lustre o Ceph . El sistema de archivos consta de tres componentes:
Servidor Metalogger: extrae periódicamente los metadatos del MDS para almacenarlos como copia de seguridad. A partir de la versión 1.6.5, esta es una función opcional.
Servidores Chunk (CSS): almacenan los datos y, opcionalmente, los replican entre ellos. Puede haber muchos, aunque no se ha publicado el límite de escalabilidad. El clúster más grande del que se tiene conocimiento hasta ahora consta de 160 servidores. [9] El servidor Chunk también es un demonio de espacio de usuario que se basa en el sistema de archivos local subyacente para administrar el almacenamiento real.
Clientes: se comunican con el MDS y el CSS. Los clientes de MooseFS montan el sistema de archivos en el espacio de usuario a través de FUSE .
Características
Para lograr una alta confiabilidad y rendimiento, MooseFS ofrece las siguientes características:
Tolerancia a fallos : MooseFS utiliza replicación , los datos se pueden replicar en servidores de fragmentos, la tasa de replicación ( N ) se establece por archivo/directorio. Si fallan ( N −1) réplicas, los datos seguirán estando disponibles. Por el momento, MooseFS no ofrece ninguna otra técnica para la tolerancia a fallos . La tolerancia a fallos para archivos muy grandes requiere una gran cantidad de espacio: N × tamaño de archivo en lugar de tamaño de archivo + ( N × tamaño de franja) como sería el caso de RAID 4 , RAID 5 o RAID 6. La versión 4.x PRO de MooseFS implementa 8+ n Erasure Coding .
División en segmentos : los archivos grandes se dividen en fragmentos (de hasta 64 megabytes ) que pueden almacenarse en diferentes servidores de fragmentos para lograr un mayor ancho de banda agregado.
Equilibrio de carga : MooseFS intenta utilizar los recursos de almacenamiento de forma equitativa, el algoritmo actual parece tener en cuenta solo el espacio consumido.
Papelera transparente: los archivos eliminados se conservan durante un período de tiempo configurable.
Clasificación de datos/clases de almacenamiento: posibilidad de "etiquetar" servidores, crear definiciones de etiquetas llamadas "Clases de almacenamiento" y decidir en qué tipos de servidores se almacenan los datos [10]
Cerraduras POSIX, compatibilidad con cerraduras Flock
Hardware, software y redes
De manera similar a otros sistemas de archivos basados en clúster, MooseFS utiliza hardware comercial que ejecuta un sistema operativo compatible con POSIX . Se utiliza TCP/IP como interconexión.
MooseFS en cifras[11]
El tamaño de almacenamiento es de hasta: 2 64 bytes = 16 EiB = 16 384 PiB
El tamaño máximo de un archivo es: 2,57 bytes = 128 PiB
El número de archivos es hasta: 2 31 = 2,1 × 10 9
La cantidad de clientes activos es ilimitada y depende de la cantidad de descriptores de archivos en el sistema.
^ "También compilamos con éxito MooseFS a partir de fuentes en OpenIndiana Hipster". https://moosefs.com/download.html Archivado el 23 de marzo de 2016 en Wayback Machine.
^ Mariusz Gądarowski (1 de abril de 2010). "MooseFS: Bezpieczny i rozproszony system plików" (PDF) (en polaco). Revista Linux Polonia .
^ Manual de clases de almacenamiento de MooseFS 3.0 https://moosefs.com/Content/Downloads/moosefs-storage-classes-manual.pdf