mfssclass(1)

πŸ“¦
version 4.59.2 Β· 5 versions
, in arch rolling, nixos 26.05, nixpkgs unstable, ubuntu stonking

πŸ’… mfssclass β€” MooseFS storage classes management tools

okay bestie, gather round, because this one is genuinely part of MooseFS and it's all about storage classes πŸ‘‘ β€” the glow-up version of the old goal thing. Let's go.


✨ SYNOPSIS ✨

mfsgetsclass [-?] [-r] [-n|-h|-H|-k|-m|-g] OBJECT...

mfssetsclass [-?] [-r] [-n|-h|-H|-k|-m|-g] SCLASS_NAME OBJECT...

mfscopysclass [-?] [-r] [-n|-h|-H|-k|-m|-g] SOURCE_OBJECT OBJECT...

mfsxchgsclass [-?] [-r] [-n|-h|-H|-k|-m|-g] SRC_SCLASS_NAME
DST_SCLASS_NAME OBJECT...

like, four whole little tools in one manpage. they're a family. a squad. 🫢


🌸 DESCRIPTION 🌸

These tools operate on a filesystem object's β€” that's a file, a special file, or a directory β€” storage class name. It's literally an extended version of the older MooseFS goal mechanism, so if you remember goals, this is that but with main character energy. ✨

Every fresh install of MooseFS comes with several predefined storage classes already in there (peep the NOTES section, i got you). Any other classes can be created / modified / deleted / etc. by an administrator using the mfsscadmin tool. that's a different manpage, don't @ me.

  • mfsgetsclass β€” prints the current storage class of the given object(s). πŸ•΅οΈβ™€οΈ With the -r option you get recursive mode: for directories it shows the number of objects in each storage class contained in the whole subtree of that directory. For files there's no difference. none. zero. file is file.
  • mfssetsclass β€” changes the current storage class of the given object(s). -r gives you recursive mode again. πŸ’…
  • mfscopysclass β€” copies the storage class from one object (SOURCE_OBJECT) to the given object(s). copy paste but make it filesystem.
  • mfsxchgsclass β€” sets the storage class of the given object(s) to DST_SCLASS_NAME, but only when the current storage class is set to SRC_SCLASS_NAME. conditional queen. it's giving "if and only if".

πŸŽ€ OPTIONS πŸŽ€

Most MooseFS tools use -n, -h, -H, -k, -m and -g options to pick the format of printed numbers. Here's the whole tea:

  • -n β€” print exact numbers. no rounding, no vibe, just the truth.
  • -h β€” use binary prefixes (Ki, Mi, Gi as 2^10, 2^20 etc.).
  • -H β€” use SI prefixes (k, M, G as 10^3, 10^6 etc.).
  • -k β€” show plain numbers in kibis (binary kilo β€” 1024).
  • -m β€” show plain numbers in mebis (binary mega β€” 1024^2).
  • -g β€” show plain numbers in gibis (binary giga β€” 1024^3).
  • -r β€” recursive mode, as described above for each tool. 🌈
  • -? β€” displays a short usage message. the "help me bestie" button. πŸ†˜

You can get the same formatting behaviour by setting the MFSHRFORMAT environment variable to:

  • 0 β€” exact numbers
  • 1 or h β€” binary prefixes
  • 2 or H β€” SI prefixes
  • 3 or h+ β€” exact numbers and binary prefixes
  • 4 or H+ β€” exact numbers and SI prefixes

The default is to print just exact numbers. πŸ“ (yes, exactly as it sounds, no secret extra mode, i checked.)


πŸ¦‹ NOTES πŸ¦‹

INHERITANCE

When a new object is created in MooseFS, the storage class is inherited from the parent directory. πŸ‘Ά A newly created object always inherits the current value of its parent's storage class β€” like it's just born wearing whatever the parent was wearing.

Changing a directory's storage class does not affect its already created children. nope. they're grown, they have their own lives. 😀

To change the storage class for a directory and all of its children, use the -r option. that's the whole point of -r. slay.

PREDEFINED STORAGE CLASSES

A new MooseFS instance will have these classes predefined:

  • 2CP β€” only KEEP state defined, keep 2 copies on any labels (this is the default class for the / directory πŸ‘‘)
  • 3CP β€” only KEEP state defined, keep 3 copies on any labels
  • EC4+1 β€” in KEEP state, keep 2 copies on any labels; in ARCHIVE state, keep chunks in EC4+1 format on any labels; archive delay is 1 day and is calculated using the file's ctime; files smaller than 512kiB will not be converted to EC format
  • EC4+2 β€” (pro only) in KEEP state, keep 3 copies on any labels; in ARCHIVE state, keep chunks in EC4+2 format on any labels; archive delay is 1 day and is calculated using the file's ctime; files smaller than 512kiB will not be converted to EC format
  • EC8+1 β€” in KEEP state, keep 2 copies on any labels; in ARCHIVE state, keep chunks in EC8+1 format on any labels; archive delay is 1 day and is calculated using the file's ctime; files smaller than 512kiB will not be converted to EC format
  • EC8+2 β€” (pro only) in KEEP state, keep 3 copies on any labels; in ARCHIVE state, keep chunks in EC8+2 format on any labels; archive delay is 1 day and is calculated using the file's ctime; files smaller than 512kiB will not be converted to EC format

⏳ the old lore (up to version 4.56.0)

Up to version 4.56.0 of MooseFS the predefined classes were different. The following information pertains to old MooseFS behaviour. In newer versions of MooseFS the classes mentioned below might exist as a result of an upgrade, but will behave exactly like any user-defined classes. This information is left here purely for informative reasons and will be removed from this manual page at some point:

(Behaviour up to version 4.56.0) "For compatibility reasons, every fresh or freshly upgraded instance of MooseFS has 9 predefined storage classes. Their names are single digits, from 1 to 9, and their definitions are * to 9*. They are equivalents of simple numeric goals from previous versions of the system. In case of an upgrade, all files that had goal N before upgrade, will now have N storage class. These classes can be modified only when option -f is specified. It is advised to create new storage classes in an upgraded system and migrate files with mfsxchgsclass tool, rather than modify the predefined classes. The predefined classes CANNOT be deleted."

that last all-caps CANNOT is doing a lot of work and honestly? deserved. πŸ’€


😭 REPORTING BUGS 😭

Found a bug? bestie, tell the devs: <bugs@moosefs.com>.


Copyright (C) 2026 Jakub Kruszona-Zawadzki, Saglabs SA

This file is part of MooseFS.

MooseFS is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 (only).

MooseFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses/>.


🫢 SEE ALSO 🫢

mfsmount(8), mfstools(1), mfsscadmin(1)


and that's the whole page, bestie πŸ’– this was MooseFS 4.59.2-1, dated May 2026 β€” go forth and set your storage classes correctly, periodt. 🌈✨

πŸ“¦ where this page comes from