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