精读笔记(RHCA 英文教材)· CL260 Chapter 14 Comprehensive Review(综合复习)
大约 8 分钟
精读笔记(RHCA 英文教材)· CL260 Chapter 14 Comprehensive Review(综合复习)
教材原文:RHCA 官方英文教材(PDF 第 511~564 页)(OCR 整书版已从本站移除,本页为章节精读) 性质说明:本章为全书综合复习,基于 Ch1~13 全部知识点,无新概念;内容=逐章目标回顾 + 5 个端到端 Lab(lab: comprehensive-review1~5)。 配套精读:本章可作为 CL260 应试自测清单——每个 Lab 都要求用前面章节命令独立完成。
Chapter Goal / Objectives(原文+译)
- GOAL: Review tasks from Cloud Storage with Red Hat Ceph Storage(回顾本课程全部技能).
- OBJECTIVES: 回顾 Cloud Storage with Red Hat Ceph Storage 全部任务。
- Labs 清单:① Deploying Red Hat Ceph Storage(cephadm 全新建集群);② Configuring Red Hat Ceph Storage(配置库/CRUSH/池/EC/用户);③ Deploying CephFS(MDS+挂载);④ Deploying and Configuring Block Storage with RBD(镜像/克隆/双集群 RBD 镜像);⑤ Deploying and Configuring RADOS Gateway(多站点 RGW+S3/Swift 用户桶)。
逐章目标回顾(Ch1~13 应会清单)
- Ch1:Ceph 架构(数据组织/分布/客户端访问)、云存储生态 persona、对象存储集群、管理接口选型。
- Ch2:cephadm CLI 部署集群(预检、bootstrap、service spec)。
- Ch3:集群配置(主设置、MON/quorum、cephx、public/cluster 网络)。
- Ch4:OSD(ceph-volume/BlueStore)、复制池 vs EC 池。
- Ch5:CRUSH map 管理与 OSD map 定制(pg-upmap)。
- Ch6:RBD 命令行管理、快照/克隆、export/import。
- Ch7:RBD 镜像(双集群灾备)与 iSCSI 网关。
- Ch8:RGW 部署、multisite(两地域多集群)。
- Ch9:RGW 的 S3/Swift REST API 访问。
- Ch10:CephFS 部署、快照/复制/内存/客户端访问。
- Ch11:日常运维(状态/监控、单服务与整集群启停、换/修 MON/OSD/PG)。
- Ch12:性能指标与调优(scrub/backfill/recovery)+ 组件排障。
- Ch13:OpenStack/OpenShift 存储后端对接(架构层)。
Lab 1 · Deploying Red Hat Ceph Storage(comprehensive-review1,评分项)
环境:干净教室环境含本地 registry(registry.lab.example.com, user/pass registry/redhat);clienta+serverc+serverd+servere 四节点(172.25.250.10~14)。
- 装工具与预检(在 serverc):
yum install cephadm-ansible
cd /usr/share/cephadm-ansible && cat hosts # 写四台主机 FQDN
ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin="- 写 service spec
initial-config-primary-cluster.yaml:service_type: host(四台,addr+hostname)、service_type: mon(clienta+serverc+serverd+servere)、mgr(同样四台)、osd(service_id: default_drive_group,/dev/vdb,/vdc,/vdd 三盘 data device;journal 大小 1024 MiB;public_network 172.25.250.0/24、cluster_network 172.25.249.0/24)、rgw(serverc+serverd 各 1,service_idrealm.zone)。 - bootstrap:
cephadm bootstrap --mon-ip=172.25.250.12 --apply-spec=initial-config-primary-cluster.yaml \
--initial-dashboard-password=redhat --dashboard-password-noupdate --allow-fqdn-hostname \
--registry-url=registry.lab.example.com --registry-username=registry --registry-password=redhat- 验证
ceph statusHEALTH_OK(9 OSD 9 up/in);给 clienta 打_admin标签:ceph orch host label add clienta.lab.example.com _admin;把/etc/ceph/ceph.conf与ceph.client.admin.keyringscp 到 clienta(admin 节点);再手动把 servere 的 /dev/vde、/dev/vdf 加为数据盘(ceph orch daemon add osd servere:/dev/vde或设备发现后 apply);lab grade comprehensive-review1校验。
Lab 2 · Configuring Red Hat Ceph Storage(comprehensive-review2)
- 配置库:
ceph config set mon osd_pool_default_pg_num 250,ceph config dump | grep验证。 - CRUSH rule:
ceph osd crush rule create-replicated onhdd default host hdd(目标 HDD OSD)。 - 池 rbd1:
ceph osd pool create rbd1 onhdd→ceph osd pool application enable rbd1 rbd→ceph osd pool set rbd1 size 5(副本 5)。 - 自建 CRUSH 层级:
ceph osd crush add-bucket default-4-lab root、add-bucket DC01 datacenter、firstfloor/secondfloor room、hostc/hostd host→ceph osd crush move DC01 root=default-4-lab、move firstfloor datacenter=DC01、move hostc room=firstfloor、move hostd room=secondfloor→ 把 OSD 移入 host 桶。 - EC:
ceph osd erasure-code-profile set cl260 k=2 m=1(2 数据块+1 编码块)→ceph osd pool create testec erasure cl260→application enable testec rgw。 - 用户+命名空间:
ceph auth get-or-create client.fortestec mon "allow r" osd "allow rw pool=testec namespace=docs"(写 keyring 到 /etc/ceph 绑定挂载目录);rados --id fortestec -p testec -N docs put/get/rm testdoc验证;上传 sample.ceph.conf 为对象 report。 - 容量比:
ceph osd dump | grep ratio(full 0.9 / backfillfull 0.9 / nearfull 0.86);ceph osd find osd.7定位主机 +ceph orch device ls --hostname=…列可用盘。
Lab 3 · Deploying CephFS(comprehensive-review3)
- 池与 FS:
ceph osd pool create cephfs.cl260-fs.data、cephfs.cl260-fs.meta→ceph fs new cl260-fs cephfs.cl260-fs.data cephfs.cl260-fs.meta→ceph orch apply mds cl260-fs --placement="2 serverc.lab.example.com serverd.lab.example.com"(2 个 MDS)。 - 客户端(clienta):
yum install ceph-common→ceph auth get-key client.admin | tee /root/secretfile→mount -t ceph serverc:/ /mnt/cephfs -o name=admin,secretfile=/root/secretfile。 - layout:
setfattr -n ceph.dir.layout.stripe_count -v 2 /mnt/cephfs/ceph01(目录级 layout,新建文件继承)→dd生成 10MB 文件 →getfattr -n ceph.file.layout看 stripe_unit=4194304 等;FUSE 侧 cephfuse 目录结构对照。 - 持久挂载:/etc/fstab 写
serverc:/ /mnt/cephfs ceph rw,seclabel,relatime,name=admin,secret=<key>,acl 0 0,mount -a验证。
Lab 4 · RBD 块存储(comprehensive-review4,双集群镜像+快照克隆+内核挂载)
环境:生产集群(clienta 侧,rbdpoolmode+rbdimagemode 两个池)+ 备份集群(serverf 侧)。
- 池模式镜像(one-way pool-mode):生产建
rbd create vm1 --size 128 --pool rbdpoolmode --image-feature=exclusive-lock,journaling→rbd mirror pool enable rbdpoolmode pool(mode=pool,镜像方式 journal)→rbd mirror pool peer bootstrap create --site-name prod rbdpoolmode > /mnt/pool_token_prod(token 拷到备份机)→ 备份侧ceph orch apply rbd-mirror --placement=serverf.lab.example.com→rbd mirror pool peer bootstrap import --site-name bck --direction rx-only rbdpoolmode /mnt/pool_token_prod→rbd -p rbdpoolmode ls等到 vm1 出现(主备状态用rbd mirror pool status验证 primary/secondary)。 - 镜像模式(image-mode):生产
rbd create vm2 --pool rbdimagemode+rbd mirror image enable rbdimagemode/vm2(one-way 默认用 snapshot 型镜像)→ peer bootstrap import 到备份集群验证。 - 本地 RBD 操作:对 rbd/data 建快照
beforeprod→rbd snap protect→rbd clone beforeprod prod1→rbd export rbd/data data.img→ 到 rbdimagemode 池rbd import data.img data→ 对新 data 再快照 beforeprod;rbd map --pool rbd data(内核挂载 /dev/rbd0)→mkfs.xfs+mount /dev/rbd0 /mnt/data→ 拷文件 →rbd export-diff(增量)→ rbdmap/fstab 配持久挂载/mnt/data。
Lab 5 · RADOS Gateway 多站点(comprehensive-review5)
- 主集群(serverc):
radosgw-admin realm create --rgw-realm=cl260 --default→zonegroup create --rgw-zonegroup=classroom --endpoints=http://serverc:80 --master --default→zone create --rgw-zone=main --endpoints=http://serverc:80 --access-key=replication --secret=secret(作为 zone 级复制凭据)→radosgw-admin user create --uid=repl.user --display-name="Replication User" --system --secret=secret --access-key=replication→radosgw-admin period update --commit→ceph orch apply rgw cl260-1 --realm=cl260 --zone=main --placement="1 serverc.lab.example.com"→ceph config set client.rgw rgw_zone main、rgw_dynamic_resharding false。 - 备集群(serverf):
radosgw-admin realm pull --url=http://serverc:80 --access-key=replication --secret=secret(拉 realm/period)→ zonegroup/zone 置默认 →radosgw-admin zone create --rgw-zonegroup=classroom --rgw-zone=fallback --endpoints=http://serverf:80(次 zone)→period update --commit→ 部署ceph orch apply rgw cl260-2 --realm=cl260 --zone=fallback --placement="1 serverf.lab.example.com"→ 配置 zone 名与关 resharding →radosgw-admin sync status(metadata/data 均 caught up)。 - S3/Swift 用户与对象:
radosgw-admin user create --uid=apiuser --display-name="s3 user" --access-key=review --secret=securekey→radosgw-admin subuser create --uid=apiuser --subuser=apiuser:swift --access=full --secret=secureospkey→ AWS CLI 配 review/securekey 建桶images→swift -V 1.0 -A http://serverc:80/auth/v1 -U apiuser:swift -K secureospkey upload images favicon-image(或 swift upload)→ 双站点数据自动复制。
全课程应试自检(把本章当 checklist)
- [ ] 能不看笔记走完 cephadm bootstrap+service spec 部署(含 registry、dashboard 密码、FQDN、网络段)。
- [ ] 能改配置库参数、建 CRUSH rule/桶层级、建复制池(改 size)与 EC 池(profile k/m)、建带 namespace caps 的用户并用 rados 验证。
- [ ] 能自建 CephFS(data/meta 池→fs new→orch apply mds)并用内核/FUSE 挂载、设目录 layout、写 fstab。
- [ ] 能完成双集群 RBD 镜像(pool-mode + image-mode、bootstrap peer token、rx-only 导入)与快照/克隆/export(-diff)/内核 map。
- [ ] 能搭 RGW realm/zonegroup/zone 多站点、创建 system 复制用户、secondary zone fallback、S3+Swift 双 API 建桶传对象。
命令速查表
| 用途 | 命令 |
|---|---|
| 预检 | ansible-playbook -i hosts cephadm-preflight.yml --extra-vars "ceph_origin=" |
| 集群引导 | cephadm bootstrap --mon-ip=<IP> --apply-spec=<spec>.yaml --initial-dashboard-password=… --allow-fqdn-hostname --registry-url=… |
| 服务编排 | ceph orch apply mon/mgr/rgw <svc> --placement=…;ceph orch daemon add osd <host>:/dev/vdX |
| 标签 | ceph orch host label add <host> _admin |
| CRUSH 规则 | ceph osd crush rule create-replicated <name> default host hdd |
| EC 档案 | ceph osd erasure-code-profile set cl260 k=2 m=1;… get cl260 |
| 池操作 | ceph osd pool create <p> <rule> / … erasure <profile>;application enable <p> <app>;pool set <p> size 5 |
| 用户+命名空间 | ceph auth get-or-create client.fortestec mon "allow r" osd "allow rw pool=testec namespace=docs" -o <file> |
| CephFS | ceph fs new <fs> <data-pool> <meta-pool>;ceph orch apply mds <fs> --placement="2 h1 h2" |
| 内核挂载 CephFS | mount -t ceph serverc:/ /mnt/cephfs -o name=admin,secretfile=/root/secretfile |
| 目录 layout | setfattr -n ceph.dir.layout.stripe_count -v 2 <dir>;查看 getfattr -n ceph.file.layout <file> |
| RBD 镜像对等 | rbd mirror pool peer bootstrap create --site-name prod <pool> > token;备侧 … import --site-name bck --direction rx-only <pool> token |
| RBD 快照克隆 | rbd snap create <img>@snap;rbd snap protect;rbd clone <img>@snap <clone> |
| RBD 导出导入 | rbd export <img> <file>;rbd import <file> <img>;rbd export-diff <img> <file> |
| RGW 主站点 | radosgw-admin realm/zonegroup/zone create … --default;user create --system;period update --commit;ceph orch apply rgw <id> --realm=… --zone=… |
| RGW 次站点 | radosgw-admin realm pull --url=… --access-key=… --secret=…;zone create --rgw-zone=fallback;radosgw-admin sync status |
| 多协议用户 | radosgw-admin user create --uid=apiuser --access-key=review --secret=securekey;subuser create --uid=apiuser --subuser=apiuser:swift --access=full |
| 评分 | lab grade comprehensive-review1…5(worksstation 上执行) |
词汇表
| 英文 | 中文 | 速记 |
|---|---|---|
| Comprehensive Review | 综合复习 | 逐章目标回顾+端到端 Lab |
| service specification | 服务规格文件 | cephadm 声明 host/mon/mgr/osd/rgw 布局的 YAML |
| registry / preflight | 容器仓库/预检 | bootstrap 拉镜像前先跑 cephadm-preflight |
| journal size | OSD journal 大小 | 教材实验设 1024 MiB |
| peer bootstrap token | 对等引导令牌 | RBD 镜像两集群互信(--site-name/-direction rx-only) |
| site name | 站点名 | prod/bck,标识主备集群 |
| pool-mode / image-mode mirror | 池级/镜像级镜像 | journal 型 vs snapshot 型 |
| exclusive-lock / journaling | 排他锁/日志特性 | 池模式镜像所需 RBD feature |
| layout / stripe_count | 文件布局/条带数 | CephFS 目录继承布局 |
| realm / zonegroup / zone / period | 领域/区域组/区域/周期 | RGW 多站点四层模型 |
| system user | 系统复制用户 | zone 间同步凭据(repl.user) |
| fallback zone | 备用区域 | 次集群上的 secondary zone |
| subuser | Swift 子用户 | apiuser:swift,独立 secret |
自测 10 题
- Ch1~13 按“部署→配置→CephFS→RBD→RGW”五大 Lab 的 lab 命令叫什么?(comprehensive-review1~5)
- cephadm bootstrap 必须给哪几个关键参数?(--mon-ip、--apply-spec、dashboard 密码、FQDN、registry)
- 建“HDD 专用复制池”的完整三步?(rule onhdd → pool create rbd1 onhdd → set size 5)
- EC profile k=2 m=1 含义?(每对象 2 数据块+1 编码块,可坏 1 块)
- CephFS 内核挂载最少要什么?(ceph-common、client.admin key、
mount -t ceph <mon>:/ <dir> -o name=admin,secretfile=…) - 池模式 vs 镜像模式镜像的 RBD feature 区别?(pool-mode 要 journaling;image-mode 用 snapshot)
- bootstrap peer token 在备份集群怎么导入?(rbd mirror pool peer bootstrap import --direction rx-only)
- RGW 主备复制前先建什么用户?(realm/zonegroup/zone、system 复制用户 repl.user、period update --commit)
- secondary zone 如何验证同步?(radosgw-admin sync status:metadata/data caught up)
- Swift 子用户建法与用法?(subuser create --uid=apiuser --subuser=apiuser:swift --access=full;swift -U apiuser:swift -K … upload)
