因此,我正在尝试在云环境中设置冗余 NFS 共享(所有链接都在内部,半千兆链接),并且我正在研究使用心跳进行故障转移,但所有指南似乎都是关于结合 DRBD 和心跳来创建一个强大的环境。如果需要,我可以这样做,但由于我的内容几乎完全是静态的,我希望尽可能避免 DRBD 的额外开销和复杂性,但仍然能够在其中一个 NFS 服务器发生故障时进行故障转移。是否可以将心跳与 NFS 结合使用以实现高可用性,而无需使用 DRBD 复制块?我没有使用 NFSv4,因此如果需要通过 UDP 使用 NFSv3,那不会有问题(只有极少数客户端会连接到共享)
欢迎提出任何意见。
答案1
我认为 NFS 不支持在服务器离线时访问共享中的文件。如果最终一致性对您的应用程序来说足够好,您可以使用 csync2 之类的工具在服务器之间同步静态文件。
在我们的环境中,cron 每分钟在一对 Web 服务器上启动 csync2 来同步 /var/apps/nimbus/files 中的文件。配置如下:
group files {
host [email protected];
host [email protected];
key /etc/csync2_ssl_cert.key;
include /var/apps/nimbus/files/;
auto younger;
}