Ceph FS 命令详解

Ceph FS 命令详解

Ceph FS(Ceph File System)是 Ceph 提供的兼容 POSIX 的分布式文件系统。它使用 Ceph 的对象存储层(RADOS)来存储数据,并通过元数据服务器(MDS)来管理文件系统的元数据。Ceph FS 支持标准的文件系统操作,如创建、删除、读取和写入文件和目录。

Ceph FS 基础命令

1. 文件系统管理

bash 复制代码
# 列出所有文件系统
ceph fs ls

# 获取文件系统详细信息
ceph fs get <fs_name>

# 创建文件系统
ceph fs volume create <fs_name>

# 删除文件系统,不一定能删除,有安全限制
ceph fs volume rm <fs_name> --yes-i-really-mean-it

# 查看文件系统状态
ceph fs status <fs_name>

2. MDS 管理

bash 复制代码
# 查看 MDS 状态
ceph mds stat

# 查看 MDS 映射
ceph mds dump

# 设置最大活跃 MDS 数量
ceph fs set <fs_name> max_mds <number>

# 设置备用 MDS 数量
ceph fs set <fs_name> standby_count_wanted <number>

Ceph FS 客户端操作

1. 内核客户端挂载

bash 复制代码
# 创建挂载点
sudo mkdir /mnt/cephfs

# 挂载 Ceph FS(使用内核驱动)
sudo mount -t ceph <mon_ip>:6789:/ /mnt/cephfs \
  -o name=<user>,secret=<key>

# 挂载特定文件系统路径
sudo mount -t ceph <mon_ip>:6789:/ /mnt/cephfs \
  -o name=admin,secretfile=/etc/ceph/admin.secret,mds_namespace=myfs
  
mount -t ceph 192.168.3.41:6789,192.168.4.33:6789,192.168.4.34:6789:/ /mnt/cephfs \
  -o name=admin,secretfile=/etc/ceph/admin.secret

# 卸载文件系统
sudo umount /mnt/cephfs

2. FUSE 客户端挂载

bash 复制代码
# 安装 ceph-fuse
sudo apt-get install ceph-fuse  # Ubuntu/Debian
sudo yum install ceph-fuse      # CentOS/RHEL

# 创建挂载点
sudo mkdir /mnt/cephfs

# 使用 ceph-fuse 挂载
ceph-fuse -m <mon_ip>:6789 /mnt/cephfs

# 卸载 FUSE 文件系统
sudo fusermount -u /mnt/cephfs

Ceph FS 子目录配额管理

1. 配额设置

bash 复制代码
# 为目录设置最大字节数
ceph fs subvolume resize <fs_name> <subvol_name> <size>

# 为目录设置最大文件数
setfattr -n ceph.quota.max_files -v <number> <directory>

# 查看目录配额
getfattr -n ceph.quota.max_bytes <directory>
getfattr -n ceph.quota.max_files <directory>

2. 配额信息查询

bash 复制代码
# 查看目录使用情况
du -sh <directory>

# 使用 cephfs-top 查看实时使用情况
cephfs-top

Ceph FS 快照管理

1. 创建和管理快照

bash 复制代码
# 创建快照(需要先启用快照功能)
mkdir /.snapshots/<snapshot_name>

# 列出快照
ls /.snapshots/

# 删除快照
rmdir /.snapshots/<snapshot_name>

# 访问快照数据
ls /<fs_mount_point>/.snapshots/<snapshot_name>/

2. 启用快照功能

bash 复制代码
# 启用文件系统快照功能
ceph fs set <fs_name> allow_new_snaps true

Ceph FS 子卷管理

1. 子卷操作

bash 复制代码
# 创建子卷
ceph fs subvolume create <fs_name> <subvol_name>

# 列出子卷
ceph fs subvolume ls <fs_name>

# 删除子卷
ceph fs subvolume rm <fs_name> <subvol_name>

# 获取子卷信息
ceph fs subvolume getpath <fs_name> <subvol_name>

2. 子卷组管理

bash 复制代码
# 创建子卷组
ceph fs subvolumegroup create <fs_name> <group_name>

# 列出子卷组
ceph fs subvolumegroup ls <fs_name>

# 删除子卷组
ceph fs subvolumegroup rm <fs_name> <group_name>

Ceph FS 性能调优

1. 客户端调优

bash 复制代码
# 设置客户端缓存大小
mount -t ceph <mon_ip>:6789:/ /mnt/cephfs \
  -o name=admin,secretfile=/etc/ceph/admin.secret,rasize=262144

# 调整最大读写大小
mount -t ceph <mon_ip>:6789:/ /mnt/cephfs \
  -o name=admin,secretfile=/etc/ceph/admin.secret,rsize=16777216,wsize=16777216

2. MDS 调优

bash 复制代码
# 设置 MDS 缓存内存限制
ceph config set mds mds_cache_memory_limit <bytes>

# 设置 MDS 日志最大段数
ceph config set mds mds_log_max_segments <number>

# 启用 MDS 负载均衡
ceph config set mds mds_balancer simple

常用 Ceph FS 管理场景

场景 1:创建和挂载文件系统

创建一个新的 Ceph FS 并挂载使用:

bash 复制代码
# 1. 创建文件系统
ceph fs volume create myfs

# 2. 查看文件系统状态
ceph fs status myfs

# 3. 获取客户端密钥
ceph auth get-key client.admin > /etc/ceph/admin.secret

# 4. 创建挂载点
sudo mkdir /mnt/cephfs

# 5. 挂载文件系统
sudo mount -t ceph <mon_ip>:6789:/ /mnt/cephfs \
  -o name=admin,secretfile=/etc/ceph/admin.secret

# 6. 验证挂载
df -h /mnt/cephfs

场景 2:配置多活跃 MDS

为提高性能配置多个活跃 MDS:

bash 复制代码
# 1. 查看当前 MDS 状态
ceph mds stat

# 2. 设置最大活跃 MDS 数量
ceph fs set myfs max_mds 2

# 3. 设置备用 MDS 数量
ceph fs set myfs standby_count_wanted 2

# 4. 验证配置
ceph mds stat

场景 3:设置目录配额

为特定目录设置存储配额:

bash 复制代码
# 1. 创建测试目录
mkdir /mnt/cephfs/testdir

# 2. 设置最大字节数配额(例如 1GB)
setfattr -n ceph.quota.max_bytes -v 1073741824 /mnt/cephfs/testdir

# 3. 设置最大文件数配额(例如 1000 个文件)
setfattr -n ceph.quota.max_files -v 1000 /mnt/cephfs/testdir

# 4. 验证配额设置
getfattr -n ceph.quota.max_bytes /mnt/cephfs/testdir
getfattr -n ceph.quota.max_files /mnt/cephfs/testdir

场景 4:创建和使用快照

为重要数据创建快照:

bash 复制代码
# 1. 启用快照功能
ceph fs set myfs allow_new_snaps true

# 2. 创建快照目录
mkdir /mnt/cephfs/.snapshots

# 3. 创建快照
mkdir /mnt/cephfs/.snapshots/snap_$(date +%Y%m%d_%H%M%S)

# 4. 访问快照数据
ls /mnt/cephfs/.snapshots/snap_*/

Ceph FS 相关配置参数

参数名 含义 默认值 建议值
mds_cache_memory_limit MDS 缓存内存限制 4GB 根据节点内存调整
mds_balancer 负载均衡器 none simple
client_mount_timeout 客户端挂载超时 30s 30s
client_caps_release_delay 客户端能力释放延迟 5min 5min
mds_log_max_segments MDS 日志最大段数 30 30-100

Ceph FS 最佳实践

1. 部署建议

  • MDS 高可用:部署多个 MDS 实例以确保高可用性
  • 网络配置:确保 MDS 和客户端之间有良好的网络连接
  • 存储池规划:合理规划元数据和数据存储池

2. 性能优化

  • 客户端调优:根据工作负载调整客户端参数
  • MDS 调优:合理配置 MDS 缓存和日志参数
  • 负载均衡:启用并配置 MDS 负载均衡器

3. 数据保护

  • 快照策略:制定定期快照策略
  • 备份机制:建立定期备份机制
  • 配额管理:合理使用配额功能控制存储使用

注意事项

  1. 依赖关系:Ceph FS 依赖于 MDS 和 OSD 集群
  2. 内核支持:使用内核客户端需要支持 Ceph 的内核版本
  3. 权限控制:合理配置客户端访问权限
  4. 配额限制:配额是软限制,不是硬限制

总结

Ceph FS 提供了完整的 POSIX 兼容文件系统功能,适用于各种需要共享文件存储的场景。通过合理配置和管理 Ceph FS,可以为用户提供高性能、高可用的分布式文件系统服务。在实际使用中,应根据具体需求选择合适的配置参数和管理策略。

参考文档

  1. Ceph 官方文档 - CephFS
  2. Ceph 官方文档 - 文件系统管理
  3. Ceph 官方文档 - CephFS 客户端

温馨提示

由于网络环境或文件存储等因素,若相关文件或图片链接暂时无法访问,您也可以通过访问张师傅的好来斯技术博客获取更多相关资源和最新信息。

本篇文章原始链接:

复制代码
https://www.howlaisi.com/categories/ceph/ceph-fs-ming-ling-xiang-jie
相关推荐
yyyyy_abc1 天前
ceph学习笔记
笔记·ceph·学习
自由且自律3 天前
ceph实战,基于docker部署
运维·ceph·docker·容器·云计算
老wang你好5 天前
Ceph存储全攻略:RBD、CephFS与RGW详解
ceph
珂玥c7 天前
Ceph集群新增osd
ceph
老wang你好8 天前
Ceph分布式存储系统全解析
ceph
一个行走的民21 天前
分布式系统中 Map 增量(Delta)是否需要持久化
ceph
一个行走的民23 天前
BlueStore 核心原理与关键机制
ceph
奋斗的小青年I25 天前
Proxmox VE Ceph 超融合集群落地实战
windows·ceph·vmware·pve·超融合·proxmox
一个行走的民25 天前
深度剖析 Ceph PG 分裂机制:原理、底层、实操、影响、线上避坑(最全完整版)
ceph·算法
一个行走的民25 天前
Ceph 核心概念精讲:彻底搞懂 PG、PGP、pg_num、pgp_num
ceph