Releases: moosefs/moosefs
MooseFS 4.58.3
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
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_TIMEOUTnow replacesMASTER_TIMEOUTin 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 whenMATOMA_TIMEOUTis set too low.
- Unified variable naming:
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:
- Follow the standard upgrade procedure, starting with Followers.
- Before upgrading Followers, set the config variable
MATOMA_TIMEOUTto a value higher than 10 seconds (e.g., 30 seconds is very safe). - 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
MooseFS 4.58.1
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 waymfscliis 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
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
readdirsupport
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
listxattrcache
Introduced caching for extended attribute listings, improving performance in scenarios such as Samba mounts. - Redesigned
readdircaches
Cache mechanisms were reworked to support partial directory reads and improve overall efficiency. - Added
mfsreaddirplusmintooption
Provides minimal caching forreaddirplus, ensuring systems preferreaddirplusoverreaddirwhere possible. This improves performance for operations likels -alon 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 themfsuser 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 preventedmfsclifrom 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.chunkdbneeds 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
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
mfscgiandmfscgiservpackages have been merged into a single new package:mfsgui. - This package replaces both legacy packages and should be used going forward.
- The previously separate
-
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 inindex.html). - Faster chart loading.
- New configuration file:
-
-
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
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.
- The
-
Updated the description of default storage classes for better clarity.
System Stability and Recovery
-
Fixed
csipmapinitialization issue
Themfsipmap.cfgfile 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 bothposix_locksandflockswere invalid.
Documentation
- Added a manpage for the
mfsmount.cfgconfiguration 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
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 replacemingoalandmaxgoalinmfsexports.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
InfoSignal (Pro only)
Ensures the current master hostname is accurately recorded in the 'info' file (.mfsmaster_info.txt) upon receiving aninfosignal. -
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 theKEEP_LEADERSHIPoption, 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 inmfschunktool(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 longxattrvalues. -
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
ioctlPrototype Test in BDEV
Resolved compilation issues on Alpine Linux due to missing includes and related warnings (GitHub Issue #602). -
Updated
configure.acfor NewPKG_PROG_PKG_CONFIGMacro
Updated the configuration script to include the newPKG_PROG_PKG_CONFIGmacro, improving compatibility and build processes.
Mount
- Linux ACL Compatibility
Added "fake"system.posix_acl*xattrs tolistxattr, ensuring ACLs are correctly displayed with the+symbol inls -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
sysutilstofilesystems
Updated to reflect changes in the FreeBSD ports tree structure. -
Renamed Port Base Name
Changed the FreeBSD port base name frommoosefs4tomoosefs.
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
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
TRASHState: 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.ARCHIVEState Configuration:ARCHIVEstate is now fully configurable:- Set file archive times based on last
atime,mtime, orctime. - Choose between
FASTarchival (ASAP) orPER CHUNKbased onmtime. - 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, orTRASH.
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.
mfssupervisorTool for on-demand metadata saves.mfsfileinfoTool 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
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
TRASHState: 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.ARCHIVEState Configuration:ARCHIVEstate is now fully configurable:- Set file archive times based on last
atime,mtime, orctime. - Choose between
FASTarchival (ASAP) orPER CHUNKbased onmtime. - 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, orTRASH.
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.
mfssupervisorTool for on-demand metadata saves.mfsfileinfoTool 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
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
moosefsman 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
autoconffiles (issue #525) - (scripts) added simple class that replaces deprecated
cgiandcgitb(issue #567) - (bdev) fixed
unmapprotocol (issue #551) - (cgi) added protections against javascript injection
- (all) moved
build auxfiles to separate folderbuild-auxand made moosefs cross-build friendly - (all) housekeeping changes (year, regenerated with new autotools, silenced some compiler warnings)
- (all) updated
READMEandREADME.mdfiles - (man) added new man page
moosefs
We recommend to update your MooseFS clusters to this version.
Thank you,
Piotr / MooseFS Team