当前位置:首页 > RockyLinux > 正文

RockyLinux文件共享高可用配置(基于DRBD+Pacemaker+NFS实现企业级高可用存储)

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

RockyLinux文件共享高可用配置(基于DRBD+Pacemaker+NFS实现企业级高可用存储) RockyLinux文件共享 高可用集群 DRBD+Pacemaker NFS高可用 第1张

一、环境准备

我们需要两台 RockyLinux 服务器(建议版本 8 或 9),配置如下:

  • 节点1(node1):IP 192.168.1.10,主机名 node1.example.com
  • 节点2(node2):IP 192.168.1.11,主机名 node2.example.com
  • 每台服务器需额外挂载一块相同大小的磁盘(如 /dev/sdb),用于 DRBD 同步
  • 确保两台服务器时间同步(建议配置 NTP)
  • 关闭防火墙或开放必要端口(为简化,本教程临时关闭)
# 在两台服务器上执行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-utils

三、配置 DRBD(分布式复制块设备)

DRBD 负责在两台服务器之间实时同步磁盘数据。

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 r0

3. 启动 DRBD 服务并设置主从(在 node1 上执行):

# 启动服务sudo systemctl start drbd# 将 node1 设为主节点sudo drbdadm primary --force r0# 格式化 DRBD 设备(仅主节点执行一次)sudo mkfs.xfs /dev/drbd0

四、配置 Pacemaker + Corosync 高可用集群

1. 启用并启动 pcsd 服务(两台都执行):

sudo systemctl enable --now pcsd# 设置 hacluster 用户密码(两台设为相同密码,如:ha123456)echo "ha123456" | sudo passwd --stdin hacluster

2. 在任意一台节点(如 node1)上认证集群节点:

sudo pcs cluster auth node1 node2 -u hacluster -p ha123456

3. 创建集群并启动:

sudo pcs cluster setup mycluster node1 node2sudo pcs cluster start --allsudo pcs cluster enable --all

4. 禁用 STONITH(测试环境可禁用,生产环境建议配置):

sudo pcs property set stonith-enabled=falsesudo pcs property set no-quorum-policy=ignore

五、创建高可用资源(DRBD + Filesystem + NFS)

1. 创建 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=true

2. 创建文件系统挂载点资源(依赖 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_nfs

3. 创建 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-server

六、验证高可用效果

1. 查看集群状态:

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+PacemakerNFS高可用。建议在生产环境中进一步配置虚拟 IP(VIP)、STONITH 设备以及更精细的监控策略,以提升系统健壮性。

> 💡 提示:本教程适用于学习和测试环境。生产部署前请充分测试并参考官方文档。