确实,可以将 GlusterFS 卷安装到任何砖块上,并且 FUSE 客户端将自动发现其他砖块并连接到它们。如果初始砖块发生故障,客户端将故障转移到其他砖块之一。因此,在初始引导后,文件系统具有高可用性。
但是,当您重新启动客户端主机并且您将其设置为从中引导的块(例如/etc/fstab
)关闭时,客户端将根本无法连接,直到您手动将其指向另一个块来引导它。
如果在“主”块关闭时重新启动或添加客户端,则可能会出现问题。例如,在 Amazon AWS 中,假设您在不同的可用区中有两个复制的 GlusterFS 块。当包含“主”块的 AZ 发生故障或失去连接时,您很有可能会自动扩展另一个 AZ 中的其他服务器以应对那里增加的负载。由于“主”块无法访问,因此这些服务器无法挂载文件系统,除非您配置它们以挂载另一个块。
我如何确保客户端(新的或重新启动的)将尝试连接到任何可用的设备?
我们使用 Puppet 来管理所有节点,包括 的内容/etc/fstab
,并且使用 GlusterFS 3.9。
答案1
如果在挂载 fuse 客户端时添加了 backupvolfile-server 选项,当第一个 volfile 服务器发生故障时,则使用 backupvolfile-server 选项中指定的服务器作为 volfile 服务器来挂载客户端。