当前位置: 首页 > news >正文

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 chronyd

1.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 ceph

2.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 -s

3. 集群节点扩展与角色部署

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.14

3.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: true

4. 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 0

4.3 常见问题排查

若遇到挂载失败,可检查以下方面:

  1. 防火墙是否已关闭
  2. 网络连通性(ping和端口6789测试)
  3. 密钥权限是否正确
  4. 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.X

5.3 监控与告警配置

Ceph内置了Prometheus监控支持,启用方法:

ceph mgr module enable prometheus

访问地址:http://<mgr-node>:9283/metrics

推荐配置的监控指标阈值:

指标警告阈值严重阈值
OSD使用率70%85%
PG非常规状态>0-
监控节点数<奇数<quorum数

在实际生产环境中,部署完成后建议进行以下验证测试:

  1. 节点故障模拟测试
  2. 网络分区场景测试
  3. 性能基准测试(使用rados bench)
  4. 数据恢复速度测试
http://www.jsqmd.com/news/656266/

相关文章:

  • 十九、观察者模式
  • 保姆级教程:在Ubuntu 22.04上从零部署Picovoice离线语音助手(含树莓派兼容指南)
  • Comsol新手必看:5步搞定CPU水冷散热系统仿真(附模型文件下载)
  • R语言实战:用microeco和meconetcomp包5分钟搞定微生物网络稳定性分析(附完整代码)
  • 不只是降噪:聊聊声加ENC算法在TWS耳机通话中的AEC与ANC联动
  • Arduino ESP32终极开发指南:从零开始打造物联网项目
  • 如果 Seedance 3.0 真把长视频 + 多语言口型同步 + 低成本做起来,广告和短剧团队可能会先挨刀
  • 手绘白板终极指南:5个实用技巧让你快速掌握Excalidraw虚拟画布
  • Ubuntu 24.04 安装 OpenClaw + 微信对话框控制(官方ClawBot,合规无封号)
  • TMS320F28377S开发实战:在CCS9.3中同时玩转库函数与寄存器编程(附工程模板)
  • MySQL SQL优化快速入门
  • Captain AI功能价值矩阵——解锁增长密码的三把钥匙
  • 嵌入式开发避坑指南:在ARM板子上交叉编译并运行stressapptest测试DDR
  • 约翰斯·霍普金斯大学让大模型挑战真实法律推理,结果令人警醒
  • 【仅剩72小时开放】:2026奇点大会AI结构生成沙盒环境限时开放!手把手带你用自然语言“写”出可部署的时序索引结构(含GPT-5 Schema Agent演示)
  • ESP32智能家居实战:用巴法云+微信小程序,做一个能远程开关的智能灯(附完整代码)
  • NR/5G - 从波束赋形到系统消息:SSB/SIB1/SI/Paging调度全链路解析
  • 小程序如何提高复购率?
  • 跨平台Git图形化客户端:为什么SourceGit成为开发者的新宠
  • ESP-BLE-MESH配网日志全解析:从Provisioner广播到Node配置完成的每一步
  • Windy网站数据源全景解析:从ECMWF到闪电网络
  • 别再只用query传参了!微信小程序EventChannel传大数据的保姆级教程
  • 告别Shell脚本地狱:用Nextflow重构你的生信分析流程(附入门实战代码)
  • AI 聊天流式交互基础:SSE、EventSource 与 ReadableStream
  • 小程序如何提升转化率?
  • GitLab集成企业自研OAuth2单点登录:从配置到避坑全指南
  • 目前口碑好的不锈钢网篮销售厂家 - 小张小张111
  • 深入ZStack OSAL:手把手解析任务调度与事件处理机制(以ZStack 2.5.1a为例)
  • 在西铁城走心机上,如何有效处理细长轴件的振动与变形问题?
  • 不只是安装:Modelsim SE 10.4a 安装后的第一件事——工程创建与仿真环境快速上手