bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward

MogileFS explicado: un sistema de archivos distribuido para almacenamiento de objetos redundante

calendar_month 7 de julio de 2026 schedule 10 min de lectura visibility 23 vistas
person
Valebyte Team
MogileFS explicado: un sistema de archivos distribuido para almacenamiento de objetos redundante
summarize

TL;DR

  • MogileFS es un sistema de archivos distribuido de código abierto y a nivel de aplicación, escrito en Perl por Danga Interactive de Brad Fitzpatrick (el equipo de LiveJournal) hacia 2004.
  • Guarda cada archivo como réplicas completas en nodos independientes: sin RAID, sin striping, sin punto único de fallo.
  • Cuatro piezas: trackers (mogilefsd), una base de metadatos MySQL, nodos de almacenamiento (mogstored, un demonio HTTP) y una biblioteca cliente.
  • Las "clases" definen cuántas réplicas guarda cada tipo de archivo (mindevcount), equilibrando coste y durabilidad.
  • Ideal para blobs write-once/read-many (imágenes, subidas, adjuntos) servidos por HTTP; no es un montaje POSIX ni sirve para escrituras aleatorias de baja latencia.
  • Un clúster de producción encaja de forma natural en varios servidores dedicados independientes en dominios de fallo separados.

MogileFS es una de las primeras respuestas de código abierto a un problema que toda gran plataforma web acaba encontrando: ¿cómo almacenar decenas de millones de archivos de usuarios de forma fiable y económica, sin comprar una SAN ni confiar en un solo disco? Esta guía explica qué es MogileFS, cómo funciona su arquitectura, en qué se diferencia de alternativas modernas como Ceph y los almacenes compatibles con S3, y cómo dimensionar un clúster real en servidores dedicados.

En una frase: MogileFS es un sistema de archivos distribuido de código abierto y a nivel de aplicación que guarda cada archivo como varias réplicas completas repartidas en nodos independientes, usando una base MySQL para rastrear dónde vive cada copia, ofreciendo tolerancia a fallos sin RAID ni almacenamiento compartido.

MogileFS de un vistazo

PropiedadDetalle
TipoSistema de archivos distribuido a nivel de aplicación / almacén de objetos
Autor originalBrad Fitzpatrick — Danga Interactive (el equipo de LiveJournal)
Primera versiónMediados de los 2000 (desarrollado ~2004 para LiveJournal)
Escrito enPerl (lado servidor)
LicenciaSoftware libre — los mismos términos GPL / Artistic que Perl
MetadatosMySQL (la única fuente de verdad de las ubicaciones)
Demonio de almacenamientomogstored — sirve datos por HTTP / WebDAV
Demonio coordinadormogilefsd (el tracker)
Modelo de accesoPor clave opaca mediante biblioteca cliente — no es un montaje POSIX
RedundanciaReplicación de archivos completos (copias configurables), sin RAID
Carga idealBlobs write-once / read-many servidos por HTTP

La idea central: sin RAID, sin punto único de fallo

El almacenamiento tradicional compra fiabilidad con hardware — matrices RAID, controladoras duales, filers compartidos caros. MogileFS toma el camino opuesto: asumir que el hardware es barato y fallará, y obtener la fiabilidad del software. Cada archivo se guarda como una o varias réplicas completas en nodos independientes. No hay striping ni paridad que reconstruir. Si un disco muere, las copias en otros nodos siguen completas y un proceso en segundo plano simplemente vuelve a replicar hasta restaurar el número de copias deseado.

Como opera a nivel de aplicación y no como sistema de archivos del kernel, MogileFS no se monta como NFS ni ofrece semántica POSIX. Las aplicaciones se comunican con él a través de una biblioteca cliente y direccionan los archivos por una clave opaca, no por una ruta. Ese compromiso es lo que le permite escalar horizontalmente en discos corrientes de servidores dedicados económicos.

Diagrama de la arquitectura de MogileFS Una aplicación se comunica con demonios tracker sin estado (mogilefsd), que leen y escriben la ubicación de los archivos en una base de metadatos MySQL. Luego los clientes transfieren los datos directamente por HTTP a los nodos de almacenamiento que ejecutan mogstored, donde cada archivo se guarda como réplicas completas en discos independientes. MogileFS: how a file is stored and served Application MogileFS client library Tracker · mogilefsd stateless coordinator + N trackers (HA) MySQL metadata: where each file lives Storage node · mogstored local disks Storage node · mogstored local disks Storage node · mogstored local disks 1. where is key? 2. lookup 3. read / write data directly over HTTP whole-file replicas across independent nodes — no RAID, no single point of failure
Flujo de una petición en MogileFS: el cliente pregunta al tracker dónde vive una clave, el tracker la busca en MySQL y el cliente lee o escribe los datos directamente en los nodos de almacenamiento por HTTP. Los datos masivos nunca pasan por el tracker.

Los cuatro componentes

ComponenteDemonio / tecnologíaRol¿Guarda estado?
TrackermogilefsdCoordinador sin estado: responde "¿dónde está la clave X?", asigna ubicaciones de escritura, programa la replicaciónNo
BD de metadatosMySQLÚnica fuente de verdad: archivo → dispositivos, dominio, clase, estado de replicaciónSí — respáldala
Nodo de almacenamientomogstoredDemonio HTTP/WebDAV ligero con los datos en sistemas de archivos locales normalesSolo datos
Clientebiblioteca (Perl, PHP, Python, Ruby, Java, Go)Guarda/lee/borra por clave; lee y escribe directamente en los nodosNo

Como todo el estado compartido vive en MySQL, los trackers son sin estado e intercambiables: se ejecutan varios para alta disponibilidad y cualquiera atiende cualquier petición. La CLI administrativa, mogadm, registra hosts, dispositivos, dominios y clases. La base de metadatos es el único componente que debes proteger: ponla en almacenamiento fiable y replícala (normalmente MySQL primario/réplica).

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Dominios, clases y replicación

MogileFS organiza los archivos en dominios (espacios de nombres, p. ej. uno por aplicación) y clases dentro de un dominio. Una clase lleva una política de replicación — sobre todo su mindevcount, el número mínimo de dispositivos distintos en los que debe copiarse un archivo de esa clase. Un replicador en segundo plano compara constantemente la realidad con los metadatos y crea o mueve copias hasta que cada archivo cumple su política de clase. Ese mismo mecanismo autorrepara el clúster tras el fallo de un nodo o disco.

Clase de ejemplomindevcountUso típicoSobrecoste de almacenamiento
thumbnails2Derivados regenerables baratos
user_uploads3Originales irreemplazables
cache1Datos transitorios y regenerables

El objetivo de durabilidad tiene un coste directo: una clase con mindevcount=3 triplica la capacidad bruta que debes aprovisionar. Ese número es el mayor determinante del disco que necesitará tu clúster — planifícalo antes de comprar nodos.

Cómo se escribe un archivo

  1. El cliente pide al tracker crear un archivo nuevo en un dominio/clase dado.
  2. El tracker elige dispositivos adecuados y devuelve URLs temporales de escritura.
  3. El cliente hace PUT de los datos directamente a uno o varios nodos por HTTP.
  4. El cliente indica al tracker que la escritura terminó; el tracker registra la ubicación y la clave del archivo en MySQL.
  5. De forma asíncrona, el replicador asegura que el archivo alcance el número completo de réplicas de su clase en dispositivos separados.

«MogileFS es nuestro sistema de archivos distribuido de código abierto. Sus propiedades incluyen: a nivel de aplicación — sin módulos de kernel especiales; sin punto único de fallo; replicación automática de archivos; mejor que RAID; espacio de nombres plano.»

— Danga Interactive, descripción original del proyecto MogileFS

MogileFS frente a Ceph, GlusterFS y S3/MinIO

MogileFS es anterior a la mayor parte del stack actual de almacenamiento distribuido y ocupa un nicho deliberadamente estrecho. Así se compara con las herramientas con las que más se le enfrenta:

SistemaTipoAcceso¿Montaje POSIX?RedundanciaMejor para
MogileFSFS a nivel de appClave vía cliente / HTTPNoRéplicas completasBlobs write-once/read-many a escala
Ceph (RADOS/RGW)Objeto + bloque + FSS3/Swift, RBD, CephFSSí (CephFS)Replicación o erasure codingPropósito general, escala exabyte
GlusterFSFS distribuido POSIXMontaje (FUSE/NFS)Volúmenes replicados / dispersosSistema de archivos POSIX compartido
MinIO / S3Almacén de objetosAPI S3NoErasure codingApps modernas compatibles con S3

Si necesitas un sistema de archivos POSIX montable, lecturas/escrituras aleatorias de baja latencia o una API S3 estándar, otra opción es mejor. Si quieres específicamente almacenamiento de blobs por réplicas completas, simple, que tolere la pérdida de nodos sin RAID y escale añadiendo discos baratos, MogileFS sigue haciéndolo con limpieza.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Dónde encaja MogileFS — y dónde no

Encaja muy bien: subidas de usuarios, galerías de imágenes, adjuntos de correo, activos estáticos — todo lo que se direcciona por un ID y se sirve por HTTP, escrito una vez y leído muchas. Sus fortalezas son el escalado horizontal barato, la tolerancia al fallo de nodos sin RAID y la simplicidad operativa para esa carga.

Encaja mal: un sistema de archivos POSIX montable, lecturas/escrituras aleatorias de baja latencia, modificación frecuente in situ o semántica transaccional fuerte. Usa CephFS, GlusterFS o un almacén compatible con S3.

Ejecutar MogileFS en servidores dedicados

Un despliegue de producción mínimo quiere al menos dos nodos de almacenamiento en máquinas físicas separadas (para que una clase con dos réplicas sobreviva a la pérdida de un host completo), más dos trackers y un par MySQL replicado para los metadatos. Cada nodo de almacenamiento es solo discos baratos y un mogstored en marcha; escalas añadiendo más. Es exactamente la carga que encaja con varios servidores dedicados independientes en dominios de fallo separados, no con una sola máquina grande — quieres aislamiento de disco y red, no un chasis compartido.

Para la capa de almacenamiento importa más la capacidad por dólar que la velocidad bruta, así que los servidores dedicados HDD de gran capacidad o los servidores de almacenamiento dedicados son el hogar natural de las réplicas. Coloca el nodo MySQL de metadatos y los trackers en servidores dedicados NVMe más rápidos, y si las réplicas abarcan varios sitios, aprovisiona servidores dedicados de 10 Gbps para que la re-replicación tras un fallo no sature los enlaces. Estos son servidores dedicados actuales sobre los que podrías montar nodos de almacenamiento:

CPURAMAlmacenamientoAncho de bandaPrecioAcción
Intel Xeon-E 2136 3.3GHz 6 cores32 GB DDR4 ECC2x 512 GB (NVME SoftRAID)Unmetered @ 1 Gbps$59.00/moConfigurar
Intel Xeon-D 2141I 2.2GHz 8 cores128 GB DDR4 ECC2x 512 GB (NVME SoftRAID)Unmetered @ 1 Gbps$74.00/moConfigurar
AMD Ryzen 5 3600X 3.8GHz 6 cores64 GB DDR4 ECC2x 512 GB (NVME SoftRAID)Unmetered @ 500 Mbps$97.00/moConfigurar
Intel Xeon-E 2386G 3.5GHz 6 cores32 GB DDR4 ECC2x 512 GB (NVME SoftRAID)Unmetered @ 1 Gbps$111.00/moConfigurar
AMD Ryzen 7 3800X 3.9GHz 8 cores64 GB DDR4 ECC2x 960 GB (NVME SoftRAID)Unmetered @ 500 Mbps$127.00/moConfigurar
AMD Ryzen 5 5600X 3.7GHz 6 cores64 GB DDR4 ECC2x 512 GB (NVME SoftRAID)Unmetered @ 1 Gbps$127.00/moConfigurar
Intel Xeon-E 2388G 3.2GHz 8 cores32 GB DDR4 ECC2x 6 TB + 2x 512 GB (SATA Hybrid SoftRAID)Unmetered @ 3 Gbps$127.00/moConfigurar
AMD Epyc 7371 3.1GHz 16 cores128 GB DDR4 ECC2x 6 TB + 2x 960 GB (SATA Hybrid SoftRAID)Unmetered @ 1 Gbps$161.00/moConfigurar
AMD Ryzen 7 5800X 3.8GHz 8 cores64 GB DDR4 ECC2x 960 GB (NVME SoftRAID)Unmetered @ 1 Gbps$161.00/moConfigurar
AMD Ryzen 9 5900X 3.7GHz 12 cores32 GB DDR4 ECC2x 4 TB (SATA SoftRAID)Unmetered @ 1 Gbps$165.00/moConfigurar
Intel Xeon Silver 4214R 2.4GHz 12 cores96 GB DDR4 ECC2x 6 TB + 2x 960 GB (SATA Hybrid SoftRAID)Unmetered @ 2 Gbps$180.00/moConfigurar
AMD Ryzen 7700X64GB ECC DDR52x 1 TB (NVMe)100TB @ 3Gbps$207.00/moConfigurar
AMD Epyc 7313 3.0GHz 16 cores1 TB DDR4 ECC2x 6 TB + 2x 960 GB (SATA Hybrid SoftRAID)Unmetered @ 1 Gbps$286.00/moConfigurar
AMD Ryzen 7 Pro 3700 3.6GHz 8 cores32 GB DDR4 ECC6x 14 TB (SAS SoftRAID)Unmetered @ 1 Gbps$295.00/moConfigurar
AMD EPYC 4464P 3.7GHz 16 cores128 GB DDR4 ECC4x 7.68 TB (NVME SoftRAID)Unmetered @ 5 Gbps$304.00/moConfigurar

Dimensionamiento sugerido de nodos

RolCPURAMDiscoRed
Nodo de almacenamiento (mogstored)Modesto (2–4 núcleos)8–16 GBHDD/SSD grande, JBOD — sin RAID1–10 Gbps
Tracker (mogilefsd)2–4 núcleos4–8 GBSSD/NVMe pequeño1 Gbps+
MySQL de metadatos4+ núcleos16 GB+NVMe (fiable, replicado)1 Gbps+

Preguntas frecuentes

¿Sigue MogileFS mantenido y en uso en 2025?

MogileFS es maduro y estable más que en evolución activa. Sigue siendo una opción sólida y probada para su nicho — almacenamiento de blobs de gran volumen sobre hardware común — aunque los almacenes de objetos y los sistemas de archivos en clúster más nuevos han asumido la mayoría de los casos de uso generales.

¿Usa MogileFS RAID?

No. MogileFS evita deliberadamente el RAID y en su lugar mantiene varias copias completas de cada archivo en dispositivos y hosts separados. El proyecto lo describía históricamente como «mejor que RAID», porque un disco o nodo perdido se repara re-replicando desde las copias supervivientes en lugar de reconstruir una matriz.

¿Puedo montar MogileFS como un sistema de archivos normal?

No en el sentido habitual. Es un almacén a nivel de aplicación al que se accede por clave mediante una biblioteca cliente o por HTTP; no ofrece semántica POSIX ni montaje del kernel. Si necesitas un sistema de archivos montable, usa GlusterFS o CephFS.

¿Qué base de datos requiere MogileFS?

Una base MySQL guarda todos los metadatos — qué archivos existen y en qué dispositivos viven sus réplicas. Los trackers no tienen estado; la instancia MySQL es el componente que debes respaldar y hacer altamente disponible.

¿Cuántos servidores necesito para empezar?

Para redundancia real, al menos dos nodos de almacenamiento en hosts físicos separados, más al menos un tracker y una instancia MySQL (dos de cada para alta disponibilidad). Dos servidores dedicados independientes bastan para sobrevivir al fallo de un host completo con una clase de dos réplicas.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Nota histórica y referencias

MogileFS surgió del stack de ingeniería de LiveJournal de mediados de los 2000 y, junto con memcached, Perlbal y Gearman, se convirtió en un bloque de construcción conocido para escalar grandes propiedades web sobre hardware común. Hoy sigue siendo una opción fiable para su nicho. Fuentes primarias recomendadas: la página y el código del proyecto MogileFS (originalmente en danga.com/mogilefs y ahora en GitHub), el cliente Perl en MetaCPAN y los artículos de arquitectura de Danga Interactive de la era LiveJournal.

Compartir esta publicación:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.