在企业环境中,文件共享服务的稳定性和连续性至关重要。一旦文件服务器宕机,可能导致业务中断、数据丢失等严重后果。本文将手把手教你如何在 RockyLinux 系统上搭建一套高可用(High Availability, HA)的文件共享系统,使用 DRBD 实现磁盘级数据同步,Pacemaker + Corosync 实现故障自动切换,并通过 NFS 对外提供文件共享服务。即使一台服务器宕机,服务也能无缝切换到另一台,保障业务连续性。

我们需要两台 RockyLinux 服务器(建议版本 8 或 9),配置如下:
# 在两台服务器上执行sudo systemctl stop firewalldsudo systemctl disable firewalld# 设置主机名(分别在各自节点执行)sudo hostnamectl set-hostname node1.example.com # node1sudo hostnamectl set-hostname node2.example.com # node2# 配置 hosts 文件(两台都添加)echo "192.168.1.10 node1.example.com node1" | sudo tee -a /etc/hostsecho "192.168.1.11 node2.example.com node2" | sudo tee -a /etc/hosts在两台服务器上安装 DRBD、Pacemaker、Corosync 和 NFS 服务:
sudo dnf install -y drbd drbd-utils pacemaker corosync pcs nfs-utilsDRBD 负责在两台服务器之间实时同步磁盘数据。
1. 创建 DRBD 配置文件 /etc/drbd.d/r0.res(r0 是资源名):
resource r0 { protocol C; startup { wfc-timeout 15; degr-wfc-timeout 60; } net { cram-hmac-alg "sha1"; shared-secret "mysecret"; } on node1.example.com { device /dev/drbd0; disk /dev/sdb; address 192.168.1.10:7789; meta-disk internal; } on node2.example.com { device /dev/drbd0; disk /dev/sdb; address 192.168.1.11:7789; meta-disk internal; }}2. 初始化 DRBD 元数据(两台都执行):
sudo drbdadm create-md r03. 启动 DRBD 服务并设置主从(在 node1 上执行):
# 启动服务sudo systemctl start drbd# 将 node1 设为主节点sudo drbdadm primary --force r0# 格式化 DRBD 设备(仅主节点执行一次)sudo mkfs.xfs /dev/drbd01. 启用并启动 pcsd 服务(两台都执行):
sudo systemctl enable --now pcsd# 设置 hacluster 用户密码(两台设为相同密码,如:ha123456)echo "ha123456" | sudo passwd --stdin hacluster2. 在任意一台节点(如 node1)上认证集群节点:
sudo pcs cluster auth node1 node2 -u hacluster -p ha1234563. 创建集群并启动:
sudo pcs cluster setup mycluster node1 node2sudo pcs cluster start --allsudo pcs cluster enable --all4. 禁用 STONITH(测试环境可禁用,生产环境建议配置):
sudo pcs property set stonith-enabled=falsesudo pcs property set no-quorum-policy=ignore1. 创建 DRBD 资源代理:
sudo pcs resource create drbd_r0 ocf:linbit:drbd \ drbd_resource=r0 \ op monitor interval=60ssudo pcs resource master ms_drbd drbd_r0 \ master-max=1 master-node-max=1 \ clone-max=2 clone-node-max=1 \ notify=true2. 创建文件系统挂载点资源(依赖 DRBD 主节点):
sudo pcs resource create fs_nfs Filesystem \ device="/dev/drbd0" \ directory="/srv/nfs" \ fstype="xfs" \ op monitor interval=60ssudo pcs constraint colocation add fs_nfs with master ms_drbd INFINITYsudo pcs constraint order promote ms_drbd then start fs_nfs3. 创建 NFS 服务资源:
# 创建 NFS 导出目录sudo mkdir -p /srv/nfs/share# 配置 NFS 导出(临时写入,实际由集群管理)echo "/srv/nfs/share *(rw,sync,no_root_squash)" | sudo tee /etc/exports# 创建 NFS 资源sudo pcs resource create nfs-server systemd:nfs-server \ op monitor interval=60s# 添加约束sudo pcs constraint colocation add nfs-server with fs_nfs INFINITYsudo pcs constraint order start fs_nfs then start nfs-server1. 查看集群状态:
sudo pcs status正常应看到所有资源运行在同一个节点(如 node1)。
2. 客户端挂载测试(在另一台 Linux 客户端执行):
sudo mkdir -p /mnt/nfssudo mount -t nfs 192.168.1.10:/srv/nfs/share /mnt/nfs# 注意:这里使用的是虚拟 IP 或任一节点 IP(实际生产建议配置 VIP)3. 模拟故障:在当前主节点执行 reboot,观察集群是否自动将服务迁移到 node2。客户端挂载应短暂中断后自动恢复(或重新挂载即可)。
通过本教程,你已成功在 RockyLinux 上搭建了一套基于 DRBD + Pacemaker + NFS 的高可用文件共享系统。这套方案能有效防止单点故障,保障企业关键业务的连续性。关键词包括:RockyLinux文件共享、高可用集群、DRBD+Pacemaker 和 NFS高可用。建议在生产环境中进一步配置虚拟 IP(VIP)、STONITH 设备以及更精细的监控策略,以提升系统健壮性。
> 💡 提示:本教程适用于学习和测试环境。生产部署前请充分测试并参考官方文档。
本文由主机测评网于2025-12-03发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122558.html