Skip to main content

History

MooseFS has been in development since 2005 and open source since 2008. One developer wrote it to solve one company's own storage problem. Since then MooseFS has been published, has been split into two editions, and has changed owners twice. Saglabs SA develops it today. This page covers where the system came from and how it reached its present form. The release notes record what each individual release changed.

MooseFS began in 2005 with a DVD archive​

MooseFS started at Gemius SA, a Polish internet research company that kept its entire data archive on DVDs. One person had the job of backing that archive up: making several copies and verifying them from time to time, because DVDs deteriorate and become unreadable. The company decided that the arrangement had to end.

Distributed storage systems were few at the time. The system that was readily available failed in testing. Jakub Kruszona-Zawadzki, a developer at the company, wrote an in-house system instead. He took the white paper that Google had published on the Google File System (GFS) as a starting point. The first test version took about three months and dates from late 2005.

The design moved away from GFS early. Instead of a system specialized for one kind of data, MooseFS was written as a general-purpose, POSIX-compliant file system. For the next few years MooseFS ran only inside the company.

Version 1.5 was published in 2008​

The company decided that the product was good enough to share. The company published the sources of version 1.5 through its subsidiary Core Technology, on SourceForge, under version 3 of the GNU General Public License.

Users tested MooseFS and sent in feature requests. The requests that fit the product were added. MooseFS found users worldwide. Texts about MooseFS appeared in several languages. One of those texts was a Chinese book on computing. The last version published on SourceForge under that license was 1.6.27, in 2012.

Enterprise requirements split MooseFS into two editions​

Enterprise customers arrived alongside the community users. The enterprise customers asked for features aimed at large installations. The company first accepted work on High Availability of the metadata modules, which put more than one Master Server in an instance. That work did not go into the publicly available source code.

This led to the idea of two editions: a Community Edition with what home users and small companies need, and a PRO edition with the features written for large installations. Editions: Community and PRO states what separates the two editions today.

The code was split in 2013, in the first version built as two channels. That version was never released. Users received the two editions the year after, as packages only. The source of the Community Edition stayed unpublished through the whole 2.x line and into the beginning of 3.x. The company gave the source on request.

The company accepted few of the requests that it received, because it ranked the coherence of the product above any individual feature. That policy did not suit everyone. In 2013 a group of people forked MooseFS and started a company of their own. Version 3 of the license required their fork to be published in turn.

Source publication stopped for three years and moved to GitHub​

MooseFS was no longer the owner's main focus. Other work came first. For three years, no source release followed 1.6.27. Packages were still released. The sources were not. Users asked whether that was the end of the project.

The sources came back in 2016, on GitHub, under version 2 of the GNU General Public License rather than version 3. The backlog was published in a single day: the last release of the 2.x line, and most of the 3.0 releases made so far. Every Community Edition release since has been published as it came out. Some users held the break in availability against the project and stayed with the fork. Development continued as before. The 4.x line started the year after.

Ownership moved from Gemius to Tappest to Saglabs​

In 2021 Gemius sold MooseFS to Tappest sp. z o.o., another Polish company, which wanted to make MooseFS its sole focus. Tappest was later merged with Saglabs SA. Saglabs has owned MooseFS since 2022 and holds the rights today.

Version 4 reached Community Edition in 2024​

Version 4 stayed a PRO release for years. The changes of ownership, complicated by the COVID-19 pandemic, delayed the Community Edition build of version 4 further. The whole 4.x line up to that point was PRO only. Version 4 reached the Community Edition with 4.56.5. That release included the features of seven years of 4.x development and a rebuilt GUI. The next release came days later and was the first of the line issued for both editions at once.

The 3.0 line kept its own releases through all of that time. The last of those releases came in 2023. The two lines were maintained side by side for six and a half years. The 1.x and 2.x lines had no such overlap: each of them ended before the next began.

Version 5 is the current line​

Version 5 arrived in 2026, for PRO only. Version 5 added locations, which divide one instance into separately provisioned parts, and authentication for every module rather than Chunkservers alone. The line is PRO throughout. No Community Edition release of version 5 exists, as packages or as source, so the newest Community Edition releases are still 4.59.x ones. What changed in 5.x covers what version 5 requires of a cluster that runs it.

Capabilities arrived over the years, one at a time​

WhenWhat that year brought
2009The Chunkserver moved to a multi-threaded model, which raised both responsiveness and throughput.
2011The maximum length of one file rose from 2 TiB to 128 PiB.
2013Quotas, extended attributes, and High Availability PRO (PRO Edition only), that is, more than one Master Server.
2013Read-ahead and other improvements to I/O efficiency.
2014The label mechanism, which is how a definition names the servers to place data on.
2015Separate goals for creating, keeping, and archiving a file, and the LOOSE, STANDARD, and STRICT create modes.
2016Storage Classes, which replaced separate management of goals and labels.
2017Erasure Coding (EC) and a TRASH state in Storage Classes.
2018The native Windows Client PRO (PRO Edition only).
2018Dedicated block devices.
2020The EC 4+N chunk format, which needs fewer Chunkservers than EC 8+N.
2026Locations PRO (PRO Edition only) and authentication for every module.

None of this arrived at once. Each line built on the line before it. A cluster installed today runs on all of those capabilities, not on the newest part alone.