跳转至

PVE 双机热备方案 (DRBD)

新 PVE 物理机到位后,按本文档执行。双机直连网线,DRBD 块级同步复制,零数据丢失。


一、硬件要求

要求 旧机 新机
网口 至少 2 个 至少 2 个
数据盘 当前 VM 盘 ≥ 旧机 VM 盘总大小
网线 千兆起步 直连旧机

二、网络拓扑

旧 PVE 主机                       新 PVE 主机
┌─────────────────┐   直连网线   ┌─────────────────┐
│ eth0 → 内网      │←──────────→│ eth0 → 内网      │
│ eth1 → DRBD复制  │────────────│ eth1 → DRBD复制  │
│      10.0.0.1    │            │      10.0.0.2    │
└─────────────────┘            └─────────────────┘

三、部署步骤

1. 硬件接线

  • 两台各插一根网线直连
  • 旧机 eth1: 10.0.0.1/24
  • 新机 eth1: 10.0.0.2/24
  • ping 通对端确认

2. 安装 DRBD

# 两台都执行
apt update && apt install -y drbd-utils

3. 配置资源文件

两台都创建 /etc/drbd.d/vms.res

resource vms {
  protocol C;
  device    /dev/drbd0;
  disk      /dev/sdb;
  meta-disk internal;

  on pve-old {
    address 10.0.0.1:7789;
  }
  on pve-new {
    address 10.0.0.2:7789;
  }
}

4. 初始化并首次同步

# 两台都执行
drbdadm create-md vms
drbdadm up vms

# 旧机设为主(只在一台执行)
drbdadm primary --force vms

# 查看同步进度
watch cat /proc/drbd
# 首次全量同步完成后状态显示 UpToDate/UpToDate

5. 接入 PVE

# 旧机:在 /dev/drbd0 上建 LVM
pvcreate /dev/drbd0
vgcreate vg-vms /dev/drbd0

# 在 PVE Web UI 添加 LVM 存储 → 选 vg-vms
# 所有 VM 磁盘迁移到此存储

6. 故障切换流程

# 旧机挂了,在新机上执行:
drbdadm primary vms
qm start <VMID>
# 恢复完成

四、DRBD 协议说明

协议 写入确认时机 丢数据风险 性能
A 写到本地磁盘即返回 可能丢 最快
B 写到本地 + 对端内存即返回 对端断电丢 中等
C 写到本地 + 对端磁盘才返回 零丢失 写操作稍慢

本方案使用协议 C。


五、日常维护

# 查看状态
cat /proc/drbd
drbdadm status vms

# 断开/重连(维护时)
drbdadm disconnect vms
drbdadm connect vms

# 主备切换
# 旧主先降级:drbdadm secondary vms
# 新主升级:drbdadm primary vms

六、注意事项

  • 两台的数据盘 /dev/sdb 大小必须一致
  • 首次全量同步时间 = 盘大小 ÷ 网速,大盘可能需要数小时
  • DRBD 主从模式下备机磁盘不可挂载,不要手动 mount
  • PVE Web UI 不管理 DRBD,切换需手动或脚本

创建日期: 2026-06-04