ceph维护常用命令合集

#存储池管理
ceph osd lspools                     # 列出所有存储池ID
ceph osd pool ls                      # 列出存储池名称
ceph osd pool ls detail               # 查看存储池详细信息
ceph osd pool stats mypool            # 查看mypool池的统计信息
ceph osd pool create testpool 32 32   # 创建PG数为32的存储池testpool
ceph osd pool rename testpool magedu-nginx-static  # 重命名存储池为magedu-nginx-static
ceph osd pool get magedu-nginx-static nodelete  # 启用存储池防删除保护
ceph osd pool rm magedu-nginx-static magedu-nginx-static  # 尝试删除存储池(需确认)
ceph osd pool rm magedu-nginx-static magedu-nginx-static --yes-i-really-really-mean-it  # 强制删除存储池
ceph tell mon.* injectargs --mon-allow-pool-delete=false  # 禁止所有存储池删除操作


# 配额管理
ceph osd pool get-quota mypool        # 查看mypool池的配额设置
ceph osd pool set-quota mypool max_objects 10000  # 设置最大对象数量为10000
ceph osd pool set-quota mypool max_bytes 32212254720  # 设置容量配额为30GB (30*1024^3)

# 存储池配置查询
ceph osd pool get mypool size         # 查看数据副本数
ceph osd pool get mypool pg           # 查看PG数量(已弃用)
ceph osd pool get mypool min_size     # 查看最小可用副本数
ceph osd pool get mypool pg_num       # 查看当前PG数量
ceph osd pool get mypool pgp_num      # 查看PG放置组数量

# PG配置管理
ceph osd pool set testpool pg_num 64  # 修改PG数量为64
ceph osd pool set testpool pgp_num 64 # 修改PGP数量为64
ceph osd pool set testpool nopgchange true  # 锁定PG参数防止修改
ceph osd pool set testpool pg_num 128 # 尝试修改PG数(将被拒绝)
ceph osd pool set testpool nopgchange false  # 解除PG修改锁定

# 维护配置
ceph osd pool get mypool noscrub      # 检查是否禁用普通擦洗
ceph osd pool get mypool nodeep-scrub # 检查是否禁用深度擦洗
ceph osd pool set mypool nodeep-scrub true  # 禁用深度擦洗功能
ceph daemon osd.5 config show         # 查看OSD.5的配置参数

# 快照管理
ceph osd pool mksnap testpool magedu-m43-20250112  # 创建存储池快照
rados -p testpool mksnap 333          # 使用rados创建快照
rados lssnap -p testpool              # 列出所有快照
rados -p testpool put testfile /etc/hosts  # 上传文件到存储池
rados -p testpool ls                  # 列出存储池内所有对象
rados rollback -p testpool testfile 333  # 将文件回滚到快照点
ceph osd pool rmsnap testpool 333     # 删除指定快照

# 压缩配置
ceph osd pool get testpool compression_mode  # 查看压缩模式
ceph daemon osd.0 config show | grep compression  # 检查OSD压缩配置

# 用户认证管理
ceph auth list                        # 列出所有认证用户及权限
ceph auth add client.tom mon 'allow r' osd 'allow rwx pool=mypool'  # 创建新用户tom
ceph auth get-or-create-key client.tom 'allow rwx pool=mypool'  # 获取用户密钥
ceph auth print-key client.tom        # 打印用户密钥
ceph auth caps client.jack mon 'allow r' osd 'allow rw pool=mypool'  # 修改用户权限
ceph auth del client.jack             # 删除用户
ceph auth import -i ceph.keyring      # 导入密钥环文件(需指定文件路径)
ceph-authtool ceph.client.keyring --import-keyring ceph.client.user1.keyring  # 合并密钥环

# RBD块设备管理
rbd pool init rbd-data1               # 初始化存储池支持RBD功能
rbd create magedu-mysql-master --size 3G --pool rbd-data1 --image-format 2 --image-feature layering  # 创建RBD镜像
rbd info -p rbd-data1  --image magedu-mysql-master # 查看镜像信息
rbd feature disable rbd-data1/data-ima1 fast-diff  # 禁用fast-diff特性
rbd --user shijie -p rbd-data1 map data-img2  # 映射块设备到本地
ceph --user shijie -s                 # 使用指定用户查看集群状态
rbd showmapped                        # 显示已映射的RBD设备
rbd --user shijie -p rbd-data1 unmap data-img2  # 卸载块设备
rbd rm --pool rbd-data1 --image pppe  # 删除镜像
rbd ls -p rbd-data1 -l                # 列出存储池中所有镜像及详情
rbd resize --pool rbd-data1 --image data-img2 --size 10G  # 调整镜像容量
rbd status --pool rbd --image data-img2  # 查看镜像状态
rbd trash move --pool rbd-data1 --image magedu-mysql-slave  # 将镜像移入回收站
rbd trash list --pool rbd-data1       # 列出回收站内容
rbd trash restore --pool rbd-data1 --image data-img2 --image-id <ID>  # 从回收站恢复镜像

# RBD快照管理
rbd snap create --pool rbd-data1 --image data-img2 --snap imge-2-snap-2023  # 创建镜像快照
rbd snap rollback --pool rbd-data1 --image magedu-mysql-master --snap 快照名称  # 回滚到快照
rbd snap remove --pool rbd-data1 --image data-img2 --snap 快照名称  # 删除快照
rbd snap limit set --pool rbd-data1 --image mageedu-mysql-master --limit 30  # 设置快照数量上限
rbd snap limit clear --pool rbd-data1 --image mageedu-mysql-master  # 清除快照数量限制

# CephFS文件系统管理
ceph fs status mycephfs               # 查看文件系统状态
ceph mds stat                         # 查看MDS服务状态
ceph-deploy mds create ceph-mgr1      # 部署MDS服务
ceph osd pool create cephfs-metadata 32 32  # 创建元数据存储池
ceph osd pool create cephfs-data 64 64  # 创建数据存储池
ceph fs new mycephfs cephfs-metadata cephfs-data  # 创建文件系统
mount -t ceph 192.168.100.70:6789,192.168.100.71:6789,192.168.100.72:6789:/ /data -o name=yanyan,secret=AQAHSYpnKZOEERAAVAN4b+VniiBQXIJQE2JjfQ==  # 挂载CephFS

Comment