我们正在使用两台服务器实现 DRDB + heartbeat,以拥有一个具有故障转移功能的文件系统。这些服务器为其他服务器公开 NFS 服务
目前 DRDB 工作得很好,但在测试时,我们从一台服务器切换到另一台服务器,其他服务器中通过 NFS 挂载的文件夹只是挂起。
是否有任何透明的方法来进行此故障转移?让它对 NFS 透明,还是我们需要重新挂载那些 nfs 挂载的文件夹?
这里的问题是您使用 DRBD 创建了一个冗余存储阵列,但是您有两个脱节的 NFS 守护进程运行相同的共享数据。NFS 是有状态的——只要你不能转移状态,你就会在故障转移时遇到严重的问题。Solaris HA 设置确实有处理这个问题的守护进程。对于 Linux 安装,您必须确保 NFS 状态目录(可配置,通常为 /var/lib/nfs)位于两台服务器的共享磁盘上。
坚持使用 Heartbeat 或 Corosync 进行故障检测和故障转移 - 当配置了Quorum时,它通常会做正确的事情 (tm) 。其他故障转移技术可能过于专注于提供虚拟 IP(例如 VRRP)而无法满足您的需求。有关群集设置的更多详细信息和其他组件,请参阅http://linux-ha.org。