Skip to main content

Core MooseFS Modules

MooseFS is built with a modular architecture, where each component plays a specific role in ensuring scalability, reliability, and performance. Understanding the role of each module helps to better plan deployments, manage the system, and troubleshoot when necessary.

This section introduces the main modules that form a complete MooseFS cluster.

Master Servers

The Master Server is the central brain of the MooseFS system. It is responsible for managing metadata - the structure of the filesystem, including file names, directories, permissions, ownership, and chunk distribution information. It does not store file content (chunks) itself, but rather coordinates where chunks are stored across Chunkservers.

Key responsibilities include:

  • Handling client metadata requests (open, close, create, delete, etc.)
  • Managing namespace consistency and file attributes
  • Coordinating chunk replication and balancing
  • Providing metadata redundancy and snapshots

In MooseFS PRO, High Availability (HA) is available, allowing multiple Master Servers to operate in an active–passive configuration to ensure continuous service during failures.

Metaloggers

A Metalogger is a lightweight service that periodically downloads and stores a copy of the metadata from the Master Server. It serves as an additional backup mechanism to improve disaster recovery capabilities.

Metaloggers:

  • Store metadata snapshots on local disks.
  • Can be promoted manually to become a Master Server in case of Master failure which is especially important in Community Edition.

While optional in small deployments, Metaloggers are strongly recommended for production systems.

Chunkservers

Chunkservers are the storage nodes of MooseFS. They store the actual content of files, divided into chunks which are the smalest replication unit.

Chunkservers are responsible for:

  • Storing, reading, and writing file chunks.
  • Managing local disk space and reporting it to the Master Server.
  • Replicating chunks between nodes to meet configured replication goals.
  • Handling chunk recovery when hardware or network failures occur.

Chunkservers work together under the guidance of the Master Server to maintain data redundancy and load balancing.

Clients

Clients are machines that access MooseFS storage through standard filesystem operations. They interact with the Master Server for metadata and directly with Chunkservers for data transfer.

There are multiple ways to integrate clients with MooseFS:

Linux / FreeBSD / macOS

On Unix-like systems, clients mount MooseFS volumes using FUSE (mfsmount). Once mounted, the MooseFS filesystem appears like a local directory, supporting full POSIX file operations (open, read, write, chmod, etc.).

Windows

On Windows, MooseFS access is typically achieved by:

  • Mounting the MooseFS volume on a Linux server.
  • Exposing it through Samba (SMB) shares for Windows users.
  • Optionally using NFS client or third-party FUSE solutions (experimental).

Windows Client is available only in PRO version, but integration via standard protocols (SMB/NFS) is straightforward and widely deployed.

Block Device

mfsbdev is a special client available only for Linux systems. It allows a single file stored in MooseFS to be accessed as a block device, enabling applications to interact with the file as if it were a physical disk or partition. This is particularly useful for scenarios requiring raw block-level access, such as running databases, virtual machines, or creating filesystems within a MooseFS file.

API: mfsio Library

For developers, MooseFS provides the mfsio library, which allows applications to interact with MooseFS storage programmatically, bypassing FUSE.

The mfsio library enables:

  • Direct low-level access to files
  • Optimized communication with MooseFS servers
  • Custom client integrations for specific performance or workflow needs

This is ideal for applications requiring tight control over data operations.

Web GUI

MooseFS includes a Web GUI, which allows administrators to:

  • View the status of Masters, Chunkservers, and Clients
  • Monitor system health and replication status
  • Browse the filesystem namespace
  • Review warnings, errors, and statistics
  • Switch Chunkserver into Maintenance Mode

The GUI is lightweight and can run on the Master Server or a separate server if needed.

Command Line Tools

MooseFS provides a rich set of command-line tools for system management and monitoring.

Monitoring

Monitoring is essential to maintain the health and performance of a MooseFS cluster. There are a few monitoring options:

Prometheus and Grafana (Brief Overview)

MooseFS can export key metrics that can be collected by Prometheus, allowing real-time visualization in Grafana dashboards. Metrics cover storage utilization, replication status, server load, and many other operational parameters.

A full description of Prometheus and Grafana integration is provided in dedicated chapters in Monitoring section.

JSON API

The commandline mfscli tool also provides a JSON API for real-time cluster status monitoring. External tools can pull JSON data to integrate MooseFS statistics into custom monitoring systems.