在企业环境中,文件共享服务的高可用性至关重要。一旦主服务器宕机,业务可能中断。本文将手把手教你如何在 Debian 系统上搭建一个高可用文件共享系统,使用
NFS作为共享协议,并通过
Corosync + Pacemaker实现故障自动切换。即使你是 Linux 新手,也能轻松完成配置。

一、准备工作
你需要准备以下资源:
两台 Debian 11(或更新版本)服务器,分别命名为node1和
node2一个共享存储设备(如 iSCSI LUN、DRBD 或共享磁盘),本文以本地模拟磁盘为例 静态 IP 地址(例如:node1: 192.168.1.10,node2: 192.168.1.11) 一个虚拟 IP(VIP)用于客户端访问,例如:192.168.1.100
注意:本教程中的“共享存储”可使用 DRBD、iSCSI 或 SAN。为简化演示,我们将使用一个本地目录模拟共享存储,实际生产环境请务必使用真正的共享块设备。
二、安装必要软件包
在两台节点上执行以下命令:
sudo apt updatesudo apt install -y corosync pacemaker nfs-kernel-server drbd-utils fence-agents
三、配置主机名与网络
确保两台机器能通过主机名互相解析。编辑
/etc/hosts文件:
# 在 node1 和 node2 上都添加192.168.1.10 node1192.168.1.11 node2
四、初始化 Corosync 配置
在任意一台节点(如 node1)生成 Corosync 配置:
sudo pcs cluster auth node1 node2 -u hacluster -p your_passwordsudo pcs cluster setup mycluster node1 node2sudo pcs cluster start --allsudo pcs cluster enable --all
首次使用前需设置
hacluster用户密码(两台机器必须一致):
sudo passwd hacluster
五、创建共享文件系统(模拟)
为简化,我们在两台机器上创建相同路径的目录(实际应使用共享磁盘):
sudo mkdir -p /shared/nfssudo chown nobody:nogroup /shared/nfssudo chmod 777 /shared/nfs
重要提示:生产环境中,请使用 DRBD 或 iSCSI 挂载同一块物理磁盘到两个节点,确保数据一致性。否则切换后数据会丢失!
六、配置 Pacemaker 资源
现在我们通过
pcs命令配置高可用资源:
# 创建文件系统资源(若使用真实共享磁盘,此处挂载)sudo pcs resource create nfsshare Filesystem \ device="/dev/sdb1" directory="/shared/nfs" fstype="ext4" \ --group nfsgroup# 若仅测试,可跳过文件系统,直接创建 NFS 导出sudo pcs resource create nfsserver systemd:nfs-server --group nfsgroup# 创建虚拟IPsudo pcs resource create virtual_ip IPaddr2 ip=192.168.1.100 cidr_netmask=24 --group nfsgroup# 设置资源启动顺序sudo pcs constraint order start virtual_ip then nfsserver
如果你只是模拟测试(无真实共享磁盘),可使用以下简化命令:
sudo pcs resource create nfsserver systemd:nfs-server op monitor interval=30ssudo pcs resource create virtual_ip IPaddr2 ip=192.168.1.100 cidr_netmask=24sudo pcs constraint colocation add nfsserver with virtual_ip INFINITYsudo pcs constraint order start virtual_ip then nfsserver
七、配置 NFS 导出
编辑
/etc/exports文件(两台节点都要配置):
/shared/nfs 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
然后重新加载 NFS 配置(Pacemaker 会自动管理服务启停,此步仅为验证):
sudo exportfs -ra
八、验证高可用
查看集群状态:
sudo pcs status
你应该看到
nfsserver和
virtual_ip在同一节点运行。
从客户端挂载测试:
sudo mount -t nfs 192.168.1.100:/shared/nfs /mnt
然后手动关闭当前运行节点(如
node1),观察是否自动切换到
node2。客户端应几乎无感知(短暂卡顿后恢复)。
九、常见问题与优化
时间同步:务必在两台机器上启用 NTP(如 chrony) 防火墙:开放 Corosync(5403-5405/udp)、NFS(2049/tcp)、rpcbind(111/tcp/udp)等端口 STONITH:生产环境建议配置 fencing 设备防止脑裂十、总结
通过本教程,你已成功在 Debian 上搭建了一个基于 NFS 的高可用文件共享系统。该方案利用 Corosync + Pacemaker 实现自动故障转移,极大提升了服务可靠性。记住,在真实环境中务必使用共享存储(如 DRBD 或 SAN),并配置 STONITH 机制。
掌握 Debian高可用文件共享、NFS高可用集群、Debian HA配置 和 共享存储高可用 这些关键技术,将为你的企业 IT 架构打下坚实基础。
