| 主机名 | IP 地址 | 角色 |
|---|---|---|
ceph-node1 | 172.19.0.61 | MON, MGR, OSD, 管理节点 |
ceph-node2 | 172.19.0.62 | MON, MGR, OSD |
ceph-node3 | 172.19.0.63 | MON, MGR, OSD |
一、系统初始化
1、安装系统依赖
sudo apt update
sudo apt install -y podman chrony lvm2 python3
sudo systemctl enable --now chrony/
2、配置主机名与 hosts 解析
# 在各节点分别设置(以 node1 为例)
sudo hostnamectl set-hostname ceph-node1# 所有节点执行,确保互相能解析
sudo tee -a /etc/hosts <<EOF
172.19.0.61 ceph-node1
172.19.0.62 ceph-node2
172.19.0.63 ceph-node3
EOF
3、关闭 Swap
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
4、关闭防火墙
sudo systemctl stop ufw
sudo systemctl disable ufw
二、安装 cephadm(仅在 ceph-node1 执行)
sudo apt install -y cephadm
cephadm --version # 验证,应显示类似 19.2.x
三、引导集群(Bootstrap)
在ceph-node1上执行,这会使用 Podman 拉取 Ceph 容器镜像并启动第一个 MON 和 MGR。
sudo cephadm bootstrap \
--mon-ip 192.168.1.11 \
--initial-dashboard-user admin \
--initial-dashboard-password "你的强密码" \
--dashboard-ssl
注意:如果你的服务器无法直接访问quay.io,bootstrap 会在拉取镜像时卡住。国内环境可能需要提前为 Podman 配置镜像加速或私有仓库。
成功后,终端会输出 Dashboard 地址(https://192.168.1.11:8443)和登录凭据。
四、启用宿主机 ceph 命令
sudo apt install -y ceph-common
ceph -v # 验证
五、加入其余节点并扩展 MON
1、分发 SSH 公钥并添加节点
在 ceph-node1 上执行
sudo ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-node2
sudo ssh-copy-id -f -i /etc/ceph/ceph.pub root@ceph-node3sudo ceph orch host add ceph-node2 192.168.1.12 --labels _admin
sudo ceph orch host add ceph-node3 192.168.1.13 --labels _admin
扩展 MON 到 3 个(高可用必须)
sudo ceph orch apply mon --placement="ceph-node1 ceph-node2 ceph-node3"
六、部署 OSD
先确认各节点上的可用磁盘
sudo ceph orch device ls
生产建议精确指定磁盘,避免--all-available-devices误清空其他数据盘:
sudo ceph orch daemon add osd ceph-node1:/dev/sdb
sudo ceph orch daemon add osd ceph-node2:/dev/sdb
sudo ceph orch daemon add osd ceph-node3:/dev/sdb
七、验证集群状态
ceph -s
关键指标应看到:
mon: 3 daemons
osd: 3 osds: 3 up, 3 in
状态为 HEALTH_OK(或 HEALTH_WARN 且无严重错误)
同时检查 Podman 容器运行情况:
bashsudo podman ps --format "table {{.Names}}\t{{.Status}}"
应能看到 ceph-<fsid>-mon-*、ceph-<fsid>-mgr-*、ceph-<fsid>-osd-* 等容器处于 Up 状态。
八、创建存储池(示例)
sudo ceph osd pool create mypool 128 128
sudo ceph osd pool application enable mypool rbd
sudo ceph osd pool set mypool size 3
九、生产环境注意事项
镜像拉取:cephadm 依赖容器镜像。若生产环境网络受限,需提前配置 Podman 的 /etc/containers/registries.conf 或使用 --registry-json 指定私有仓库凭据。
不要手动操作容器:Ceph 的 Podman 容器由 cephadm 通过 systemd 管理,不要用 podman stop/rm 直接操作,否则会导致状态不一致。
OSD 磁盘独立性:再次强调,OSD 数据盘必须独立于系统盘。这是 Ceph 性能与故障隔离的硬性要求。
内存自动调优:cephadm 默认开启 OSD 内存自动调优,按主机总内存的 70% 作为目标。如果机器不是专用 Ceph 节点(混合部署),需要调低该比例:
bashsudo ceph config set mgr mgr/cephadm/autotune_memory_target_ratio 0.2