.. _ceph-file-system: ================= Ceph File System ================= The Ceph File System, or **CephFS**, is a POSIX-compliant file system built on top of Ceph's distributed object store, **RADOS**. CephFS endeavors to provide a state-of-the-art, multi-use, highly available, and performant file store for a variety of applications, including traditional use-cases like shared home directories, HPC scratch space, and distributed workflow shared storage. CephFS achieves these goals through the use of some novel architectural choices. Notably, file metadata is stored in a separate RADOS pool from file data and served via a resizable cluster of *Metadata Servers*, or **MDS**, which may scale to support higher throughput metadata workloads. Clients of the file system have direct access to RADOS for reading and writing file data blocks. For this reason, workloads may linearly scale with the size of the underlying RADOS object store; that is, there is no gateway or broker mediating data I/O for clients. Access to data is coordinated through the cluster of MDS which serve as authorities for the state of the distributed metadata cache cooperatively maintained by clients and MDS. Mutations to metadata are aggregated by each MDS into a series of efficient writes to a journal on RADOS; no metadata state is stored locally by the MDS. This model allows for coherent and rapid collaboration between clients within the context of a POSIX file system. .. image:: cephfs-architecture.svg CephFS is the subject of numerous academic papers for its novel designs and contributions to file system research. It is the oldest storage interface in Ceph and was once the primary use-case for RADOS. Now it is joined by two other storage interfaces to form a modern unified storage system: RBD (Ceph Block Devices) and RGW (Ceph Object Storage Gateway). .. note:: If you are evaluating CephFS for the first time, please review the best practices for deployment: :doc:`/cephfs/best-practices` Using CephFS ^^^^^^^^^^^^ Using CephFS with a running Ceph Storage Cluster requires at least one active :doc:`Metadata Server (MDS) daemon `, :doc:`creating the file system `, selecting a mount mechanism for clients (:doc:`FUSE ` or :doc:`kernel driver `), and configuring :doc:`authentication credentials ` for clients. For setting up CephFS quickly, checkout the :doc:`CephFS Quick Start document `. .. raw:: html .. toctree:: :maxdepth: 1 :hidden: Provision/Add/Remove MDS(s) MDS failover and standby configuration MDS Configuration Settings Client Configuration Settings Journaler Configuration Manpage ceph-mds <../../man/8/ceph-mds> .. raw:: html .. toctree:: :maxdepth: 1 :hidden: Create a CephFS file system Mount CephFS with the Kernel Driver Mount CephFS as FUSE Mount CephFS in fstab Use the CephFS Shell Supported Features of Kernel Driver Manpage ceph-fuse <../../man/8/ceph-fuse> Manpage mount.ceph <../../man/8/mount.ceph> Manpage mount.fuse.ceph <../../man/8/mount.fuse.ceph> .. raw:: html .. toctree:: :maxdepth: 1 :hidden: Deployment best practices MDS States Administrative commands Understanding MDS Cache Size Limits POSIX compatibility Experimental Features CephFS Quotas Using Ceph with Hadoop MDS Journaling cephfs-journal-tool File layouts Client eviction Handling full file systems Health messages Troubleshooting Disaster recovery Client authentication Upgrading old file systems Configuring directory fragmentation Configuring multiple active MDS daemons Export over NFS Application best practices Scrub LazyIO Distributed Metadata Cache FS volume and subvolumes Dynamic Metadata Management in CephFS CephFS IO Path .. raw:: html .. toctree:: :hidden: Advanced: Metadata repair .. raw:: html .. toctree:: :maxdepth: 1 :hidden: Client's Capabilities libcephfs <../../api/libcephfs-java/> Mantle