Skip to content

Releases: moosefs/moosefs

MooseFS 4.58.3

16 Dec 14:51

Choose a tag to compare

MooseFS 4.58.3 is a maintenance release focused on improving stability, correctness, and security.
It contains no new features but includes a few important fixes identified by the community and during internal QA.

Master Server & tools

Fixed: reversible storage class option validation

A community contributor, @POPSuL, reported that the -o parameter incorrectly accepted a standalone R without any accompanying A, C, or M mode.
This has now been corrected to enforce proper argument validation.

For more information, please refer to Discussion #670.

Daemons

Fixed: clearing auxiliary groups before setuid

A small security issue flagged by rpmlint has been resolved.
When dropping privileges from root to a less-privileged user, daemons now explicitly clear all auxiliary groups before calling setuid, ensuring safer privilege transitions.

libmfsio

Fixed: descriptor resize function

A rare bug in the descriptor resizing logic has been corrected.

MooseFS 4.58.2

03 Nov 15:40

Choose a tag to compare

This is a maintenance release focused on improving master-to-master timeout handling, fixing client-side read-ahead behavior, and correcting minor typos.

Master Server

  • Changed timeouts used in master-to-master connections (Pro only)
    Handling of timeouts between Master and Follower processes has been improved.

    Previously, when the Master used a large amount of RAM (around 500 GiB), the fork operation (used for metadata writes or replication to Followers) could take longer than 10 seconds, which caused failures because the metadata fetch module had a hardcoded 10 second limit.

    Changes include:

    • Unified variable naming: MATOMA_TIMEOUT now replaces MASTER_TIMEOUT in Master configuration, consistent with other timeout variables.
    • The metadata download module now respects configured timeout values.
    • The leader measures fork duration and, if it takes too long, instructs Followers to use a higher timeout automatically.
      This prevents timeout errors during metadata synchronization, even when MATOMA_TIMEOUT is set too low.

Important Upgrade Recommendation

We strongly recommend upgrading for all users running Master instances that use large amounts of memory (around 500 GiB or more). Older versions carry a risk that, if a follower becomes desynchronized for any reason, it may fail to resynchronize due to timeout loops. In such cases, recovery would require an emergency upgrade instead of a planned one.

To ensure a smooth upgrade:

  1. Follow the standard upgrade procedure, starting with Followers.
  2. Before upgrading Followers, set the config variable MATOMA_TIMEOUT to a value higher than 10 seconds (e.g., 30 seconds is very safe).
  3. After upgrading the leader, you may reduce the timeout again (e.g., back to 10 seconds) and monitor logs.
    • If log messages indicate that a fork takes longer than the timeout, increase it as suggested in the logs.

Note: The old leader version does not automatically enforce longer timeouts, so manually increasing MATOMA_TIMEOUT during the upgrade is essential.

Client

  • Fixed test for overlapping requests in the read-ahead algorithm
    (Pull request by @chuandew)

    A typo in a variable might have caused overlapping chunk reads in the read-ahead cache. While it worked correctly, the behavior was slightly inefficient. The fix ensures that overlapping reads are avoided and the cache now behaves as originally intended.

All

  • Fixed typos and spelling errors
    Various minor textual corrections contributed by community members, especially @onlyjob and @tianon).

MooseFS 4.58.1

01 Oct 17:10

Choose a tag to compare

This is a maintenance release that addresses several stability issues and improves tools' behavior. Users of earlier 4.57.x and 4.58.x versions are encouraged to upgrade.

Master

  • Fixed segfault in flocklocks.c
    The lock handling fix introduced in version 4.57.7 was incomplete and did not fully resolve the problem. This release provides the complete fix.

  • Prevent setting archive flag for trashed files
    Archive flags are no longer applied to files already in the trash. This ensures consistent behavior and avoids unnecessary chunk replication for files that are about to be deleted.

CLI

  • Improved handling of disconnected chunkservers
    Previously, if all chunkservers were disconnected, the CLI incorrectly reported an error instead of showing their state. This behavior has been corrected.

  • Internal import fixes in CLI mode
    Adjustments were made to the way mfscli is built. This is purely technical and has no impact on end-user experience.

Tools

  • Better error messages in mfssetfacl
    Parsing errors in ACL expressions now clearly indicate the position where parsing failed, making debugging easier.

  • Fixed parsing of numerical group identifiers in mfssetfacl
    Group IDs can now be specified by numeric values as well as by names, as originally intended.

Upgrade Notes

  • No configuration changes are required.
  • All users are recommended to update to benefit from improved stability and correctness.

MooseFS 4.58.0

16 Sep 11:26

Choose a tag to compare

We are pleased to announce the release of MooseFS 4.58.0.
This version brings important fixes, performance optimizations, and new features to improve scalability, reliability, and client usability.

Master

  • Fixed partial readdir support
    Previous support for partial directory reads was broken and ineffective. It has now been fully fixed and improved, enabling more efficient handling of very large directories.

Client

  • Added reading directories in parts
    The mount client can now read directories piece by piece. This prevents overburdening the master when browsing extremely large directories (e.g., tens of millions of files in a single directory).
  • Added listxattr cache
    Introduced caching for extended attribute listings, improving performance in scenarios such as Samba mounts.
  • Redesigned readdir caches
    Cache mechanisms were reworked to support partial directory reads and improve overall efficiency.
  • Added mfsreaddirplusminto option
    Provides minimal caching for readdirplus, ensuring systems prefer readdirplus over readdir where possible. This improves performance for operations like ls -al on directories with massive file counts.

CRC

  • Fixed CRC calculation on CPUs with unaligned memory access restrictions (e.g., ARM hard-float armhf)
    Resolved a long-standing issue that prevented compilation on certain ARM architectures.

Chunkserver

  • Reduced disk operations for idle servers
    Fixed unnecessary checksum reads before scrub decisions. This allows disks with very few chunks to properly spin down when idle.

Debian Packaging

  • Updated postinstall scripts
    Corrected permission issues when installing MooseFS on systems that already had the mfs user from previous installations.

NBD

  • Fixed restoring NBD devices after sleep/hibernate
    Addressed an issue with Network Block Device reported by the community (#672).

CLI

  • Fixed displaying charts data
    Resolved a bug that prevented mfscli from showing master and chunkserver chart data in interactive mode (data was still present in JSON output).

systemd

  • Added start/stop timeouts for chunkserver
    Chunkserver service definitions now include sensible stop timeouts. This ensures clean shutdowns, especially on systems with many disks where .chunkdb needs more time to be written.

We strongly encourage to upgrade to MooseFS 4.58.0 to benefit from these fixes and enhancements. As always, we thank our community for their valuable feedback, bug reports, and contributions that help us improve MooseFS with every release.

MooseFS 4.57.7

01 Jul 08:30

Choose a tag to compare

We are pleased to announce the release of MooseFS 4.57.7, a version focused on performance improvements, architectural refactoring, and a significantly enhanced user experience in the Web GUI.

The highlight of this release is the introduction of a dedicated GUI server written in C, replacing the legacy Python implementation. This change brings faster interface loading, a new configuration model, and improved observability through built-in Prometheus metrics support. While many changes are internal and technical, they represent important progress toward a more robust and maintainable MooseFS platform. We recommend all users upgrade to benefit from these improvements.

GUI Updates

  • New GUI Package (mfsgui)

    • The previously separate mfscgi and mfscgiserv packages have been merged into a single new package: mfsgui.
    • This package replaces both legacy packages and should be used going forward.
  • Dedicated GUI Server (C-based)

    • The GUI server has been rewritten from a Python script to a native C binary.

    • User-visible changes:

      • New configuration file: /etc/mfs/mfsgui.cfg (replaces embedded config in index.html).
      • Faster chart loading.
  • GUI Refactor

    • Interface improvements: tab merging, table layout enhancements, and general usability polishing.
  • Prometheus Metrics Support

    • The GUI now exposes metrics in Prometheus-compatible format.

CLI Refactor

  • Internally restructured into multiple Python files for maintainability.
  • No change in user-facing CLI behavior.

Daemon and Master Server Enhancements

  • Fixed Lock Handling in Master Server

    • Resolved a bug related to improper freeing of waiting locks in certain rare operation sequences.
  • Poll Safety in Daemons

    • Added a conditional guard to skip socket handling when poll returns zero – a rare edge case but handled defensively.
  • Corrected OOM Killer Disabling

    • Fixed an issue in how daemons attempted to disable the Linux OOM killer; prior implementation misinterpreted error codes.
    • Fix inspired by a user question on GitHub Discussions #669.

Client

  • Replaced potentially unsafe sprintf() call to eliminate compiler warnings (especially on macOS)
    • This change is technical and does not affect user-facing behavior.

As always, we encourage users to upgrade for improved stability, maintainability, and performance.

Thank you,
Piotr • MooseFS Team

MooseFS 4.57.6

04 Apr 00:28

Choose a tag to compare

We are pleased to announce the release of MooseFS 4.57.6, which includes important bug fixes and enhancements. This update improves stability and functionality in key areas of the file system. Below are the details of the changes in this version:

Bug Fixes and Improvements

Storage Classes

  • Fixed predefined storage classes

    • The * (wildcard) was missing from the default storage classes in Erasure Coding (EC) due to a definition error.
    • While this issue could potentially cause incorrect storage behavior, practical attempts to reproduce failures were unsuccessful.
  • Updated the description of default storage classes for better clarity.

System Stability and Recovery

  • Fixed csipmap initialization issue
    The mfsipmap.cfg file was correctly loaded only on reload but not on (re)start (GitHub Issue #649).

  • Fixed chunk recovery conditions during read and lookup
    Some Erasure Coded (EC) chunks were not readable if one Chunkserver was offline (Reported by @tokru66 – many thanks!).

Lock Handling

  • Fixed lock listing
    Resolved an issue where packets containing both posix_locks and flocks were invalid.

Documentation

  • Added a manpage for the mfsmount.cfg configuration file, providing users with detailed documentation on its usage.

We strongly recommend upgrading to this release as soon as possible to take advantage of these critical fixes and improvements.

As always, we appreciate your feedback and contributions.

Thank you,
Piotr • MooseFS Team

MooseFS 4.57.5

12 Mar 09:22

Choose a tag to compare

We are pleased to announce the release of MooseFS 4.57.5, which includes significant new features, enhancements, fixes, technical updates, and a key deprecation. Below is a detailed summary of the changes included in this version:


New Features

  • Storage Class Enhancements

    • Added Priority, Description, and Export Group:
      Storage classes now support priorities, enabling chunks to select the highest-priority storage class they belong to. This improves storage behavior when chunks exist in multiple classes, such as through snapshots.

    • Storage Class Group Allowance in mfsexports.cfg:
      Introduced a new mechanism to replace mingoal and maxgoal in mfsexports.cfg. Each storage class can now be assigned to a group (up to 16 groups, numbered 0–15). By default, new and imported classes are assigned to group 0, while predefined legacy classes 1–9 are assigned to groups 1–9. Exports can now specify which groups are allowed.

    • Updated Predefined Storage Classes for New Installations:
      Predefined storage classes have been revamped for cleaner and more logical defaults in fresh MooseFS installations.

  • Paths for Trash and Sustained Items
    Metasearch now displays file paths for trash and sustained items, enabling users to locate and delete these files more easily.

  • Always Resolve Master Hostname on Info Signal (Pro only)
    Ensures the current master hostname is accurately recorded in the 'info' file (.mfsmaster_info.txt) upon receiving an info signal.

  • Broadcasting Leader IP to Followers in Simple Mode (Pro only)
    The supervisor module now consistently broadcasts the leader's IP to all followers, even when there's no leader change.

  • Added Changelog Module Info
    Added a new section in the 'info' file (.mfsmaster_info.txt) for detailed information about the changelog module.

  • Cluster Traffic Monitoring
    Added cluster traffic charts in GUI showing total bytes per second read/written by all mounts, with separate charts for "data only" and "data + overhead."

  • Master Leadership Control (Pro only)
    Added the KEEP_LEADERSHIP option, enabling a specified master to reclaim leadership automatically after disconnects or restarts.

  • Chunktool Enhancements
    Added recursive mode for directories and an option to discard damaged chunks in mfschunktool (GitHub Issue #633).


Fixes and Enhancements

Master Server

  • Fixed Space Management for EC Parts Marked for Removal
    Resolved a rare issue where parts of chunks stored in EC format on disks marked as MFR (Marked For Removal) could be deleted before being copied to another server. The likelihood of this issue increased in configurations with multiple chunk servers having MFR disks and fewer chunk servers without MFR.

  • Fixed Changelog Rotation Issues
    Addressed a problem where changelogs in the Community Edition were not rotating properly (GitHub Issue #621).

  • Fixed Chunkserver Registration in Deputy Mode (Pro only)
    Resolved an issue where the deputy behaved like the leader instead of the elect.

  • Fixed Constants in Metadata Storage Module
    Improved code cleanliness and reliability in the metadata storage module.

  • Improved Extended Attributes Handling
    Added protection against setting excessively long xattr values.

  • Quota Adjustment Fix
    Fixed an issue where changing only the grace period in quota was not applied correctly.

  • Additional Master Fixes

    • Included localsplit operations in the total split counter to improve tracking and reporting.
    • Corrected chunk copy and EC matrix counters to ensure accurate reporting when both chunk copies and erasure-coded parts coexist.
    • Resolved an issue where the changelog rotate packet was not properly sent to the metalogger in the Community Edition (GitHub Issue #621).

GUI

  • Maintenance Time Display Fix
    Reintroduced the display of remaining maintenance mode time for chunk servers in the GUI.

  • Graph Summary Bar Fix
    Corrected a display error on the Status tab, which showed negative values when exceeding the license quota (issue identified during internal testing).

  • Improved Chart Legends
    Updated legends in charts for improved readability.

MFSIO

  • Mutex Initialization Issue Fixed
    Fixed a missing mutex initialization that caused crashes in the Windows Client, particularly on Windows 7 systems.

Configuration & Daemons

  • Warnings for Duplicate Variables in Config Files
    Added logging warnings for variables defined multiple times in configuration files.

  • POSIX-Compliant ioctl Prototype Test in BDEV
    Resolved compilation issues on Alpine Linux due to missing includes and related warnings (GitHub Issue #602).

  • Updated configure.ac for New PKG_PROG_PKG_CONFIG Macro
    Updated the configuration script to include the new PKG_PROG_PKG_CONFIG macro, improving compatibility and build processes.

Mount

  • Linux ACL Compatibility
    Added "fake" system.posix_acl* xattrs to listxattr, ensuring ACLs are correctly displayed with the + symbol in ls -l (GitHub Issue #631).

CLI

  • Option Validation
    Added sanity checks for integer values in CLI options to prevent misconfiguration errors.

FreeBSD Ports

  • Moved Port Files from sysutils to filesystems
    Updated to reflect changes in the FreeBSD ports tree structure.

  • Renamed Port Base Name
    Changed the FreeBSD port base name from moosefs4 to moosefs.


Key Deprecation

  • Python 2.7 Support Removed
    MooseFS no longer supports Python 2.7. This deprecation reflects modern development practices and ensures better compatibility with current systems. Users relying on Python 2.7 are advised to upgrade their environments.

We encourage all users to update to this release to benefit from these fixes, improvements, and new features.

Thank you,
Piotr / MooseFS Team

MooseFS 4.56.6

25 Sep 17:54

Choose a tag to compare

Dear MooseFS Users,

We are thrilled to announce the release of the long-awaited MooseFS 4.x Community Edition! 🎉

New Features and Enhancements

New Format of Chunk Storage: Erasure Codes (EC)

We have introduced a new format of chunk storage with Erasure Codes, which can store data in ARCHIVE and TRASH states as 4 or 8 parts with an additional parity part, allowing data restoration in case a part is lost. This method provides data restoration in case of missing parts while optimizing storage space:

  • EC8+1: Uses 112.5% of space,
  • EC4+1: Uses 125% of space,

while maintaining the same level of hardware failure protection as standard replication (200%).

New Options in Storage Class Definitions

  • TRASH State: files in the MooseFS TRASH, so the deleted files that are retained for a configurable period of time, can now have custom storage definitions within a storage class.
  • ARCHIVE State Configuration: ARCHIVE state is now fully configurable:
  • Set file archive times based on last atime, mtime, or ctime.
  • Choose between FAST archival (ASAP) or PER CHUNK based on mtime.
  • Exclude files below a certain length from being archived.
  • Logical Expressions in Label Definitions: Support for comprehensive logical expressions in label definitions is now available, allowing users to create more flexible and precise rules, providing greater control over how storage classes and states are applied to files. This includes the ability to use negations.
  • State-Specific Label Overrides: Override label modes (STD, LOOSE, STRICT) for specific states: CREATE, KEEP, ARCHIVE, or TRASH.

Storage Class Based on File Patterns

Users can now assign file storage classes dynamically based on custom file name patterns, providing greater flexibility in managing data. For example, files with a .backup extension could be assigned to a specific storage class with lower redundancy, while files starting with important_ might be placed in a high-redundancy class.

Broadcast Mechanism for Server Restarts

Server restarts (both chunk server and master) no longer block I/O until the end of chunk registration process.

Improved Chunk Format

Enhanced handling of control sums for more secure chunk storage.

New Web-based Graphical User Interface with Dark Mode

Additional monitoring charts and system insights, offering improved chart systems and more detailed information. Moreover, dark mode is now available.

Multi-LAN Configuration

Support for clients across different LANs to remain within their LAN IP class while communicating with the master server. Can be used alongside the remap option known from MooseFS 3.x.

Enhanced IP Remap

Customizable IP-to-IP remapping instead of just fixed remapping of leading bits in IP addresses.

Detailed Daemon Info

MooseFS daemons instructed by an info signal can now generate detailed info files in working directory, listing configuration, state, and module data for enhanced troubleshooting.

CS-Master Consistency Checks

New mechanism to ensure consistency between master and chunk server data held in RAM.

New mfshdd.cfg Options

Flags with limits and options for disks with chunks shared with other processes, allowing better calculation of available/occupied space on disks.

New Offline Tool: mfsmetasearch

Allows offline searches for files in metadata based on various conditions such as chunk IDs, inodes, and attributes.

Updated Logging System

Clear division of log messages by severity levels, with customizable logging options and syslog reporting.

New ACL Handling Tools

Useful for operating systems without built-in ACL management tools.

General Algorithm Improvements

Numerous improvements to algorithms for faster and more efficient MooseFS performance, especially in edge-case scenarios.

Quality of Life Improvements

  • Faster Metadata Loading at master server startup.
  • mfssupervisor Tool for on-demand metadata saves.
  • mfsfileinfo Tool can now display chunk paths on chunk servers.
  • Enhanced Chunk Rebalance Algorithms.
  • More Configuration Options for various operations and storage management.

Community Contributions

During the development of this version, we received valuable feedback and suggestions from our community, many of which have been implemented. A huge thank you to everyone who contributed to shaping this release of MooseFS!

MooseFS PRO

If you are looking for high availability (HA) for master servers, improved disk space management with enhanced data protection through EC configurations with higher redundancy levels, and dedicated support, we also offer MooseFS PRO version. This version is designed for enterprise environments where uptime and data integrity are critical, providing features like automatic failover for master servers, more advanced erasure coding for greater resilience against hardware failures, and professional support services to ensure smooth operation and rapid issue resolution. MooseFS PRO adds an extra layer of reliability and optimization for those managing large-scale, mission-critical storage systems.


We recommend to update your MooseFS clusters to this version.

Thank you,
Piotr / MooseFS Team

MooseFS 4.56.5

19 Sep 20:57

Choose a tag to compare

Dear MooseFS Users,

We are thrilled to announce the release of the long-awaited MooseFS 4.x Community Edition! 🎉

New Features and Enhancements

New Format of Chunk Storage: Erasure Codes (EC)

We have introduced a new format of chunk storage with Erasure Codes, which can store data in ARCHIVE and TRASH states as 4 or 8 parts with an additional parity part, allowing data restoration in case a part is lost. This method provides data restoration in case of missing parts while optimizing storage space:

  • EC8+1: Uses 112.5% of space,
  • EC4+1: Uses 125% of space,

while maintaining the same level of hardware failure protection as standard replication (200%).

New Options in Storage Class Definitions

  • TRASH State: files in the MooseFS TRASH, so the deleted files that are retained for a configurable period of time, can now have custom storage definitions within a storage class.
  • ARCHIVE State Configuration: ARCHIVE state is now fully configurable:
  • Set file archive times based on last atime, mtime, or ctime.
  • Choose between FAST archival (ASAP) or PER CHUNK based on mtime.
  • Exclude files below a certain length from being archived.
  • Logical Expressions in Label Definitions: Support for comprehensive logical expressions in label definitions is now available, allowing users to create more flexible and precise rules, providing greater control over how storage classes and states are applied to files. This includes the ability to use negations.
  • State-Specific Label Overrides: Override label modes (STD, LOOSE, STRICT) for specific states: CREATE, KEEP, ARCHIVE, or TRASH.

Storage Class Based on File Patterns

Users can now assign file storage classes dynamically based on custom file name patterns, providing greater flexibility in managing data. For example, files with a .backup extension could be assigned to a specific storage class with lower redundancy, while files starting with important_ might be placed in a high-redundancy class.

Broadcast Mechanism for Server Restarts

Server restarts (both chunk server and master) no longer block I/O until the end of chunk registration process.

Improved Chunk Format

Enhanced handling of control sums for more secure chunk storage.

New Web-based Graphical User Interface with Dark Mode

Additional monitoring charts and system insights, offering improved chart systems and more detailed information. Moreover, dark mode is now available.

Multi-LAN Configuration

Support for clients across different LANs to remain within their LAN IP class while communicating with the master server. Can be used alongside the remap option known from MooseFS 3.x.

Enhanced IP Remap

Customizable IP-to-IP remapping instead of just fixed remapping of leading bits in IP addresses.

Detailed Daemon Info

MooseFS daemons instructed by an info signal can now generate detailed info files in working directory, listing configuration, state, and module data for enhanced troubleshooting.

CS-Master Consistency Checks

New mechanism to ensure consistency between master and chunk server data held in RAM.

New mfshdd.cfg Options

Flags with limits and options for disks with chunks shared with other processes, allowing better calculation of available/occupied space on disks.

New Offline Tool: mfsmetasearch

Allows offline searches for files in metadata based on various conditions such as chunk IDs, inodes, and attributes.

Updated Logging System

Clear division of log messages by severity levels, with customizable logging options and syslog reporting.

New ACL Handling Tools

Useful for operating systems without built-in ACL management tools.

General Algorithm Improvements

Numerous improvements to algorithms for faster and more efficient MooseFS performance, especially in edge-case scenarios.

Quality of Life Improvements

  • Faster Metadata Loading at master server startup.
  • mfssupervisor Tool for on-demand metadata saves.
  • mfsfileinfo Tool can now display chunk paths on chunk servers.
  • Enhanced Chunk Rebalance Algorithms.
  • More Configuration Options for various operations and storage management.

Community Contributions

During the development of this version, we received valuable feedback and suggestions from our community, many of which have been implemented. A huge thank you to everyone who contributed to shaping this release of MooseFS!

MooseFS PRO

If you are looking for high availability (HA) for master servers, improved disk space management with enhanced data protection through EC configurations with higher redundancy levels, and dedicated support, we also offer MooseFS PRO version. This version is designed for enterprise environments where uptime and data integrity are critical, providing features like automatic failover for master servers, more advanced erasure coding for greater resilience against hardware failures, and professional support services to ensure smooth operation and rapid issue resolution. MooseFS PRO adds an extra layer of reliability and optimization for those managing large-scale, mission-critical storage systems.


We recommend to update your MooseFS clusters to this version.

Thank you,
Piotr / MooseFS Team

MooseFS 3.0.118

12 Aug 21:57

Choose a tag to compare

Dear MooseFS Users,

We are happy to announce that MooseFS 3.0.118 is released! 🎉

This is mostly a bugfix release. It also introduces a few improvements and new features, including:

  • MooseFS is now cross-build friendly,
  • New moosefs man page.

We would like to say big thanks to all the contributors who helped us making this release, especially (alphabetically): @asyslinux, @tianon, @xctan. Thank you for your valuable time, input, and help in making MooseFS better!
(If I forgot to mention somebody, I am sorry for that and please definitely let me know!)

Please find a complete list of changes included in this release below:

  • (all) regenerated autoconf files (issue #525)
  • (scripts) added simple class that replaces deprecated cgi and cgitb (issue #567)
  • (bdev) fixed unmap protocol (issue #551)
  • (cgi) added protections against javascript injection
  • (all) moved build aux files to separate folder build-aux and made moosefs cross-build friendly
  • (all) housekeeping changes (year, regenerated with new autotools, silenced some compiler warnings)
  • (all) updated README and README.md files
  • (man) added new man page moosefs

We recommend to update your MooseFS clusters to this version.

Thank you,
Piotr / MooseFS Team