Proxmox VE 集群弹性扩容指南:无缝新增 node114 与 node115 节点
适用场景
已有 Proxmox VE 9.1 高可用集群(node111–113),现需横向扩展两台新节点(node114、node115),并使其完整接入 Ceph 分布式存储 与 企业级 iSCSI 多路径共享存储 。
一、前提回顾:现有架构概览
- 集群名称 :
forestry-pve - 网络段 :
192.168.7.0/24 - 存储后端 :
- Ceph(本地 SSD/NVMe,OSD on
/dev/sdb) - ThinkSystem DE4000H iSCSI 存储(双控制器,ALUA 多路径)
- Ceph(本地 SSD/NVMe,OSD on
- 关键策略 :
find_multipaths strict(安全聚合)- 所有 LUN 通过 WWID 显式注册
- 共享 LVM 构建于多路径设备之上
🧠 核心原则 :Proxmox VE 集群仅同步虚拟化元数据,系统级配置(如 multipath、iscsi、hostname)必须手动部署到每个节点 。
二、基础系统初始化(node114 / node115)
1. 安装与网络配置
使用与主集群完全一致的镜像 :proxmox-ve_9.1-1.iso
安装时分配静态 IP:
| 节点 | IP 地址 |
|---|---|
| node114 | 192.168.7.114 |
| node115 | 192.168.7.115 |
🔧 建议关闭 IPv6、禁用 cloud-init(若非必要),保持环境纯净。
2. 设置主机名与 hosts 解析
# node114
hostnamectl set-hostname node114
# node115
hostnamectl set-hostname node115
将以下内容写入 所有五台节点 的 /etc/hosts(包括新节点):
127.0.0.1 localhost.localdomain localhost
192.168.7.111 node111 pve.node111.forestry
192.168.7.112 node112 pve.node112.forestry
192.168.7.113 node113 pve.node113.forestry
192.168.7.114 node114 pve.node114.forestry
192.168.7.115 node115 pve.node115.forestry
可用
scp /etc/hosts root@node114:/etc/hosts从现有节点批量分发。
3. 重启 PVE 核心服务
systemctl restart pve-cluster pvedaemon pveproxy corosync
确保 hostname 变更被集群识别。
三、加入现有 Proxmox VE 集群
在 node114 和 node115 上执行:
pvecm add 192.168.7.111
⏱️ 首次加入可能需要 10–30 秒同步。
✅ 验证命令:pvecm status # 查看集群状态 pvecm nodes # 应列出全部 5 个节点
此时,新节点已具备:
- 集群管理权限
- 虚拟机/容器迁移能力
- HA 资源接管资格
四、同步 iSCSI 多路径存储栈(关键步骤)
⚠️ 重要 :multipath 配置 不会 通过 PVE 集群同步!必须手动部署。
1. 安装依赖包
apt update
apt install -y multipath-tools
若计划在多路径设备上运行 VM(尤其是启动盘),建议额外安装:
apt install -y multipath-tools-boot
update-initramfs -u # 更新 initramfs 以支持早期多路径
2. 配置 iSCSI 连接(双路径)
TARGET="iqn.2002-09.com.lenovo:thinksystem.6d039ea000292f68000000005ffccb04"
# 发现 Target
iscsiadm -m discovery -t st -p 192.168.7.101
iscsiadm -m discovery -t st -p 192.168.7.102
# 登录双路径
iscsiadm -m node -T "$TARGET" -p 192.168.7.101 --login
iscsiadm -m node -T "$TARGET" -p 192.168.7.102 --login
# 启用自动重连
for ip in 192.168.7.101 192.168.7.102; do
iscsiadm -m node -T "$TARGET" -p "$ip" -o update -n node.startup -v automatic
done
3. 扫描设备并验证 WWID
rescan-scsi-bus.sh -a
lsblk # 观察新设备(如 sdc, sdd...)
获取每块设备的 WWID:
/lib/udev/scsi_id -g -u -d /dev/sdc
/lib/udev/scsi_id -g -u -d /dev/sdd
# ...
应得到与现有节点完全相同的两个 WWID ,例如:
36d039ea000215c32000000fb61798151→ LUN A(8.3TB)36d039ea000292f68000000f5617982e2→ LUN B(54TB)
4. 注册 WWID 并部署 multipath.conf
从任意现有节点复制配置:
scp root@node111:/etc/multipath.conf /etc/multipath.conf
显式注册 WWID(find_multipaths strict 模式必需):
multipath -a 36d039ea000215c32000000fb61798151
multipath -a 36d039ea000292f68000000f5617982e2
💡 可从
node111:/etc/multipath/wwids提取列表并批量导入。
重载配置并验证:
multipath -r
multipath -ll
✅ 成功输出应包含:
iscsi_lun_a (36d039ea000215c32...) dm-6 LENOVO,DE_Series
|- sdc 8:32 active
`- sde 8:64 enabled
iscsi_lun_b (36d039ea000292f68...) dm-7 LENOVO,DE_Series
|- sdd 8:48 active
`- sdf 8:80 enabled
5. 刷新 LVM 缓存(如使用共享 VG)
若已有基于 iscsi_lun_b 的共享卷组(如 shared-vg):
pvscan --cache
此时 Web UI 中的 LVM 存储应自动可见。
五、(可选)扩展 Ceph 集群角色
若新节点配备本地磁盘并希望参与 Ceph 存储:
1. 安装 Ceph 软件栈
Web UI 操作最简:
- 进入Datacenter > node114 > Ceph
- 点击 “Install Ceph” → 选择 “No subscription”
或 CLI:
pveceph install --version reef # 版本需与现有集群一致
2. 同步 Ceph 配置
从任一 Ceph 节点复制密钥与配置:
scp root@node111:/etc/ceph/ceph.* /etc/ceph/
chmod 600 /etc/ceph/ceph.client.admin.keyring
验证连接:
ceph -s # 应返回 HEALTH_OK
3. 创建 OSD(如有本地磁盘)
假设使用 /dev/sdb:
wipefs -a /dev/sdb
sgdisk --zap-all /dev/sdb
然后通过 Web UI:
- Datacenter > node114 > Ceph > OSD > Create
- 选择
/dev/sdb,启用加密(可选)
📌 注意:Ceph Monitor(mon)通常无需每节点部署,3 节点 quorum 已足够。新节点默认仅作为 OSD 或 client。
六、最终验证清单
| 检查项 | 命令 / 方法 |
|---|---|
| 集群成员完整性 | pvecm nodes(5 行输出) |
| 主机名解析 | ping node115 && host node111 |
| iSCSI 会话 | iscsiadm -m session(2 条路径) |
| 多路径聚合 | multipath -ll(mpatha/mpathb 正常) |
| 共享存储可见 | Web UI → Storage →iscsi-storage / shared-vg |
| Ceph 状态(如适用) | ceph osd tree(新 OSD 出现) |
| HA 能力 | 在 VM 上启用 HA,手动停机测试迁移 |
七、升华一下
将扩容流程封装为 幂等脚本 ,实现“一键加节点”:
#!/bin/bash
# add-pve-node.sh <new_ip> <new_hostname>
IP=$1; HOST=$2
scp /etc/hosts root@$IP:/etc/hosts
ssh root@$IP "hostnamectl set-hostname $HOST"
ssh root@$IP "systemctl restart pve-cluster"
ssh root@$IP "pvecm add 192.168.7.111"
scp /etc/multipath.conf root@$IP:/etc/multipath.conf
ssh root@$IP "multipath -a $(cat /etc/multipath/wwids | tr -d '\n' | sed 's/ //g')"
ssh root@$IP "multipath -r"
配合 Ansible 或 Terraform,可构建真正的 基础设施即代码(IaC) 流程。