在构建高可用(HA)系统时,数据的实时同步至关重要。DRBD(Distributed Replicated Block Device)是一种开源的块设备复制技术,可以在两台服务器之间实现磁盘级别的实时同步。本教程将详细讲解如何在 Ubuntu 系统上配置 DRBD磁盘复制,即使你是Linux新手,也能轻松上手。

你需要两台运行 Ubuntu 20.04 或 22.04 的服务器(以下称为 node1 和 node2),并满足以下条件:
在两台服务器上分别执行以下命令安装 DRBD:
sudo apt updatesudo apt install -y drbd-utils为便于识别,建议设置清晰的主机名,并在两台机器的 /etc/hosts 中互相解析。
在 node1 上:
sudo hostnamectl set-hostname node1在 node2 上:
sudo hostnamectl set-hostname node2然后在两台服务器的 /etc/hosts 文件末尾添加如下内容(假设 IP 为 192.168.1.10 和 192.168.1.11):
192.168.1.10 node1192.168.1.11 node2在两台服务器上创建相同的 DRBD 资源配置文件 /etc/drbd.d/r0.res(r0 是资源名,可自定义):
sudo nano /etc/drbd.d/r0.res填入以下内容(请根据你的实际 IP 和设备路径修改):
resource r0 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg "sha1"; shared-secret "mysecret"; } on node1 { device /dev/drbd0; disk /dev/sdb; address 192.168.1.10:7789; meta-disk internal; } on node2 { device /dev/drbd0; disk /dev/sdb; address 192.168.1.11:7789; meta-disk internal; }}说明:
protocol C表示同步写入(最安全)/dev/sdb是你用于同步的物理磁盘,请确保它未被挂载且无重要数据meta-disk internal表示元数据存储在磁盘末尾
在两台服务器上分别执行以下命令初始化元数据:
sudo drbdadm create-md r0然后启动 DRBD 服务:
sudo systemctl start drbdsudo systemctl enable drbd首次使用时,需要指定一台为主节点(Primary),另一台为从节点(Secondary)。在 node1 上执行:
sudo drbdadm primary --force r0在 node2 上无需操作,它会自动成为 Secondary。
现在可以查看同步状态:
cat /proc/drbd如果看到类似 cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate,说明同步成功!
仅在 Primary 节点(node1)上格式化并挂载:
sudo mkfs.ext4 /dev/drbd0sudo mkdir -p /mnt/drbdsudo mount /dev/drbd0 /mnt/drbd现在你可以向 /mnt/drbd 写入文件,这些数据会自动同步到 node2 的对应磁盘上(但 node2 不能直接挂载,除非切换为主节点)。
若要将 node2 切换为主节点,需先在 node1 上卸载并降级:
# 在 node1 上执行sudo umount /mnt/drbdsudo drbdadm secondary r0然后在 node2 上提升为主并挂载:
# 在 node2 上执行sudo drbdadm primary r0sudo mkdir -p /mnt/drbdsudo mount /dev/drbd0 /mnt/drbd通过本教程,你已经成功在 Ubuntu 系统上完成了 DRBD磁盘复制 的基础配置。这项技术是构建 Ubuntu高可用存储 架构的核心组件之一,常与 Pacemaker、Corosync 等工具结合使用,实现真正的零停机容灾方案。
如果你正在寻找一份完整的 DRBD同步教程,希望本文能为你提供清晰、可靠的指导。记得定期检查同步状态,确保数据安全无忧!
本文由主机测评网于2025-12-20发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251210614.html