如何在Linux上配置高可用的虚拟化存储(如Ceph)

来源:站长平台作者:日本程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《如何在Linux上配置高可用的虚拟化存储(如Ceph)》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上配置高可用的虚拟化存储(如Ceph)》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中配置高可用虚拟化存储时,Ceph是常用的分布式存储解决方案,它支持对象存储、块存储和文件系统存储,能够满足虚拟化场景下的多类型存储需求,且具备自动容错、动态扩容等特性,可有效避免存储单点故障问题。

如何在Linux上配置高可用的虚拟化存储(如Ceph)

环境准备

部署Ceph集群前需要先完成基础环境配置,确保所有节点满足运行要求。

节点规划

建议至少准备3个节点,分别承担不同角色,具体规划如下:

节点角色数量配置要求
MON节点(监控节点)3个(奇数个避免脑裂)2核4G内存,20G系统盘,单独数据盘
OSD节点(存储节点)3个及以上2核8G内存,20G系统盘,至少2块数据盘
客户端节点按需配置2核4G内存,用于验证存储可用性

基础环境配置

所有节点都需要执行以下基础配置操作:

  • 安装相同版本的Linux系统,推荐使用CentOS 7或Ubuntu 20.04 LTS
  • 配置静态IP,确保所有节点之间网络互通
  • 关闭防火墙和SELinux,避免端口拦截
  • 配置节点间SSH免密登录,方便后续集群管理
  • 配置NTP时间同步,保证所有节点时间一致

以下是关闭防火墙和SELinux的示例命令:

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Ceph集群部署

这里使用Ceph官方提供的ceph-deploy工具进行集群部署,操作更简便。

安装ceph-deploy工具

在管理节点上执行以下命令安装部署工具:

# CentOS系统安装
yum install -y ceph-deploy

# Ubuntu系统安装
apt-get update
apt-get install -y ceph-deploy

创建集群并部署MON节点

在管理节点创建工作目录,然后初始化MON节点:

# 创建工作目录
mkdir ceph-cluster
cd ceph-cluster

# 初始化MON节点,替换为实际的MON节点主机名
ceph-deploy new node1 node2 node3

# 安装Ceph软件包到所有节点
ceph-deploy install --release luminous node1 node2 node3

# 部署初始MON节点和生成密钥
ceph-deploy mon create-initial

部署OSD节点

为OSD节点添加数据盘,这里以node1的/dev/sdb盘为例,所有OSD节点重复该操作:

# 擦除磁盘数据
ceph-deploy disk zap node1 /dev/sdb

# 创建OSD
ceph-deploy osd create node1 --data /dev/sdb

分发配置文件和密钥

将集群配置文件和管理密钥分发到所有节点,方便后续操作:

ceph-deploy admin node1 node2 node3

高可用配置优化

默认配置下Ceph已经具备基础的高可用能力,可通过以下配置进一步提升可用性。

配置副本数

Ceph默认副本数为3,可根据节点数量调整,确保数据分布在不同的节点上,避免单节点故障导致数据丢失。修改ceph.conf文件添加以下配置:

[global]
# 设置副本数为3,至少保留2个副本可用
osd_pool_default_size = 3
# 最小可用副本数
osd_pool_default_min_size = 2

修改完成后将配置文件同步到所有节点并重启服务:

ceph-deploy --overwrite-conf config push node1 node2 node3
systemctl restart ceph-mon.target
systemctl restart ceph-osd.target

配置MON节点仲裁

确保MON节点数量为奇数,避免脑裂问题,同时配置MON节点自动故障转移,当某个MON节点故障时,其他节点可自动接管监控职责。

开启OSD自动故障恢复

默认情况下OSD故障后会自动触发数据恢复,可通过以下命令调整恢复速度,避免影响正常业务:

# 调整恢复并发数
ceph osd set nodown
ceph tell osd.* injectargs '--osd_recovery_max_active 3'
ceph tell osd.* injectargs '--osd_recovery_max_single_start 1'
ceph osd unset nodown

可用性验证

部署完成后需要验证存储的高可用特性,确保配置生效。

查看集群状态

执行以下命令查看集群健康状态:

ceph -s

当输出中health字段为HEALTH_OK,且monosd数量与规划一致时,说明集群运行正常。

模拟节点故障测试

手动停止某个OSD节点的服务,观察集群状态:

# 在OSD节点执行,停止osd.0服务
systemctl stop ceph-osd@0

此时查看集群状态,会显示有OSD处于down状态,但集群仍为HEALTH_OK,数据可正常读写,说明高可用配置生效。恢复节点服务后,数据会自动同步恢复。

创建存储池测试

创建块存储池并映射到客户端,验证存储读写正常:

# 创建存储池
ceph osd pool create test_pool 128

# 初始化存储池为RBD池
rbd pool init test_pool

# 创建块设备镜像
rbd create test_image --size 1024 --pool test_pool

# 客户端映射镜像
rbd map test_pool/test_image --name client.admin

# 格式化并挂载
mkfs.ext4 /dev/rbd0
mkdir /mnt/ceph_test
mount /dev/rbd0 /mnt/ceph_test

在挂载目录中创建测试文件,停止某个OSD节点后文件仍可正常读写,证明存储高可用配置生效。

CephLinux虚拟化存储高可用配置修改时间:2026-07-23 06:54:30

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。