CephFS
CephFS (Ceph Filesystem) is a distributed file system that provides high-performance, scalable, and fault-tolerant file storage on top of a Ceph cluster. The cephfs tool allows for the management of a CephFS instance, and many operations are performed using Ceph administrative tools like ceph, mount, rados, and other filesystem tools. However, there are specific subcommands and operations associated with managing CephFS.
Below is a breakdown of cephfs-related subcommands and relevant operations for managing the Ceph filesystem:
General Structure of CephFS Commands
Using the ceph CLI to manage CephFS:
ceph CLI to manage CephFS:ceph fs <subcommand> [options]Common cephfs Subcommands
cephfs Subcommands1. Filesystem Management
ceph fs create
ceph fs createCreates a new Ceph filesystem (CephFS) instance.
ceph fs create <filesystem-name> <metadata-pool> <data-pool>Example:
ceph fs create myfs cephfs_metadata cephfs_data
This creates a new CephFS instance named myfs, with cephfs_metadata as the metadata pool and cephfs_data as the data pool.
ceph fs ls
ceph fs lsLists all the CephFS filesystems available in the Ceph cluster.
ceph fs lsExample:
ceph fs ls
This lists all the filesystems configured in the Ceph cluster.
ceph fs rm
ceph fs rmRemoves a CephFS filesystem from the cluster.
ceph fs rm <filesystem-name> --yes-i-really-mean-itExample:
ceph fs rm myfs --yes-i-really-mean-it
This removes the filesystem myfs from the cluster (use with caution).
2. MDS (Metadata Server) Management
ceph fs status
ceph fs statusDisplays detailed status information about a CephFS instance, including MDS activity.
ceph fs status [<filesystem-name>]Example:
ceph fs status myfs
This shows the status of the filesystem myfs, including the MDS status and client connections.
ceph fs set
ceph fs setSets various configuration options for a specific CephFS filesystem.
ceph fs set <filesystem-name> <option> <value>Example:
ceph fs set myfs max_mds 2
This sets the maximum number of MDS daemons for the filesystem myfs to 2.
ceph fs dump
ceph fs dumpDumps the full configuration of a CephFS instance, including metadata pool, data pool, MDS settings, and placement groups.
ceph fs dumpExample:
ceph fs dump
This provides a detailed output of the configuration and status of the CephFS instances.
ceph fs mds fail
ceph fs mds failManually forces a failover of an MDS daemon to test failover functionality or to replace a non-responsive MDS.
ceph fs mds fail <rank>Example:
ceph fs mds fail 0
This forces the failover of the MDS daemon with rank 0.
ceph fs mds stop
ceph fs mds stopStops a specific MDS daemon.
ceph fs mds stop <rank>Example:
ceph fs mds stop 0
This stops the MDS daemon with rank 0.
3. Snapshot Management
ceph fs snap create
ceph fs snap createCreates a snapshot of a CephFS directory.
ceph fs snap create <filesystem-name> <path>@<snapshot-name>Example:
ceph fs snap create myfs /@mysnap
This creates a snapshot mysnap of the root directory / in the filesystem myfs.
ceph fs snap ls
ceph fs snap lsLists all snapshots for a specified CephFS directory.
ceph fs snap ls <filesystem-name> <path>Example:
ceph fs snap ls myfs /
This lists all snapshots in the root directory / of the myfs filesystem.
ceph fs snap rm
ceph fs snap rmRemoves a specific snapshot from a CephFS directory.
ceph fs snap rm <filesystem-name> <path>@<snapshot-name>Example:
ceph fs snap rm myfs /@mysnap
This removes the snapshot mysnap from the root directory / in the myfs filesystem.
4. Quota Management
ceph fs set-quota
ceph fs set-quotaSets a quota on a specified directory in a CephFS filesystem.
ceph fs set-quota <filesystem-name> <path> [max_bytes <bytes>] [max_files <count>]Example:
ceph fs set-quota myfs /mydir max_bytes 104857600
This sets a 100MB quota on the directory /mydir in the filesystem myfs.
ceph fs get-quota
ceph fs get-quotaRetrieves the current quota settings for a specified directory in a CephFS filesystem.
ceph fs get-quota <filesystem-name> <path>Example:
ceph fs get-quota myfs /mydir
This retrieves the quota settings for the directory /mydir in the filesystem myfs.
5. Client Management
ceph fs authorize
ceph fs authorizeAuthorizes a Ceph client to access a specific CephFS filesystem with read, write, or full permissions.
ceph fs authorize <filesystem-name> <client-id> <caps>Example:
ceph fs authorize myfs client.myclient rw
This authorizes the client client.myclient to have read/write access to the myfs filesystem.
ceph fs deauthorize
ceph fs deauthorizeRevokes a Ceph client’s access to a specified filesystem.
ceph fs deauthorize <filesystem-name> <client-id>Example:
ceph fs deauthorize myfs client.myclient
This revokes the client client.myclient's access to the myfs filesystem.
6. Mounting a CephFS Filesystem
Mount via Kernel Client
You can mount a CephFS using the Linux kernel client.
mount -t ceph <mon-address>:<mon-port>,<mon-address>:<mon-port>:/ /mnt/mycephfs -o name=<client-name>,secretfile=<path-to-secret>Example:
mount -t ceph 10.0.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/ceph.client.admin.keyring
This mounts the CephFS root / to the /mnt/mycephfs directory, using the admin keyring for authentication.
Mount via FUSE
You can also mount CephFS using the FUSE client.
ceph-fuse /mnt/mycephfs --client_mds_namespace=<filesystem-name> -m <mon-address>Example:
ceph-fuse /mnt/mycephfs --client_mds_namespace=myfs -m 10.0.0.1
This mounts the CephFS filesystem myfs to /mnt/mycephfs using the FUSE client.
7. Pool Management
ceph fs add_data_pool
ceph fs add_data_poolAdds a new data pool to an existing CephFS filesystem.
ceph fs add_data_pool <filesystem-name> <data-pool>Example:
ceph fs add_data_pool myfs cephfs_data2
This adds a new data pool cephfs_data2 to the filesystem myfs.
ceph fs set default_pool
ceph fs set default_poolSets a pool as the default data or metadata pool for a CephFS filesystem.
ceph fs set <filesystem-name> <pool-type> <pool-name>Example:
ceph fs set myfs data_pool cephfs_data2
This sets cephfs_data2 as the default data pool for the filesystem myfs.
Conclusion
CephFS offers rich functionality for managing distributed filesystems within a Ceph cluster. From creating filesystems and managing MDS daemons to handling quotas, snapshots, and client permissions, the ceph fs suite of commands provides the necessary tools to administer CephFS instances effectively. Additionally, CephFS integrates with Ceph’s powerful object store, making it a flexible solution for large-scale, high-performance storage environments
Last updated