MooseFS 1.6.17
In this release we added an automatic data cache management.
- (master,tools) added automatic data cache management
- (master,tools) new flag "nodatacache"
MooseFS 1.6.16
In this release we focused on a still better compliance with POSIX standard and fixed some bugs.
- (master) added clearing suid/sgid bits
Operation of changing the owner of the file should delete "suid" and "sgid" flags. Formally POSIX rules say that a change done by a user not having appropriate privileges (by a not super user) should delete both flags and a change done by a super user may delete the flags or may not. The implementation is dependent on the system, eg. Linux and Max OS X delete the flags while FreeBSD and OpenSolaris do not. MooseFS deletes both flags - when a change is done either by a normal or by a super user.
- (master) added check for "sticky" flag during rename and unlink operations
We added control of "sticky flag" during operations of moving (RENAME) and deleting files (UNLINK) and folders (RMDIR).
Formally POSIX rules say:
If a directory is writable and the mode bit S_ISVTX is set on the directory, a process may remove or rename files within that directory only if one or more of the following is true:
* The effective user ID of the process is the same as that of the owner ID of the file.
* The effective user ID of the process is the same as that of the owner ID of the directory.
* The process has appropriate privileges. - (master) fixed posix compatibility (removing empty directory on rename)
Until now operation RENAME didn't work when the target object existed and was a folder. POSIX rules say that if a target object is a folder and if it is empty it should be deleted and the operation should be executed.
- (master) fixed posix compatibility (proper changing ctime)
Until now change time of i-node (ctime) was not always modified. Generally speaking every change of i-node attributes should modify ctime. But there also some operations which do not change attributes but should change ctime. One of such operations is adding something or removing something from a folder.
Another operation is moving / renaming a file (RENAME). In Unix like systems file name is not an i-node attribute. But in other systems (eg. FAT32) file name can be an attribute like any other. POSIX allows here either changing ctime or not changing. We choose to change ctime to be compliant with ext3/Linux which does change the ctime too.
- (master) fixed some constants (better support for larger systems with millions of files and chunks)
Test loop is started after 900 seconds instead of 150; package size is now 500MB instead of 50MB and loop time is 4 hours not 1.
- (master) fixed error logging (logging is turning off when there are too many messages)
When there were too many errors (eg. all chunk servers were disconnected for a moment) the master server choked by writing to a logfile messages like "file temporarily unavailable" and it finally caused a situation where it didn't accept connections from these chunkservers.
- (all) fixed some OpenSolaris compile issues (mainly added -D__EXTENSIONS__ to compile flags)
OpenSolaris needs this option do compile MooseFS on this system.
- (all) fixed OpenSolaris pthreads issue (errno doesn't work correctly without proper compiler flags)
In OpenSolaris error number of the last operation (errno) by default is not thread-safe. Now the libmfscommon library was deleted and each module builds all necessary files from "mfscommon" with relevant flags/options.
- (cs) fixed hdd stats (overflow on negative time difference)
As disk operations are very short it happened in some environments that the end time of the operation was earlier than the start time (eg. when a system slightly updated its time). Now this situation in reported just as 0 in the CGI monitor.
- (man) added mfscgiserv man page, added "BIND" options descriptions to man pages
Some changes made to man pages - description of options for BINDing and a new page for mfscgiserv
2010-07-20 12:00
MooseFS 1.6.15
This is a maintenance release.
- (daemons) fixed "double free" error
- (metarestore) fixed bugs in "REPAIR" and "SNAPSHOT" entries
- (master) fixed bug in "snapshot" command ("mfsmakesnapshot dir dir/" caused master to hung-up)
- (master) preserving atime and mtime during "snapshot" operation (makes "snapshot" to work more like "cp -Rp" than "cp -R")
- (cs) ommit "marked for removal" disks during chunk test loop
2010-04-09 10:00
MooseFS 1.6.14
This is a maintenance release.
- (all) improved messages
- (cs) prevent from using localhost as a master IP address
- (all) remove some BSDisms from code
- (metalogger) added BIND_HOST option (as in mount and cs)
2010-03-19 10:00
MooseFS 1.6.13
This is a maintenance release.
- (master) fixed poll events bug
- (autotools) added m4 module for posix threads detection
- (master) added exporting "meta" to default mfsexports.cfg
- (master,tools) removed "allowdatacache" flag (will be managed automatically in the future)
- (master,cs) added support for not compressed PNG images in chart module (when build without zlib)
2010-02-08 11:35
MooseFS 1.6.12
- (mount) fixed locking in read module
- (mount,cs) added ability to bind outgoing sockets to specific IP (-B option in mfsmount and BIND_HOST in mfschunkserver)
- small fix in mfscgiserv
2010-01-25 11:35
MooseFS 1.6.11
- (cs) removed dirent.d_type test
- (cs) fixed some memory leaks
- (mount) improved attribute cache
2009-12-31 14:26
MooseFS 1.6.10
- fixed errors introduced in 1.6.9
- added 'reload' command to master
- split chunk counters into 'all' and 'regular' (new approach to disks removal - since this version chunks on 'marked for removal' disks are not deleted)
2009-12-09 14:24
MooseFS 1.6.9
- updated manpages
- added support for mlockall (prevent from swapping)
- redesigned charts module
- redesigned locking mechanizm (daemons)
- added HDD I/O stats
- removing unfinished jobs from queue on socket close
- added 'cache file' flag
2009-11-24 14:22
MooseFS 1.6.8
added options to set nice level and number of I/O retries in mfsmount
2009-10-26 14:20
MooseFS 1.6.7
fixed error: damaged disk caused SIGSEGV in mfschunkserver
2009-10-05 14:19
MooseFS 1.6.6
- fixed errors introduced in 1.6.5
- changed directory structure in CS (from 16 subfolders to 256 subfolders)
2009-10-02 14:17
MooseFS 1.6.5
- fixed some performance issues
- added new module mfsmetalogger
2009-09-23 14:15
MooseFS 1.6.4
- rewrite mfs to use poll instead of select
- fixed some errors in new write module
- limit cache usage by inode in write module
2009-08-25 14:12
MooseFS 1.6.3
- reduced version increasing
- increased open files limit in chunkserver
- decreased time window in damage disk detection
2009-08-24 14:10
MooseFS 1.6.2
- fixed "race" in writedata module
- increased session timeout in mfsmaster for new sessions
2009-08-19 14:08
MooseFS 1.6.1
- Added 'mapall' option to exports
- Added flags 'noattrcache' and 'noentrycache'
- Rewritten "Writedata" module in mfsmount
- Added source (read) limit to replications
- Prefer localhost during some operations (reduce network usage)
2009-08-14 14:06
MooseFS 1.6.0 (not released - only available in public repository)
Common:
- Removed duplicate source files.
- Whitespace at the end of lines in configuration files do not produce errors
Chunkserver:
- New -v option (prints version and exits).
- The module has been rewritten from scratch and now has a multithreaded architecture.
- A new module for testing chunkservers has been introduced. Also, a new parameter in mfschunkserver.cfg file has been added, i.e. HDD_TEST_FREQ - which defines interval in seconds between tests. Setting variable to 0 disables chunkserver tests. The default value is 10.
Master:
- New -v option (prints version and exits).
- A new functionality of creating "atomic snapshots" of entire folders has been introduced.
- A new flag noowner along with mfssetnoownerflag, mfsgetnoownerflag and mfsdelnoownerflag tools has been introduced. If any object in the tree has this flag on, then this object and all its children belong to the current user (the file uid and gid is equal to uid and gid of current user). User with uid 0 can see original uids and gids of the files.
- Maintaining mfsdirinfo data online, so it doesn't need to be calculated on every request (now the mfsdirinfo tool doesn't block Master when big trees are used).
- Filesystem access authorization system
All clients older than 1.5.14 connect using the old protocol version and access management is not available for them (at the transitional stage they have access to every resource). But you can set the option "REJECT_OLD_CLIENTS" to 1, so that the Master will not accept connections from clients older than 1.5.14 (the default value of this option is 0).
For new clients (version 1.5.14 and above), there is a new file mfsexports.cfg in etc. The format of mfsexports.cfg is:
ADDRESSES FOLDER [OPTIONS]
ADDRESSES
-
all addresses
n.n.n.n - one IP address
n.n.n.n/b - IP subnet defined by network address and number of bits
n.n.n.n/m.m.m.m - IP subnet defined by network address and netmask
f.f.f.f - t.t.t.t - IP range from-to
FOLDER signifies the subfolder accessible to users from specified addresses. The path doesn't need to start from '/' but if you want to give access to the whole tree you should use a single '/' sign. One dot '.' signifies access to META resources.
OPTIONS
-
ro or readonly - signifies readonly access (default)
-
rw or readwrite - signifies access for reading and writing
-
ignoregid - disables group check when checking access rights; when file uid is the same as uid of current user, then the owner rights are checked (normally), otherwise group and others' rights connected by "OR" statement are checked. When this option is used, checking rights is disabled only by the Master, mfsmount still uses standard privileges. Generally, the option is used to ensure that rights of users belonging to different groups work properly (FUSE passes only the main user group).
-
dynamicip - enables a user to reconnect from the same IP addresses. Normally, when a connection is broken between the client and the master, the client after reconnection shows only session id and based on this information is allowed to enter or not. In order to prevent stealing others' sessions, the master checks the client's IP and allows connections only from the same IP address. In some (rather rare) cases, such prevention may be reasonable and then enabling this option is recommended.
-
maproot=USER[:GROUP] - works the same way as in NFS. All accesses with uid equal to 0 are remapped to USER access in the GROUP group. Both USER and GROUP can be entered as a string or as a number. When GROUP is not given, the system assumes the base group of the user.
-
minversion=VER - Restricts access to a given resource only to clients with version passed in this option or above. VER consists of numbers separated by one to three dots, e.g. 1.5.14 means that minimal version is 1.5.14 and 1.6 means 1.6.0.
-
password=PASS or md5pass=MD5 - The system will require the password in order to give access to a given resource.
-
alldirs - Allows mounting of any subfolder of a given folder (the same way as in NFS)
Default options are: ro,maproot=999,999
mfsmaster reacts to SIGHUP signal which reloads "mfsexports.cfg" file. Existing connections keep working with the same rights as during authorisation.
Mount:
- Rewritten options parsing in mount-like way, making possible to use standard FUSE mount utilities (see mfsmount(8) manual for new syntax). Note: old syntax is no longer accepted and mountpoint is mandatory now (there is no default).
- Updated for FUSE 2.6+.
- Added password, file data cache, attribute cache and entry cache options. By default attribute cache and directory entry cache are enabled, file data cache and file entry cache are disabled.
- opendir() no longer reads directory contents - it's done on first readdir() now; fixes rm -r on recent Linux/glibc/coreutils combo.
- Fixed mtime setting just before close() (by flushing file on mtime change); fixes mtime preserving on cp -p.
- Added statistics accessible through MFSROOT/.stats pseudo-file.
- Changed master access method for mfstools (direct .master pseudo-file replaced by .masterinfo redirection); fixes possible mfstools race condition and allows to use mfstools on read-only filesystem.
Tools:
- Units cleanup in values display (exact values, IEC-60027/binary prefixes, SI/decimal prefixes); new options: -n, -h, -H and MFSHRFORMAT environment variable - refer to mfstools(8) manual for details).
- mfsrgetgoal, mfsrsetgoal, mfsrgettrashtime, mfsrsettrashtime have been deprecated in favour of new "-r" option for mfsgetgoal, mfssetgoal, mfsgettrashtime, mfssettrashtime tools.
- mfssnapshot utility replaced by mfsappendchunks (direct descendant of old utility) and mfsmakesnapshot (which creates "real" recursive snapshots and behaves similar to cp -r).
- New mfsfilerepair utility, which allows partial recovery of file with some missing or broken chunks.
CGI scripts:
- First public version of CGI scripts allowing to monitor MFS installation from WWW browser.
2009-07-14 13:29
MooseFS 1.5.14
Not released to public.
2009-04-28 13:28
MooseFS 1.5.13
Not released to public
2009-01-29 13:27



2010-07-28 12:00