手把手搭建 Ceph 分布式存储集群的详细教程(以 Ceph Quincy 版本为例,基于 Ubuntu 22.04)
一、准备工作
1. 硬件与节点规划
-
Ceph 集群角色:
-
Monitor (Mon):至少3个节点(奇数个,如3/5),负责集群状态监控。
-
Manager (Mgr):2个节点(与 Mon 同节点或独立),负责集群管理。
-
OSD (Object Storage Daemon):≥3个节点,每个节点挂载至少1块硬盘,负责数据存储。
-
可选角色:MDS(元数据服务器,用于CephFS)、RGW(对象存储网关)。
-
-
硬件要求:
-
Monitor/Manager节点:2核CPU,4GB内存,20GB系统盘。
-
OSD节点:4核CPU,8GB内存,每块硬盘建议≥1TB(SSD/HDD)。
-
网络:万兆网络(或千兆最低),所有节点需互通。
-
2. 系统与环境
-
操作系统:Ubuntu 22.04 LTS(所有节点)。
-
用户权限:
-
所有节点创建同一用户(如
cephadmin
),配置sudo
权限。 -
配置 SSH 免密登录(从管理节点到其他节点)。
-
二、系统配置
1. 配置主机名与 hosts 文件
-
所有节点:
sudo hostnamectl set-hostname node1 # 修改为实际主机名(如 mon1, osd1 等)
-
编辑
/etc/hosts
(所有节点):192.168.1.10 node1
192.168.1.11 node2
192.168.1.12 node3
2. 关闭防火墙与 SELinux
-
关闭防火墙:
sudo ufw disable
-
关闭 SELinux(如系统启用):
sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
3. 时间同步(NTP)
-
所有节点安装 NTP:
安装服务
sudo apt install ntp -y
开启服务
sudo systemctl enable --now ntp
三、安装 Ceph 依赖
1. 安装基础工具
-
所有节点:
sudo apt update sudo apt install -y python3-pip git docker.io
2. 配置 Ceph 软件源
阿里的ceph源
-
所有节点:
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo "deb https://download.ceph.com/debian-quincy/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph.list
sudo apt update
3. 安装 Ceph 组件
-
管理节点(如
node1
):sudo apt install -y cephadm ceph-common
四、部署 Ceph 集群
1. 初始化集群
-
在管理节点(node1)执行:
sudo cephadm bootstrap --mon-ip 192.168.1.10 # 替换为管理节点IP
ceph.conf
和client.admin.keyring
文件在/etc/ceph
目录。
2. 添加其他 Monitor 节点
-
在管理节点执行:
ceph orch host add node2
ceph orch host add node3
ceph orch apply mon node1,node2,node3 # 指定3个Mon节点
3. 添加 OSD 节点
-
在 OSD 节点上列出可用磁盘:
ceph orch device ls # 查看所有节点的磁盘
-
添加磁盘作为 OSD(在管理节点执行):
ceph orch daemon add osd node1:/dev/sdb # 将 node1 的 /dev/sdb 加入集群
ceph orch daemon add osd node2:/dev/sdb
ceph orch daemon add osd node3:/dev/sdb
五、测试存储功能
1. 创建存储池
-
创建一个名为
rbd
的存储池:ceph osd pool create rbd 128 128 # 128是PG/PGP数量,根据集群规模调整
2. 挂载块存储(RBD)
-
创建镜像并映射到本地:
rbd create myimage --size 10G --pool rbd
rbd map myimage --pool rbd
#格式化
mkfs.ext4 /dev/rbd/rbd/myimage
#挂载
mount /dev/rbd/rbd/myimage /mnt
六、故障排查
常见问题:
-
节点时钟不同步:
-
检查 NTP 服务状态:
systemctl status ntp
。
-
-
防火墙未关闭:
-
确保所有节点的防火墙已禁用。
-
-
OSD 启动失败:
-
检查磁盘权限:
lsblk -f
确保磁盘未被其他系统占用。
-
-
PG 状态异常:
-
调整 PG 数量:
ceph osd pool set
。pg_num
-
通过以上步骤,可完成一个基础的 Ceph 分布式集群搭建。根据实际需求调整 OSD 数量、网络配置和存储策略。