一、集群状态与基本信息

类别

命令

举例

说明

集群状态查看

ceph -s

ceph -s

查看集群整体状态

ceph health detail

ceph health detail

查看详细健康状态与警告

ceph df

ceph df

查看集群存储使用情况

ceph osd df

ceph osd df

查看每个 OSD 使用情况

ceph osd tree

ceph osd tree

查看 OSD 树状结构

ceph osd stat

ceph osd stat

查看 OSD 简要状态

ceph osd status

ceph osd status

查看 OSD 详细状态(含读写)

ceph osd perf

ceph osd perf

查看 OSD 延迟统计


二、主机与节点管理

类别

命令

举例

说明

主机管理

ceph orch host ls

ceph orch host ls

列出集群所有主机

ceph orch host add <host>

ceph orch host add ceph142

添加主机到集群

ceph orch host drain <host>

ceph orch host drain ceph143

驱逐主机上的服务

ceph orch host rm <host>

ceph orch host rm ceph143

移除主机

ceph orch device ls

ceph orch device ls

查看所有主机上的设备


三、OSD 管理

类别

命令

举例

说明

OSD 管理

ceph orch daemon add osd <host>:<device>

ceph orch daemon add osd ceph141:/dev/sdb

添加物理设备作为 OSD

ceph orch daemon stop osd.{id}

ceph orch daemon stop osd.4

停止指定 OSD

ceph orch daemon start osd.{id}

ceph orch daemon start osd.4

启动指定 OSD

ceph orch daemon rm osd.{id} --force

ceph orch daemon rm osd.6 --force

强制移除 OSD

ceph osd out {id}

ceph osd out 4

将 OSD 标记为 out

ceph osd in {id}

ceph osd in 4

将 OSD 重新标记为 in

ceph osd down {id}

ceph osd down 4

临时将 OSD 标记为 down

ceph osd purge {id} --force

ceph osd purge 6 --force

强制清理 OSD 数据与配置


四、存储池(Pool)管理

类别

命令

举例

说明

存储池操作

ceph osd pool create <poolname> [pg] [pgp] [rule]

ceph osd pool create mypool 32 32

创建存储池

ceph osd pool ls [detail]

ceph osd pool ls detail

列出所有存储池(详细信息)

ceph osd pool rename <old> <new>

ceph osd pool rename xixi hehe

重命名存储池

ceph osd pool set <pool> size <num>

ceph osd pool set mypool size 2

设置存储池副本数

ceph osd pool set <pool> pg_num <num>

ceph osd pool set mypool pg_num 64

设置 PG 数量

ceph osd pool delete <pool> <pool> --yes-i-really-mean-it

ceph osd pool delete mypool mypool ...

删除存储池(需确认)

ceph osd pool application enable <pool> <app>

ceph osd pool enable sun rbd

为存储池启用应用(如 rbd)

ceph osd pool set-quota <pool> max_objects <num>

ceph osd pool set-quota mypool max_objects 30000

设置存储池最大对象数

ceph osd pool set-quota <pool> max_bytes <bytes>

ceph osd pool set-quota mypool max_bytes 10485760

设置存储池最大容量


五、RBD 块设备管理

类别

命令

举例

说明

RBD 块设备

rbd create -s <size> <pool>/<image>

rbd create -s 10G sun/mysql80

创建块设备

rbd ls -p <pool> -l

rbd ls -p sun -l

列出存储池中的块设备

rbd info <pool>/<image>

rbd info sun/mysql80

查看块设备详细信息

rbd resize -s <size> <pool>/<image>

rbd resize -s 20G sun/mysql80

调整块设备大小

rbd rename <pool>/<old> <new>

rbd rename sun/linux99 LINUX99

重命名块设备

rbd rm <pool>/<image>

rbd rm sun/LINUX99

删除块设备

rbd map <pool>/<image>

rbd map sun/node-exporter

映射块设备到本地

rbd unmap <device>

rbd unmap /dev/rbd0

取消块设备映射

rbd showmapped

rbd showmapped

查看已映射的块设备

rbd bench --io-type <type> <pool>/<image>

rbd bench --io-type write linux99 --pool=sunjiawei

测试块设备性能


六、快照与克隆管理

类别

命令

举例

说明

快照管理

rbd snap create <pool>/<image>@<snap>

rbd snap create sun/mysql80@backup

创建快照

rbd snap ls <pool>/<image>

rbd snap ls sun/mysql80

列出快照

rbd snap rollback <pool>/<image>@<snap>

rbd snap rollback sun/mysql80@backup

回滚到快照

rbd snap rm <pool>/<image>@<snap>

rbd snap rm sun/mysql80@backup

删除快照

rbd snap purge <pool>/<image>

rbd snap purge sun/mysql80

删除所有快照

rbd snap protect <pool>/<image>@<snap>

rbd snap protect sun/mysql80@backup

保护快照(防删除)

rbd snap unprotect <pool>/<image>@<snap>

rbd snap unprotect sun/mysql80@backup

取消保护

rbd clone <pool>/<image>@<snap> <pool>/<newimage>

rbd clone sun/mysql80@backup sun/mysql-clone

克隆快照为新镜像

rbd flatten <pool>/<image>

rbd flatten sun/mysql-clone

使克隆镜像独立


七、客户端挂载与文件系统

类别

命令

举例

说明

客户端挂载

mkfs.xfs /dev/rbd0

mkfs.xfs /dev/rbd0

格式化块设备为 XFS

mkfs.ext4 /dev/rbd0

mkfs.ext4 /dev/rbd0

格式化块设备为 EXT4

mount /dev/rbd0 /mnt

mount /dev/rbd0 /mnt

挂载块设备

resize2fs /dev/rbd0

resize2fs /dev/rbd0

扩展 ext4 文件系统

xfs_growfs /mountpoint

xfs_growfs /opt

扩展 xfs 文件系统

CephFS 挂载

mount -t ceph <mon-ip>:<port>:/ <mountpoint> -o name=<user>,secret=<key>

mount -t ceph 10.0.0.141:6789:/ /data -o name=cephfs,secret=xxx

使用内核模块挂载 CephFS

ceph-fuse -n <user> -m <mon-ip> <mountpoint> -c <keyring>

ceph-fuse -n client.cephfs -m 10.0.0.141:6789 /mnt -c /etc/ceph/ceph.client.cephfs.keyring

使用 FUSE 挂载 CephFS


八、CephFS 文件系统管理

类别

命令

举例

说明

CephFS 操作

ceph fs new <fsname> <meta-pool> <data-pool>

ceph fs new sun-cephfs cephfs_metadata cephfs_data

创建 CephFS 文件系统

ceph fs ls

ceph fs ls

列出所有 CephFS

ceph fs status <fsname>

ceph fs status sun-cephfs

查看文件系统状态

ceph mds stat

ceph mds stat

查看 MDS 状态

ceph orch apply mds <fsname>

ceph orch apply mds sun-cephfs

部署 MDS 服务


九、RGW 对象存储管理

类别

命令

举例

说明

RGW 用户管理

radosgw-admin user create

radosgw-admin user create --uid "sunjiawei" --display-name "尹正杰"

创建 RGW 用户

radosgw-admin user list

radosgw-admin user list

列出所有用户

radosgw-admin user info

radosgw-admin user info --uid sunjiawei

查看用户信息

radosgw-admin subuser create

radosgw-admin subuser create --uid=sun --subuser=sun:swift --access=full

创建子用户

RGW 服务管理

ceph orch apply rgw <name>

ceph orch apply rgw sun

部署 RGW 服务

ceph orch ps --daemon_type rgw

ceph orch ps --daemon_type rgw

查看 RGW 守护进程状态

S3 客户端操作

s3cmd --configure

s3cmd --configure

配置 s3cmd

s3cmd mb s3://<bucket>

s3cmd mb s3://sun-linux99-bucket

创建存储桶

s3cmd put <file> s3://<bucket>/

s3cmd put file.mp4 s3://bucket/

上传文件

s3cmd get s3://<bucket>/<file> <path>

s3cmd get s3://bucket/file.mp4 /tmp/

下载文件

s3cmd ls

s3cmd ls

列出存储桶

s3cmd la

s3cmd la

列出存储桶中的对象

s3cmd del s3://<bucket>/<file>

s3cmd del s3://bucket/file

删除对象

s3cmd rb s3://<bucket> -r

s3cmd rb s3://bucket -r

递归删除存储桶

s3cmd setpolicy <policy> s3://<bucket>

s3cmd setpolicy policy.json s3://bucket

设置存储桶策略

s3cmd info s3://<bucket>

s3cmd info s3://bucket

查看存储桶或对象信息


十、用户与认证管理

类别

命令

举例

说明

用户管理

ceph auth get <user>

ceph auth get client.admin

查看用户密钥和权限

ceph auth list

ceph auth list

列出所有用户

ceph auth add <user> [caps]

ceph auth add client.linux99 mon 'allow r' osd 'allow rwx pool=sun'

创建用户并授权

ceph auth get-or-create <user> [caps]

ceph auth get-or-create client.sun mon 'allow r' osd 'allow rwx'

创建用户并返回密钥

ceph auth get-or-create-key <user>

ceph auth get-or-create-key client.k8s

仅返回用户密钥

ceph auth print-key <user>

ceph auth print-key client.sun

打印用户密钥

ceph auth caps <user> [new-caps]

ceph auth caps client.sun mon 'allow rx' osd 'allow r pool=sun'

修改用户权限

ceph auth del <user>

ceph auth del client.sun

删除用户

认证文件管理

ceph auth export -o <file>

ceph auth export client.k3s -o ceph.client.k3s.keyring

导出用户认证信息

ceph auth import -i <file>

ceph auth import -i ceph.client.k3s.keyring

导入用户认证信息

ceph-authtool --create-keyring <file>

ceph-authtool --create-keyring ceph.client.sunjiawei.keyring

创建空认证文件


十一、PG 与 CRUSH 管理

类别

命令

举例

说明

PG 管理

ceph pg stat

ceph pg stat

查看所有 PG 状态统计

ceph pg ls-by-pool <pool>

ceph pg ls-by-pool xixi

查看指定存储池的 PG

ceph pg dump

ceph pg dump

导出所有 PG 详细信息

ceph pg map <pg_id>

ceph pg map 22.5

查看 PG 映射的 OSD

ceph pg dump_stuck

ceph pg dump_stuck stale

列出异常状态的 PG

CRUSH 规则管理

ceph osd getcrushmap -o <file>

ceph osd getcrushmap -o crushmap.file

导出 CRUSH map

crushtool -d <file> -o <text_file>

crushtool -d crushmap.file -o crushmap.txt

解码 CRUSH map 为文本

crushtool -c <text_file> -o <bin_file>

crushtool -c crushmap.txt -o new_crushmap

编译文本为 CRUSH map

ceph osd setcrushmap -i <bin_file>

ceph osd setcrushmap -i new_crushmap

应用新的 CRUSH map

ceph osd crush rule ls

ceph osd crush rule ls

列出所有 CRUSH 规则

ceph osd crush rule dump

ceph osd crush rule dump

输出 CRUSH 规则详情


十二、集群维护与性能测试

类别

命令

举例

说明

集群控制

ceph osd pause

ceph osd pause

暂停集群接收数据

ceph osd unpause

ceph osd unpause

恢复集群接收数据

性能测试

rados bench -p <pool> <time> write ...

rados bench -p sunjiawei 30 write -b 4M -t 16 --no-cleanup

测试存储池写性能

rados bench -p <pool> <time> seq ...

rados bench -p sunjiawei 10 seq -t 16

测试顺序读性能

rados bench -p <pool> <time> rand ...

rados bench -p sunjiawei 10 rand -t 16

测试随机读性能

fio ...

fio --name=randwrite --rw=randwrite ...

使用 FIO 测试文件系统性能

time s3cmd put <file> s3://<bucket>/

time s3cmd put bigfile.tar.gz s3://bucket/

测试 RGW 上传速度

time s3cmd get s3://<bucket>/<file>

time s3cmd get s3://bucket/bigfile.tar.gz /tmp/

测试 RGW 下载速度

清理与维护

rados -p <pool> cleanup

rados -p sunjiawei cleanup

清理存储池测试数据

ceph balancer status

ceph balancer status

查看平衡器状态

ceph config get mgr mgr/balancer/sleep_interval

ceph config get mgr mgr/balancer/sleep_interval

查看平衡器间隔

ceph config set mgr mgr/balancer/sleep_interval <sec>

ceph config set mgr mgr/balancer/sleep_interval 120

设置平衡器间隔