通过创建多个 nfs 安装到单个位置来构建冗余

通过创建多个 nfs 安装到单个位置来构建冗余

我一直在为我的实验室管理一个小型本地 Linux 集群,由大约两打 Ubuntu Linux 服务器组成 - 其中一半是无头服务器(机架/塔式),另一半被我的学生用作桌面。

我已经设置了一个 LDAP 服务器来进行集中帐户管理,并为共享文件系统设置了 nfs/autofs 挂载 - 包括每个人的主目录。这个设置在过去 8 年里一直运行良好,并且我一直在增加我的服务器。

一年中有几次,我发现当导出主目录的nfs服务器或者LDAP服务器由于各种原因离线时,整个集群挂掉了。我正在尝试为系统建立一些冗余,以便在发生这种情况时,我有一个后备计划。

在最近的测试中,我注意到我的 autofs 配置autofs-ldap auto.direct挂载到/homes目录(从服务器 B 导出)和/etc/fstab配置的 nfs 挂载到/homes目录(从服务器 A 导出)都可以挂载,当输入 时df,这就是我看到的

serverA:/local_mount/fstab/mount/export  ... 50% /homes
serverB:/local_mount/auto/direct/export  ... 50% /homes

serverA 在 中配置/etc/fstab,而 serverB 在我的 LDAP 系统中配置auto.direct,两者都指向/homes

我发现当系统重新启动时,/etc/fstab首先将 serverA 挂载到/homes,然后,当autofs服务启动时,serverB 的挂载变为活动状态并隐藏 fstab 挂载。

我的问题是

  1. 此配置在双安装中使用此类文件夹是否有任何风险?
  2. 此配置是否为我的 /home 目录安装提供任何冗余?例如,如果 serverB 关闭,但 serverA 启动,反之亦然,我的用户是否仍然拥有可用的主目录而不会挂起?

答案1

一年中有几次,我发现当导出主目录的nfs服务器或者LDAP服务器由于各种原因离线时,整个集群挂掉了。我正在尝试为系统建立一些冗余,以便在发生这种情况时,我有一个后备计划。

每个 LDAP 服务都具有复制功能。即使您无法设置冗余存储集群(我相信使用 autofs 在同一个映射条目中列出多个 NFS 服务器,或者也许使用 pNFS 可以实现这一点?),您至少应该设置 Syncrepl 以拥有两个用于冗余的 LDAP 服务器。

此配置在双安装中使用此类文件夹是否有任何风险?

风险在于你的配置的一半变得毫无用处——如果从 /etc/fstab 配置的挂载始终处于隐藏状态,那么它在那里就没有意义;如果你的 autofs 挂载总是被 fstab 遮蔽,那么 autofs 就没有理由存在。

除此之外:只要两个挂载实际上是从同一个源 NFS 共享创建的,就可以(仅使用最顶层的挂载),但如果它们是从不同的源创建的,那么如果事情发生在重新启动之间的顺序不可预测(例如,服务器 A 今天位于顶部,服务器 B 明天将位于顶部)。

此配置是否为我的 /home 目录安装提供任何冗余?例如,如果 serverB 关闭,但 serverA 启动,反之亦然,我的用户是否仍然拥有可用的主目录而不会挂起?

它不提供任何冗余。安装不要混合或交错;他们重叠,最后一个(最上面的)安装是唯一可见的。对于 autofs 来说,这一点很重要,因为即使实际的 NFS 共享尚未挂载,同一路径仍然具有特殊的 autofs“触发”挂载,因此,如果 fstab 条目位于下面,则即使 LDAP 关闭,它也永远不会可见。

(也就是说,对于 autofs,两个挂载重叠是正常的,您的 /etc/fstab 条目实际上是第三山。)

这可能意味着您应该拥有一个 autofs 映射,每个用户都有单独的挂载,而不是一个大型 /homes 挂载;这还可以更轻松地平衡多个服务器之间的存储(如果您尚未设置任何类型的“存储集群”并且仅使用独立的 NFS 服务器)。

相关内容