一、判断题(共 5 题,每题 2 分,共 10 分)
评分标准:判断正确得 2 分,判断错误不得分。
1. Ceph 的底层 RADOS 是一个对象存储集群,RGW、RBD、CephFS 三种接口都是在 RADOS 之上抽象出来的,它们最终的数据都存储在 RADOS 中。
2. BlueStore 相比 FileStore 的一个重要优势是直接管理裸设备,绕过了内核 VFS 层,避免了 Journal 双写问题,从而降低了写入延迟。
3. Cephx 认证系统的主要作用是对客户端与服务之间的传输内容进行加密,确保数据在网络传输过程中的安全性。
4. 客户端 keyring 文件中的 caps 字段决定了客户端的实际权限,修改本地 keyring 文件的 caps 即可改变客户端的操作权限。
5. RBD 块设备可以被多个节点同时挂载使用,适合多节点共享数据的场景。
二、多项选择题(共 10 题,每题 5 分,共 50 分)
评分标准:本题均为多选题。少选可得一半分(即 2.5 分),多选、错选不得分。
1. 以下关于存储分类和 Ceph 三种接口的说法,哪些是正确的?
A. SAN 提供网络块设备,典型代表是 FC SAN 和 iSCSI,但不直接提供文件系统
B. RBD 提供块设备抽象,适合多节点同时共享读写
C. RGW 是无状态的对象存储网关,兼容 AWS S3 和 OpenStack Swift 接口
D. CephFS 提供分布式文件系统,由 MDS 管理元数据,OSD 存储真实数据
2. 以下属于 Ceph 数据写入流程步骤的有哪些?
A. 文件被切分为多个对象(默认 4MB)
B. CRUSH 算法将对象路由至某个 PG
C. Primary OSD 收到数据后串行依次转发给 Replica
D. 所有副本确认写入成功后,Primary 回复客户端 ACK
3. 关于 PG(Placement Group)的作用,以下说法正确的有哪些?
A. PG 是对象与 OSD 之间的中间层,用于聚合大量对象
B. 引入 PG 后,OSD 状态变化时只需维护 PG 级别的映射表,无需重新计算所有对象映射
C. PG 数量越多越好,可以提升集群性能
D. PG 通过哈希算法将大量对象聚合为固定数量的逻辑分组
4. 关于 BlueStore 与 FileStore 的对比,以下哪些说法是正确的?
A. BlueStore 直接管理裸设备,不经过内核 VFS 层
B. BlueStore 采用 RocksDB 管理元数据,支持海量小对象
C. FileStore 原生支持 CRC32/XXHASH 数据校验,BlueStore 不支持
D. BlueStore 的磁盘空间利用率接近 100%,无文件系统开销
5. 以下哪些是 OSD 设备可用的必要条件?
A. 设备不能有任何分区
B. 设备不能已被系统挂载使用
C. 设备上不能有 ext4/xfs 等文件系统签名
D. 设备容量必须大于等于 5GB
6. 关于 Ceph Pool 的说法,以下哪些是正确的?
A. Pool 是逻辑上的存储分区,不是物理分区
B. 不同 Pool 可以有不同的副本数、PG 数量和 CRUSH 规则
C. Pool 的 PG 数量计算公式为:OSD 数量 × 100 / 副本数量,然后近似取 2 的幂
D. 删除 Pool 时需要设置 mon_allow_pool_delete=true 并在命令中写两次池名
7. 关于 Ceph 用户管理的说法,以下哪些是正确的?
A. Ceph 用户格式为 TYPE.ID,如 client.admin 表示 client 类型的 admin 用户
B. 权限 r 表示读权限,w 表示写权限,x 表示执行权限,* 表示全部权限
C. 创建用户时如果用户已存在,ceph auth add 会直接返回不报错
D. 客户端仅从 keyring 文件中读取 key 值进行认证,不依赖本地 caps 字段
8. 关于 RBD 快照管理的说法,以下哪些是正确的?
A. 快照是 RBD 镜像在某个特定时刻的只读副本
B. 回滚前必须先解除客户端的映射,否则会导致文件系统视角和块设备视角不一致
C. 快照存储在独立的存储系统中,适合异地灾备
D. 可以通过 rbd snap limit 设置快照数量上限
9. 关于 CephFS 的说法,以下哪些是正确的?
A. CephFS 需要独立的元数据池和数据池
B. MDS 负责管理元数据,OSD 存储真实数据对象
C. CephFS 可以通过设置 max_mds 实现多活模式,多个 MDS 同时处理元数据请求
D. CephFS 和 RBD 一样,提供的是盘(块设备),需格式化后挂载使用
10. 关于 Kubernetes 通过 CSI 对接 Ceph 的说法,以下哪些是正确的?
A. Kubernetes v1.31+ 已移除内置的 cephfs 卷插件,推荐使用 Ceph CSI 驱动
B. 使用 RBD 时,所有 K8s 节点需加载 rbd 内核模块
C. Ceph CSI 的 StorageClass 中 imageFeatures 必须配置 layering
D. RBD 对应的 PVC accessModes 应设置为 ReadWriteMany 以支持多节点同时读写
三、简答题(共 5 题,每题 8 分,共 40 分)
评分标准:根据答案完整性酌情给分,满分 8 分。
1. 请写出在 Ceph 集群中创建一个名为 pool01、PG 数量为 256 的存储池的完整操作步骤,包括:如何计算 PG 数量、查看存储池详情、修改副本数为 2、设置最大对象数为 1000 的配额限制,以及删除该存储池时需要满足的条件和完整命令。
2. 请写出将一台新主机(如 ceph52)添加到 Ceph 集群的完整操作步骤,包括:SSH 免密配置、添加主机并打上 _admin 标签、验证方法。同时说明移除一台主机时的正确操作流程(排空与移除)。
3. 请说明 RBD 镜像从创建到客户端挂载使用的完整流程(包括服务端和客户端的关键操作步骤),并说明块设备为什么不能被多个节点同时使用。
4. 请说明 Ceph 客户端 keyring 文件的查找顺序(指定用户和不指定用户两种情况),并解释为什么修改本地 keyring 文件的 caps 字段不会影响实际权限。
5. 请说明 Ceph 对接 Kubernetes 的两种存储方式(RBD 和 CephFS)的主要区别,包括 PVC accessModes 差异以及部署时的关键配置区别。