首页 / 资讯中心 / 文章详情

Proxmox VE 超融合实战:三节点集群搭建与 Ceph 调优避坑指南

Proxmox VE 超融合实战:三节点集群搭建与 Ceph 调优避坑指南 ★ FEATURED ARTICLE
简介这份技术方案文档面向运维工程师、IDC 架构师及中小企业 IT 负责人聚焦在业务缩水、成本敏感的场景下如何用 ProxmoxVE 将多机柜服务器整合为超融合集群。内容围绕超融合项目的背景、需求、解决方案、实施步骤与优势展开涵盖集群创建、Ceph 分布式文件系统部署、虚拟机自动漂移、统一管控与在线扩容等关键实践并记录了安装过程中 DHCP 卡顿、更换 U 盘与 PVE 版本等真实排错经历。资源包共 1 个 docx 文件约 3.17MB以图文方案形式呈现便于按章节查阅与复用。目前已有 271 人学习下载适合希望降低托管成本、提升可用性并落地去中心化架构的读者参考借鉴。1. 从一台退役服务器到三节点集群Proxmox VE 超融合到底在做什么手里攒下几台二手服务器或者公司机房淘汰下来一批还带阵列卡的机器很多人第一反应是装个系统当独立虚拟机用。但当你真正需要跑十几台业务虚拟机、还要保证其中一台宿主机挂了业务能自动飘走时单机方案立刻捉襟见肘。Proxmox VE 超融合项目实践讲的正是用 Proxmox VE 这套开源虚拟化平台把计算、存储、网络三样资源在多个节点间揉成一个整体让虚拟机像跑在一台大机器上一样自由迁移。它解决的核心问题是没有预算买深信服超融合平台这类商业产品又不想在可靠性上妥协。适合手里有三台以上同架构服务器、愿意折腾 Ceph 和 Corosync 的运维人员。读完你能判断自己的硬件够不够格、集群怎么搭、坑在哪。2. 超融合选型为什么是 Proxmox VE 而不是再买一套商业平台2.1 超融合的本质是把存储拉进计算节点传统架构里计算和存储是分开的几台服务器跑虚拟机后面接一台磁盘阵列通过光纤或 iSCSI 连过去。超融合把这层拆了每台服务器本地插满硬盘用分布式存储软件把这些本地盘组成一个共享存储池虚拟机在任意节点都能访问同一份数据。这样做的好处是扩展时按节点买不用单独扩容阵列坏处是存储性能依赖网络网络一抖全集群跟着难受。Proxmox VE 的超融合能力来自两个组件Ceph 提供分布式块存储、对象存储和文件存储Corosync 负责集群成员管理和 quorum 仲裁。Ceph 的 CRUSH 算法把数据切成对象分散到各节点的 OSD 上默认三副本任意一个节点整机下线数据依然可读可写。这跟商业超融合厂商的技术路线是一致的区别在于 Proxmox VE 把配置权完全交给你没有一键部署向导也没有原厂兜底。2.2 主流超融合厂商技术对比里 Proxmox VE 的位置把深信服超融合平台、Nutanix、VMware vSAN 和 Proxmox VE 放在一张表里看差异立刻清晰维度深信服超融合平台VMware vSANProxmox VE Ceph授权成本按节点或容量收费按 CPU 或容量收费开源免费支持订阅部署门槛图形化向导开箱即用vSphere 内嵌需熟悉 ESXi命令行配置需懂 Ceph存储网络要求万兆起步推荐冗余万兆起步推荐冗余万兆起步可用千兆但性能受限硬件兼容性绑定兼容列表绑定兼容列表宽松但需自行验证运维兜底原厂支持原厂支持社区 自行排查这张表不是要证明谁好谁坏而是说清楚选型逻辑如果你团队里没人懂 Linux 和 Ceph深信服超融合平台或 vSAN 的图形化界面能省下大量试错时间如果你有 Linux 底子、预算敏感、又愿意为可控性投入精力Proxmox VE 是唯一能把授权成本压到零的方案。我见过不少中小团队用三台二手 Dell R730 加 Proxmox VE 跑了几十台业务虚拟机稳定运行两年以上前提是网络和硬盘选型没省错钱。2.3 超融合服务器可以归类 PC 服务器吗这个问题在采购时经常被问到。从硬件形态看超融合节点确实就是标准的 2U 机架式服务器跟普通 PC 服务器没有物理区别。但超融合对硬件有几个硬性要求普通 PC 服务器不一定满足硬盘需要直通给 Ceph不能经过 RAID 卡缓存。大多数 RAID 卡要切换成 HBA 模式或 JBOD 模式消费级主板上的软 RAID 直接不能用。网卡建议万兆起步Ceph 的副本复制和恢复流量会吃满带宽。千兆环境下跑三副本虚拟机磁盘延迟能飙到几百毫秒。内存要留够给 Ceph OSD 缓存。每个 OSD 进程大约吃 1GB 到 2GB 内存三节点每节点四块盘光 OSD 就占掉 8GB 左右。所以结论是超融合服务器在物理上就是 PC 服务器但能用和好用之间隔着网卡、硬盘直通和内存三座山。采购前先确认这三点比看 CPU 型号重要得多。3. 三节点 Proxmox VE 集群搭建从装系统到 Ceph 健康3.1 系统安装与网络规划三节点是超融合的最小可用规模也是 quorum 仲裁的最低要求。每台机器装 Proxmox VE 8.x安装时注意文件系统选 ext4 或 zfs不要选 LVM-thin 作为根分区后面加 Ceph 时容易冲突。安装完成后先做网络规划我一般会分三个网段管理网vmbr0接交换机跑 Proxmox VE 的 Web 界面和 SSH。存储网vmbr1万兆直连或独立交换机跑 Ceph 的 public network 和 cluster network。业务网vmbr2虚拟机对外提供服务。如果只有一台万兆交换机存储网和业务网可以合并但管理网建议独立避免虚拟机流量把 Web 界面卡死。安装完成后每台机器执行以下命令确认基础环境# 查看主机名和 IP确保三台机器主机名不重复 hostnamectl ip -br a # 更新软件源并升级 apt update apt dist-upgrade -y # 确认时间同步正常Ceph 对时间偏差敏感 timedatectl status主机名必须能互相解析建议直接写 /etc/hosts# 在三台机器上都写入相同的 hosts 记录 cat /etc/hosts EOF 10.0.0.11 pve01 10.0.0.12 pve02 10.0.0.13 pve03 EOF逻辑说明Proxmox VE 集群依赖主机名做节点标识如果主机名解析不一致后面创建集群时会报节点无法通信。参数上10.0.0.x 是管理网段实际替换成你的规划。时间同步用 systemd-timesyncd 或 chrony 都行偏差超过 1 秒 Ceph 会拒绝加入 OSD。3.2 创建集群并加入节点在第一台机器 pve01 上创建集群# 在 pve01 上创建名为 hci-cluster 的集群 pvecm create hci-cluster # 查看集群状态 pvecm status然后在 pve02 和 pve03 上分别执行加入命令# 在 pve02 上执行输入 pve01 的 root 密码 pvecm add 10.0.0.11 # 在 pve03 上执行同样的命令 pvecm add 10.0.0.11逻辑说明pvecm create 会初始化 Corosync 配置生成集群通信密钥。pvecm add 会把当前节点加入已有集群过程中会同步配置并重启相关服务。参数上10.0.0.11 是 pve01 的管理 IP必须可达。加入完成后在任意节点执行 pvecm nodes 应该看到三个节点都是 online 状态。注意如果节点加入后显示 offline先检查 /etc/corosync/corosync.conf 里的 ring0_addr 是否指向正确的管理 IP再确认 5405 和 5404 UDP 端口没有被防火墙拦截。3.3 Ceph 集群初始化与 OSD 创建三个节点都加入集群后在 pve01 的 Web 界面或命令行安装 Ceph# 在三台机器上分别安装 Ceph 组件 pveceph install --repository no-subscription # 在 pve01 上初始化 Ceph 集群 pveceph init --network 10.10.10.0/24参数说明--network 指定 Ceph 的 public network应该是存储网段不是管理网段。如果存储网是 10.10.10.0/24就填这个。初始化完成后每台机器需要创建 MON 和 MGR# 在三台机器上分别创建 MON实现高可用 pveceph mon create # 在三台机器上分别创建 MGR pveceph mgr create接下来创建 OSD。先确认硬盘直通状态# 列出所有可用磁盘确认没有 RAID 卷 lsblk -o NAME,SIZE,TYPE,MOUNTPOINT如果硬盘显示为 sdb、sdc 这种裸盘直接创建 OSD# 在每台机器上为每块数据盘创建 OSD pveceph osd create /dev/sdb pveceph osd create /dev/sdc pveceph osd create /dev/sdd pveceph osd create /dev/sde逻辑说明pveceph osd create 会自动用 ceph-volume 对磁盘做 LVM 初始化创建 data 和 journal 分区。如果磁盘之前有分区表命令会报错需要先执行 wipefs -a /dev/sdb 清空。参数上每块盘单独创建 OSD不要用 RAID 合并。创建完成后执行 ceph -s 查看集群状态等 HEALTH_OK 出现再继续。3.4 创建存储池并挂载到 Proxmox VECeph 健康后创建供 Proxmox VE 使用的存储池# 创建三副本池pg_num 根据 OSD 数量调整 ceph osd pool create pve-data 128 128 # 启用应用模式 ceph osd pool application enable pve-data rbd # 创建 Proxmox VE 存储条目 pvesm add rbd ceph-pool --pool pve-data --content images,rootdir --krbd 1参数说明pg_num 和 pgp_num 在 OSD 总数少于 5 时设 128 足够OSD 多了再调大。--content images,rootdir 表示这个存储池可以放虚拟机磁盘和容器根目录。--krbd 1 启用内核 RBD 映射性能比用户态好。创建完成后在 Web 界面应该能看到 ceph-pool 存储新建虚拟机时可以直接选它。4. 超融合集群避坑五条血泪经验4.1 现象Ceph 恢复流量把业务网打满虚拟机卡死原因Ceph 默认的恢复参数比较激进三节点环境下某块 OSD 掉线后恢复流量会抢占所有可用带宽。如果存储网和业务网合并虚拟机网络直接瘫痪。解决限制恢复速率和回填速率。在 /etc/pve/ceph.conf 的 [osd] 段加入[osd] osd_recovery_max_active 1 osd_recovery_sleep 0.1 osd_max_backfills 1改完执行 systemctl restart ceph-osd.target 生效。代价是恢复变慢但业务不中断。4.2 现象新建虚拟机磁盘时提示 no valid replicas原因Ceph 存储池的 size 设成了 3但实际可用 OSD 数量不足 3 个或者 CRUSH 规则把副本映射到了同一个节点。解决先执行 ceph osd tree 确认 OSD 分布确保三个节点都有 OSD up。如果节点数够但 CRUSH 规则不对执行 ceph osd crush rule dump 检查必要时重建规则。临时方案是把池的 size 调成 2但生产环境不建议长期这样跑。4.3 现象节点重启后无法加入集群pvecm status 显示无 quorum原因Corosync 的 ring0_addr 写的是主机名但重启后 DNS 或 /etc/hosts 解析顺序变了导致节点间通信失败。解决把 /etc/corosync/corosync.conf 里的 ring0_addr 全部改成 IP 地址不要用主机名。改完在所有节点执行 systemctl restart corosync然后 pvecm expected 1 临时恢复 quorum再逐个重启节点。4.4 现象虚拟机迁移到另一节点后磁盘 I/O 延迟翻倍原因Ceph 的客户端缓存没有正确启用或者虚拟机磁盘用了 IDE 总线而不是 VirtIO。解决确认虚拟机磁盘总线是 VirtIO SCSI缓存模式设为 writeback 或 none。在 Proxmox VE 的虚拟机硬件选项里把磁盘的 Cache 从 Default 改成 Write back。另外确认 /etc/pve/ceph.conf 里 [client] 段有 rbd_cache true。4.5 现象OSD 频繁掉线又自动恢复ceph -s 反复跳 HEALTH_WARN原因硬盘供电不足或 SATA 线接触不良也可能是 RAID 卡缓存策略导致 I/O 超时。解决先看 dmesg | grep -i error 确认是否有 I/O 错误。如果是供电问题换电源或加独立供电线。如果是 RAID 卡进 BIOS 把硬盘模式改成 HBA 或 JBOD关闭 RAID 卡缓存。软件层面可以调大 OSD 的超时时间在 ceph.conf 的 [osd] 段加 osd_op_thread_timeout 60。5. 超融合集群的验证与调优把三节点跑出该有的样子集群搭完只是开始真正决定体验的是后续验证和调优。我一般会做三件事压测存储、模拟节点故障、调 Ceph 参数。压测存储用 fio在任意一台虚拟机上跑# 4K 随机写模拟数据库场景 fio --namerandwrite --ioenginelibaio --iodepth32 \ --rwrandwrite --bs4k --direct1 --size2G \ --numjobs4 --runtime60 --group_reporting关注 iops 和 lat 两个指标。三节点万兆全闪环境下4K 随机写应该能到 20000 IOPS 以上延迟低于 5ms。如果 IOPS 只有几千先查网络是不是千兆再查 OSD 是不是机械盘。模拟节点故障很简单直接拔掉一台节点的电源然后在剩下两台机器上执行 ceph -s观察集群是否在 30 秒内恢复 HEALTH_OK。同时开一台虚拟机 ping 外网看丢包是否在 10 个以内。如果虚拟机直接卡死说明 quorum 配置有问题检查 corosync.conf 的 quorum 设置。调优方面三节点环境最值得改的参数有三个参数默认值建议值作用osd_recovery_max_active31降低恢复对业务的冲击osd_max_backfills11限制回填并发rbd_cachetruetrue启用客户端缓存另外如果虚拟机跑的是数据库建议把 Ceph 池的 pg_num 从 128 调到 256减少单个 PG 的负载。调整命令是 ceph osd pool set pve-data pg_num 256然后等数据均衡完成再调 pgp_num。最后说一个我自己的习惯每次改完 Ceph 参数先在一个非关键虚拟机上跑一轮 fio确认延迟没有恶化再推到生产。超融合集群的玄学在于参数改错不会立刻报错但会在业务高峰时突然翻车。留好后悔药比事后排查省心得多。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站