一、集群基础状态(必背)
# 查看集群简要状态【面试最高频】
ceph -s
ceph status
# 查看集群健康详情,输出警告/错误原因
ceph health
ceph health detail
# 查看集群全局配置
ceph config dump
# 查看集群版本
ceph versions
# 查看集群空间使用
ceph df
ceph df detail
# 等待集群达到健康状态(运维脚本常用)
ceph -w # 实时监控集群事件,滚动输出日志
面试考点:
ceph -s看HEALTH_OK/WARN/ERR;ceph -w观察数据重平衡。
二、Monitor (MON) 监视器
# 查看mon节点状态
ceph mon stat
ceph mon dump
# 查看mon成员列表
ceph mon getmap
# 添加/删除mon
ceph mon add <name> <ip>
ceph mon remove <name>
# 查看mon quorum(仲裁)
ceph quorum_status
考点:mon 奇数节点,Paxos 仲裁,过半存活集群可用。
三、OSD 对象存储守护进程(面试重点)
# OSD整体状态
ceph osd stat
ceph osd tree # 树状展示osd、host、磁盘,看up/in状态【高频】
ceph osd dump # osd完整元数据
# 查看osd元数据
ceph osd metadata <osd-id>
# 查看osd磁盘使用率
ceph osd df
ceph osd df tree
# 标记osd down/out/in
ceph osd out <osd-id> # osd out:移出集群,开始数据迁移(不停止进程)
ceph osd in <osd-id> # osd in:加回集群
ceph osd down <osd-id> # 标记down
# 彻底删除osd
ceph osd destroy <osd-id> --yes-i-really-mean-it
ceph osd purge <osd-id> --yes-i-really-mean-it
# 权重管理(reweight影响数据分布)
ceph osd reweight <osd-id> 0.5
ceph osd reweight-by-utilization
# 暂停/恢复osd重平衡(故障维护)
ceph osd set norebalance
ceph osd unset norebalance
# 其他标记位
ceph osd set noscrub # 关闭清洗
ceph osd unset noscrub
ceph osd set noout
ceph osd unset noout
面试必问:
osd in/outvsup/down- noout、norebalance、noscrub 参数作用;故障维护场景。
四、Pool 存储池(核心考点)
# 查看pool列表
ceph osd pool ls
ceph osd pool ls detail
# 创建pool
# replicated:副本池;erasure:纠删码池
ceph osd pool create <pool-name> <pg-num> <pgp-num> replicated
ceph osd pool create <pool-name> <pg-num> <pgp-num> erasure <profile>
# 删除pool,必须加--yes-i-really-really-mean-it保护
ceph osd pool rm <pool-name> <pool-name> --yes-i-really-really-mean-it
# pool 设置副本数
ceph osd pool set <pool> size 3
# 设置pgp_num
ceph osd pool set <pool> pgp_num 128
# 获取pool参数
ceph osd pool get <pool> size
ceph osd pool get <pool> pg_num
# pool重命名
ceph osd pool rename old new
# pool配额
ceph osd pool set-quota <pool> max_bytes 100G
ceph osd pool set-quota <pool> max_objects 10000
# 查看pool内对象统计
ceph osd pool stats <pool-name>
面试重点: pg_num /pgp_num 区别;副本池 vs 纠删码池;pg 状态(active+clean)。
五、PG 放置组(面试高频难点)
# PG汇总状态
ceph pg stat
# 查看全部pg详细状态
ceph pg dump
# 查询某个pg详情
ceph pg <pg-id> query
# 查看异常pg
ceph pg dump | grep -v active+clean
# pg 手动修复(谨慎)
ceph pg repair <pg-id>
# 模拟pg回滚
ceph pg scrub <pg-id>
常见 PG 状态面试:
active+clean正常;degraded降级;peering对等;recovering恢复;stuck卡住。
六、RBD 块存储(云主机磁盘,k8s/pvc 使用)
# rbd pool必须先启用rbd特性
ceph osd pool application enable <pool> rbd
# 镜像操作
rbd ls -p <pool>
rbd info <pool>/<image>
# 创建块镜像
rbd create <pool>/img01 --size 10G
# 调整大小
rbd resize --size 20G <pool>/img01
# 删除镜像
rbd rm <pool>/img01
# 快照
rbd snap create <pool>/img01@snap1
rbd snap ls <pool>/img01
rbd snap rollback <pool>/img01@snap1
rbd snap rm <pool>/img01@snap1
# 保护快照→克隆
rbd snap protect <pool>/img01@snap1
rbd clone <pool>/img01@snap1 <pool>/clone01
# 查看rbd映射(客户端)
rbd showmapped
rbd map <pool>/img01
rbd unmap /dev/rbd0
考点:rbd 快照、克隆、保护快照;rbd-feature;layering。
七、CephFS 文件存储
# 创建cephfs,需要两个pool:data、metadata
ceph fs new cephfs meta-pool data-pool
# 查看文件系统
ceph fs ls
ceph fs status
# 设置cephfs最大mds数量
ceph fs set cephfs max_mds 2
# mds状态
ceph mds stat
ceph mds dump
八、RGW 对象存储 S3 兼容
# rgw实例状态
ceph -s | grep rgw
# 创建rgw用户
radosgw-admin user create --uid=user01 --display-name="user01"
# 查看用户
radosgw-admin user info --uid=user01
# 列出bucket
radosgw-admin bucket list
radosgw-admin bucket stats
九、RADOS 底层对象操作(rados 命令)
# 查看pool中的对象
rados -p <pool> ls
# put/get对象
rados -p test put obj1 test.txt
rados -p test get obj1 test.out
# 删除对象
rados -p test rm obj1
十、故障排查 & 日志(面试故障题)
# 查看集群告警
ceph alarm list
# 查看日志
ceph log last 20
# 获取crush map(CRUSH算法!面试重点)
ceph osd crush dump
ceph osd crush show-tunables
# 导出/导入crush map
ceph osd crush get > crush.txt
ceph osd crush set crush.txt
# crush增加host、bucket
ceph osd crush add-bucket host01 host
# 定位对象,看这个对象存到哪几个osd
ceph osd map <pool> <object-name>
CRUSH 考点:crush map、bucket、rule,数据分布算法。
十一、认证 keyring
ceph auth list
ceph auth get client.admin
ceph auth get-or-create client.admin mon 'allow *' osd 'allow *' mds 'allow *' -o /etc/ceph/ceph.client.admin.keyring
面试高频问答配套命令速记
- 看集群健康:
ceph -s/ceph health detail - 看 OSD 状态:
ceph osd tree - 看 PG 状态:
ceph pg stat - 集群空间:
ceph df - 实时观察集群事件:
ceph -w - 对象落在哪些 OSD:
ceph osd map <pool> <obj> - Pool PG 异常:
ceph pg dump | grep -v active+clean - 临时禁止重平衡:
ceph osd set norebalance
常见报错对应命令(面试口述)
- HEALTH_WARN too many PGs per OSD:调整 pg_num
- PG stuck:
ceph pg repair <pgid> - OSD down:
ceph osd tree看状态,检查磁盘、进程 - slow ops:
ceph -w看阻塞操作