Moose File System
Encyclopedia
Moose File System is a distributed file system
developed by Gemius SA. The lead developer is Jakub Kruszona-Zawadzki. MooseFS aims to be fault-tolerant
, scalable, POSIX
compliant, general-purpose file system for datacenters. Initially proprietary code has been open-sourced and released to public on May 5, 2008.
, Lustre
or Ceph
. The file system comprises three components:
compliant operating system. TCP/IP is used as an interconnect.
Distributed file system
Network file system may refer to:* A distributed file system, which is accessed over a computer network* Network File System , a specific brand of distributed file system...
developed by Gemius SA. The lead developer is Jakub Kruszona-Zawadzki. MooseFS aims to be fault-tolerant
Fault-tolerant design
In engineering, fault-tolerant design is a design that enables a system to continue operation, possibly at a reduced level , rather than failing completely, when some part of the system fails...
, scalable, POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
compliant, general-purpose file system for datacenters. Initially proprietary code has been open-sourced and released to public on May 5, 2008.
Design
The MooseFS mostly follows the same design principles as Google File SystemGoogle File System
Google File System is a proprietary distributed file system developed by Google Inc. for its own use. It is designed to provide efficient, reliable access to data using large clusters of commodity hardware...
, Lustre
Lustre (file system)
Lustre is a massively parallel distributed file system, generally used for large scale cluster computing. The name Lustre is a portmanteau word derived from Linux and cluster...
or Ceph
Ceph
-External links:* *...
. The file system comprises three components:
- Metadata server (MDS) — manages the location (layout) of files, file access and namespace (hierarchy). The current version of MooseFS does not support multiple metadata servers nor failoverFailoverIn computing, failover is automatic switching to a redundant or standby computer server, system, or network upon the failure or abnormal termination of the previously active application, server, system, or network...
. The MDS thus presents a single point of failureSingle point of failureA single point of failure is a part of a system that, if it fails, will stop the entire system from working. They are undesirable in any system with a goal of high availability or reliability, be it a business practice, software application, or other industrial system.-Overview:Systems can be made...
. Clients only talk to the MDS to retrieve/update a file's layout and attributes; the data itself is transferred directly between clients and chunk servers. The Metadata server is a user-space daemonDaemon (computer software)In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...
, the metadata is kept in memory and lazily stored on local disk.
- Metalogger server — periodically pulls the metadata from the MDS to store it for backup. New since version 1.6.5, this is an optional feature. Eventually it will be possible to turn the metalogger server into a failover MDS by using CARPCommon Address Redundancy ProtocolThe Common Address Redundancy Protocol or CARP is a protocol which allows multiple hosts on the same local network to share a set of IP addresses. Its primary purpose is to provide failover redundancy, especially when used with firewalls and routers. In some configurations CARP can also provide...
.
- Chunk servers (CSS) — store the data and optionally replicate it among themselves. There can be many of them, though the scalability limit has not been published. The biggest cluster reported so far consists of 75 servers. The Chunk server is also a user-space daemonDaemon (computer software)In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...
that relies on underlying the local file system to manage the actual storage.
- Clients — talk to both the MDS and CSS. MooseFS clients mount the file system into user-space via FUSEFilesystem in UserspaceFilesystem in Userspace is a loadable kernel module for Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code...
.
Features
In order to achieve high reliability and performance MooseFS offers following features:- Fault-tolerance — MooseFS uses replicationReplication (computer science)Replication is the process of sharing information so as to ensure consistency between redundant resources, such as software or hardware components, to improve reliability, fault-tolerance, or accessibility. It could be data replication if the same data is stored on multiple storage devices, or...
, data can be replicated across chunkservers, the replication ratio (N) is set per file/directory. If (N-1) replicas fail the data will still be available. At the moment MooseFS does not offer any other technique for fault-tolerance, like redundancyRedundancy (engineering)In engineering, redundancy is the duplication of critical components or functions of a system with the intention of increasing reliability of the system, usually in the case of a backup or fail-safe....
via network RAIDRAIDRAID is a storage technology that combines multiple disk drive components into a logical unit...
. Fault-tolerance for very big files thus requires vast amount of space - N*filesize instead of filesize+(N*stripesize) as would be the case for RAID 4, RAID 5 or RAID 6.
- StripingData stripingIn computer data storage, data striping is the technique of segmenting logically sequential data, such as a file, in a way that accesses of sequential segments are made to different physical storage devices. Striping is useful when a processing device requests access to data more quickly than a...
— large files are divided into chunks (up to 64 megabyteMegabyteThe megabyte is a multiple of the unit byte for digital information storage or transmission with two different values depending on context: bytes generally for computer memory; and one million bytes generally for computer storage. The IEEE Standards Board has decided that "Mega will mean 1 000...
s) that might be stored on different chunk servers in order to achieve higher aggregate bandwidth.
- Load balancingLoad balancing (computing)Load balancing is a computer networking methodology to distribute workload across multiple computers or a computer cluster, network links, central processing units, disk drives, or other resources, to achieve optimal resource utilization, maximize throughput, minimize response time, and avoid...
— MooseFS attempts to use storage resources equally, the current algorithm seems to take into the account only the consumed space.
- SecuritySecuritySecurity is the degree of protection against danger, damage, loss, and crime. Security as a form of protection are structures and processes that provide or improve security as a condition. The Institute for Security and Open Methodologies in the OSSTMM 3 defines security as "a form of protection...
— Apart from classical POSIXPOSIXPOSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
file permissions, since 1.6 release MooseFS offers a simple, NFS-like, authenticationAuthenticationAuthentication is the act of confirming the truth of an attribute of a datum or entity...
/authorizationAuthorizationAuthorization is the function of specifying access rights to resources, which is related to information security and computer security in general and to access control in particular. More formally, "to authorize" is to define access policy...
.
Hardware, software and networking
Similarly to other cluster-based file systems MooseFS servers does not require anything more than just commodity hardware running POSIXPOSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
compliant operating system. TCP/IP is used as an interconnect.
See also
- Distributed file systemDistributed file systemNetwork file system may refer to:* A distributed file system, which is accessed over a computer network* Network File System , a specific brand of distributed file system...
- List of file systems, the distributed fault-tolerant file system section
- CephCeph-External links:* *...
- LustreLustre (file system)Lustre is a massively parallel distributed file system, generally used for large scale cluster computing. The name Lustre is a portmanteau word derived from Linux and cluster...
- GlusterFSGlusterFSGlusterFS is a scale-out NAS file system developed by Gluster. It aggregates various storage servers over Ethernet or Infiniband RDMA interconnect into one large parallel network file system. GlusterFS is based on a stackable user space design without compromising performance. It has found a...