Moose File System
Encyclopedia
Moose File System is a distributed file system
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 System
Google 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 failover
    Failover
    In 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 failure
    Single point of failure
    A 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 daemon
    Daemon (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 CARP
    Common Address Redundancy Protocol
    The 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 daemon
    Daemon (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 FUSE
    Filesystem in Userspace
    Filesystem 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 replication
    Replication (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 redundancy
    Redundancy (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 RAID
    RAID
    RAID 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.

  • Striping
    Data striping
    In 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 megabyte
    Megabyte
    The 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 balancing
    Load 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.

  • Security
    Security
    Security 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 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...

     file permissions, since 1.6 release MooseFS offers a simple, NFS-like, authentication
    Authentication
    Authentication is the act of confirming the truth of an attribute of a datum or entity...

    /authorization
    Authorization
    Authorization 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 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 operating system. TCP/IP is used as an interconnect.

See also

  • Distributed file system
    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...

  • List of file systems, the distributed fault-tolerant file system section
  • Ceph
    Ceph
    -External links:* *...

  • 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...

  • GlusterFS
    GlusterFS
    GlusterFS 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...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK