CentOS 8.1上Ceph Octopus集群保姆级搭建:从Docker配置到CephFS挂载全流程
CentOS 8.1环境下Ceph Octopus集群实战部署指南
在分布式存储领域,Ceph凭借其高可靠性、高扩展性和开源特性,已成为企业级存储解决方案的首选。本文将手把手带您完成从零开始部署Ceph Octopus(v15.2.1)集群的全过程,特别针对CentOS 8.1环境优化配置,涵盖Docker环境准备、集群初始化到CephFS挂载等关键环节。
1. 环境准备与基础配置
1.1 系统初始化设置
在开始部署前,我们需要对三台CentOS 8.1服务器进行统一配置。假设三台主机IP分别为10.1.1.12(主节点)、10.1.1.13和10.1.1.14。
首先设置主机名并配置hosts文件:
# 在各节点分别执行 hostnamectl set-hostname cmaster # 主节点 hostnamectl set-hostname cnode1 # 节点1 hostnamectl set-hostname cnode2 # 节点2 # 统一配置hosts文件 cat >> /etc/hosts <<EOF 10.1.1.12 cmaster 10.1.1.13 cnode1 10.1.1.14 cnode2 EOF基础安全配置:
# 关闭防火墙和SELinux systemctl disable --now firewalld setenforce 0 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # 配置时间同步 yum install -y chrony systemctl enable --now chronyd1.2 Docker环境部署
Cephadm工具依赖Docker环境,我们使用阿里云镜像源加速安装:
# 配置阿里云Docker源 dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 安装containerd.io(注意版本兼容性) dnf install -y https://download.docker.com/linux/centos/8/x86_64/stable/Packages/containerd.io-1.3.7-3.1.el8.x86_64.rpm --allowerasing # 安装Docker CE dnf install -y docker-ce # 配置镜像加速 mkdir -p /etc/docker cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"] } EOF # 启动并设置开机自启 systemctl enable --now docker注意:containerd.io版本与CentOS 8.1存在兼容性问题,建议使用1.3.7-3.1.el8版本
2. Ceph集群初始化
2.1 安装cephadm工具
在主节点(cmaster)执行以下操作:
mkdir -p /opt/ceph-cluster cd /opt/ceph-cluster # 下载cephadm脚本 curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm -o cephadm chmod +x cephadm # 安装Python3(所有节点) yum install python3 -y # 配置Ceph Octopus源 ./cephadm add-repo --release octopus # 安装核心组件 ./cephadm install ceph-common ceph2.2 集群引导
使用cephadm初始化集群(主节点执行):
mkdir -p /etc/ceph cephadm bootstrap --mon-ip 10.1.1.12此命令将:
- 创建初始monitor和manager守护进程
- 生成SSH密钥并配置免密访问
- 生成基础配置文件(/etc/ceph/ceph.conf)
- 创建admin用户密钥环
启动Ceph交互shell验证状态:
cephadm shell ceph -s3. 集群节点扩展与角色部署
3.1 添加集群节点
将SSH公钥分发到各节点:
ssh-copy-id -f -i /etc/ceph/ceph.pub root@cnode1 ssh-copy-id -f -i /etc/ceph/ceph.pub root@cnode2在Ceph shell中添加节点:
ceph orch host add cnode1 10.1.1.13 ceph orch host add cnode2 10.1.1.143.2 监控网络配置
设置monitor使用的网络范围:
ceph config set mon public_network 10.1.1.0/24部署monitor服务(建议奇数个节点):
ceph orch apply mon "cmaster,cnode1,cnode2"3.3 OSD存储部署
列出可用存储设备:
ceph orch device ls创建OSD的三种方式对比:
| 方法 | 命令示例 | 适用场景 |
|---|---|---|
| 自动部署 | ceph orch apply osd --all-available-devices | 快速部署,设备无特殊要求 |
| 指定设备 | ceph orch daemon add osd cmaster:/dev/sdb | 精确控制设备使用 |
| YAML规范 | ceph orch apply osd -i osd_spec.yaml | 复杂部署场景 |
示例YAML配置(osd_spec.yaml):
service_type: osd placement: hosts: - cmaster - cnode1 - cnode2 data_devices: all: true4. CephFS创建与挂载
4.1 文件系统部署
创建CephFS所需存储池:
ceph osd pool create cephfs_data 128 ceph osd pool create cephfs_metadata 128创建文件系统:
ceph fs new myfs cephfs_metadata cephfs_data ceph fs ls # 验证创建4.2 客户端挂载配置
获取admin密钥:
cat /etc/ceph/ceph.client.admin.keyring | grep key临时挂载方式:
mkdir /mnt/mycephfs mount -t ceph cmaster:6789,cnode1:6789,cnode2:6789:/ /mnt/mycephfs -o name=admin,secret=<your_secret_key>永久挂载配置(/etc/fstab):
10.1.1.12:6789,10.1.1.13:6789,10.1.1.14:6789:/ /mnt/mycephfs ceph name=admin,secretfile=/etc/ceph/admin.secret,_netdev 0 04.3 常见问题排查
若遇到挂载失败,可检查以下方面:
- 防火墙是否已关闭
- 网络连通性(ping和端口6789测试)
- 密钥权限是否正确
- Ceph集群状态是否健康(
ceph -s)
5. 集群管理与维护
5.1 服务管理命令速查
| 功能 | 命令 | 说明 |
|---|---|---|
| 集群状态 | ceph -s | 查看整体健康状态 |
| OSD管理 | ceph osd tree | 查看OSD分布拓扑 |
| 存储池列表 | ceph osd lspools | 列出所有存储池 |
| 服务状态 | ceph orch ls | 查看编排服务状态 |
| 添加节点 | ceph orch host add newnode IP | 扩展集群节点 |
5.2 安全移除OSD节点
当需要下线OSD时,应遵循以下流程:
# 1. 停止OSD进程 ceph osd stop osd.X # 2. 标记为out状态 ceph osd out osd.X # 3. 从CRUSH map移除 ceph osd crush remove osd.X # 4. 删除OSD记录 ceph osd rm osd.X # 5. 删除认证密钥 ceph auth del osd.X5.3 监控与告警配置
Ceph内置了Prometheus监控支持,启用方法:
ceph mgr module enable prometheus访问地址:http://<mgr-node>:9283/metrics
推荐配置的监控指标阈值:
| 指标 | 警告阈值 | 严重阈值 |
|---|---|---|
| OSD使用率 | 70% | 85% |
| PG非常规状态 | >0 | - |
| 监控节点数 | <奇数 | <quorum数 |
在实际生产环境中,部署完成后建议进行以下验证测试:
- 节点故障模拟测试
- 网络分区场景测试
- 性能基准测试(使用rados bench)
- 数据恢复速度测试
