Ceph 面试命令

一、集群基础状态(必背)

# 查看集群简要状态【面试最高频】
ceph -s
ceph status

# 查看集群健康详情,输出警告/错误原因
ceph health
ceph health detail

# 查看集群全局配置
ceph config dump

# 查看集群版本
ceph versions

# 查看集群空间使用
ceph df
ceph df detail

# 等待集群达到健康状态(运维脚本常用)
ceph -w           # 实时监控集群事件,滚动输出日志

面试考点:ceph -sHEALTH_OK/WARN/ERRceph -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/out vs up/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

面试高频问答配套命令速记

  1. 看集群健康ceph -s / ceph health detail
  2. 看 OSD 状态ceph osd tree
  3. 看 PG 状态ceph pg stat
  4. 集群空间ceph df
  5. 实时观察集群事件ceph -w
  6. 对象落在哪些 OSDceph osd map <pool> <obj>
  7. Pool PG 异常ceph pg dump | grep -v active+clean
  8. 临时禁止重平衡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 看阻塞操作
上一篇
下一篇