# Ceph 集群入门 ## 场景 要一套能横向扩展的共享存储,给虚拟化或容器用,又不想买商业存储。 ## 前置条件 - 至少 3 台机器,每台至少 2 块盘(系统盘 + 数据盘) - 万兆网络更稳,千兆也能跑但慢 - 全部机器时间同步 - 主机名能互相解析 ## 配置 ```bash # 1. 在第一个节点装 cephadm dnf install -y cephadm cephadm bootstrap --mon-ip 10.0.0.11 # 2. 把其他节点加进来(需要免密) ceph orch host add node2 10.0.0.12 ceph orch host add node3 10.0.0.13 ceph orch host label add node1 mon ceph orch host label add node2 mon ceph orch host label add node3 mon # 3. 加 OSD(用裸盘,别提前分区) ceph orch apply osd --all-available-devices # 4. 建池 ceph osd pool create rbd 128 ceph osd pool application enable rbd rbd # 5. 建块设备 rbd create disk01 --size 100G --pool rbd ``` ## 验证 ```bash ceph -s # HEALTH_OK ceph osd tree ceph df rbd ls -p rbd ``` `ceph -s` 要看到 `HEALTH_OK` 或者明确列出的 warning,别忽略 `HEALTH_WARN`。 ## 回滚 ```bash cephadm rm-cluster --fsid --force ``` 会清掉集群,数据一起没。 ## 坑 - **时间不同步**,MON 会不断踢节点,集群起不来。 - OSD 用了做过分区的盘,`ceph-volume` 会拒绝,先 `wipefs`。 - 千兆网络下重建一块盘要很久,期间性能明显下降。 - `HEALTH_WARN` 里如果是 `POOL_APP_NOT_ENABLED` 之类的小事可以稍后处理,但 `PG_DEGRADED` 要马上看。 - 别把 MON 全放一台机器上。 - Ceph 不是备份,误删照样丢。