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

Debian高可用文件共享(基于NFS与Corosync+Pacemaker实现共享存储高可用)

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

Debian高可用文件共享(基于NFS与Corosync+Pacemaker实现共享存储高可用) Debian高可用文件共享  NFS高可用集群 Debian HA配置 共享存储高可用 第1张

一、准备工作

你需要准备以下资源:

  • 两台 Debian 11(或更新版本)服务器,分别命名为 node1node2
  • 一个共享存储设备(如 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

你应该看到 nfsservervirtual_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 架构打下坚实基础。