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 create
Creates 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 ls
Lists all the CephFS filesystems available in the Ceph cluster.
ceph fs ls
Example:
ceph fs ls
This lists all the filesystems configured in the Ceph cluster.
ceph fs rm
ceph fs rm
Removes a CephFS filesystem from the cluster.
ceph fs rm <filesystem-name> --yes-i-really-mean-it
Example:
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 status
Displays 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 set
Sets 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 dump
Dumps the full configuration of a CephFS instance, including metadata pool, data pool, MDS settings, and placement groups.
ceph fs dump
Example:
ceph fs dump
This provides a detailed output of the configuration and status of the CephFS instances.
ceph fs mds fail
ceph fs mds fail
Manually 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 stop
Stops 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 create
Creates 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 ls
Lists 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 rm
Removes 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-quota
Sets 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-quota
Retrieves 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 authorize
Authorizes 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 deauthorize
Revokes 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_pool
Adds 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_pool
Sets 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