Ceph搭建-Ubuntu 24.04.3
主机名IP 地址角色ceph-node1172.19.0.61MON, MGR, OSD, 管理节点ceph-node2172.19.0.62MON, MGR, OSDceph-node3172.19.0.63MON, MGR, OSD一、系统初始化1、安装系统依赖sudo apt updatesudo apt install -y podman chrony lvm2 python3sudo systemctl enable --now chrony/2、配置主机名与 hosts 解析# 在各节点分别设置以 node1 为例sudo hostnamectl set-hostname ceph-node1# 所有节点执行确保互相能解析sudo tee -a /etc/hosts EOF172.19.0.61 ceph-node1172.19.0.62 ceph-node2172.19.0.63 ceph-node3EOF3、关闭 Swapsudo swapoff -asudo sed -i /swap/s/^/#/ /etc/fstab4、关闭防火墙sudo systemctl stop ufwsudo systemctl disable ufw二、安装 cephadm仅在 ceph-node1 执行sudo apt install -y cephadmcephadm --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.iobootstrap 会在拉取镜像时卡住。国内环境可能需要提前为 Podman 配置镜像加速或私有仓库。成功后终端会输出 Dashboard 地址https://192.168.1.11:8443和登录凭据。四、启用宿主机 ceph 命令sudo apt install -y ceph-commonceph -v # 验证五、加入其余节点并扩展 MON1、分发 SSH 公钥并添加节点在 ceph-node1 上执行sudo ssh-copy-id -f -i /etc/ceph/ceph.pub rootceph-node2sudo ssh-copy-id -f -i /etc/ceph/ceph.pub rootceph-node3sudo ceph orch host add ceph-node2 192.168.1.12 --labels _adminsudo ceph orch host add ceph-node3 192.168.1.13 --labels _admin扩展 MON 到 3 个高可用必须sudo ceph orch apply mon --placementceph-node1 ceph-node2 ceph-node3六、部署 OSD先确认各节点上的可用磁盘sudo ceph orch device ls生产建议精确指定磁盘避免--all-available-devices误清空其他数据盘sudo ceph orch daemon add osd ceph-node1:/dev/sdbsudo ceph orch daemon add osd ceph-node2:/dev/sdbsudo ceph orch daemon add osd ceph-node3:/dev/sdb七、验证集群状态ceph -s关键指标应看到mon: 3 daemonsosd: 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 128sudo ceph osd pool application enable mypool rbdsudo 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