使用 NFS 托管主文件夹是否可行?

使用 NFS 托管主文件夹是否可行?

我计划部署一些自助服务终端计算机,并希望为它们留一个小型 U 盘作为启动盘,其余部分则放在易于备份的服务器上,ala长期服务提供商

现在我正在考虑两个选择。NFSed /home/,或者在登录时复制 ~/ 的本地副本,在注销时进行 rsynced。

我担心处理文件可能会太慢,或者我的网络可能会堵塞

答案1

我在生产环境中使用 NFS 作为我的主目录。有几个技巧。

  1. 不要将 NFS 挂载到/home- 这样,当 NFS 服务器发生故障时,您可以拥有一个允许您访问的本地用户。我们挂载到/mnt/nfs/home

  2. 使用软挂载和非常短的超时 - 这将防止进程永远阻塞。

  3. 使用自动挂载程序。这将降低资源使用率,同时也意味着如果 NFS 服务器由于某种原因关闭,您不必担心在 NFS 服务器启动时重新启动服务。

    auto.master:
      +auto.master
      /mnt/nfs /etc/auto.home --timeout=300
    
    auto.home
       home -rw,soft,timeo=5,intr      home.bzzprod.lan:/home
    
  4. 使用单点登录系统,这样您就不会遇到与权限相关的问题。我有一个 OpenLDAP 服务器。

答案2

小心使用软挂载!软挂载 NFS 文件系统意味着在发生超时后 IO 将失败。请确保这正是您想要在用户的主目录中看到的!我猜您不会看到。在这里,使用硬挂载主目录并结合 intr 选项会安全得多。

硬挂载不会超时:IO 操作将无限期重试。intr 选项可以中断挂载过程。因此,如果您挂载导出并遇到故障,硬挂载将锁定您的会话。intr 选项可以中断挂载,因此该组合非常安全,可确保您不会轻易丢失用户的数据。

无论如何,autofs 使这一切变得更加容易。

答案3

HowtoForge 发表了一篇题为在 Debian Lenny 上使用 GlusterFS 创建类似 NFS 的独立存储服务器,您可能想查看一下。

以下是关于为什么它是 NFS 的一个好的“可行”替代方案的简短描述,来自集群文件系统项目页面:

GlusterFS 可以即时自我修复。无需 fsck。存储后端可作为常规文件和文件夹直接访问(NFS 样式)。启用复制后,GlusterFS 可以承受硬件故障。

更多信息可以在项目文档中找到。

此外,使用 GlusterFS 的另一个好处是,如果您需要 SAN 上的更多空间,您只需添加另一个存储块(服务器节点),并且能够在需要时并行扩展/增加存储。

答案4

无论您采用哪种网络文件系统,都有一些适用的一般建议:许多程序将数据缓存在用户的主目录中,当通过网络访问主目录时,这通常会弊大于利。

如今,您可以通过XDG_CACHE_HOME在登录脚本中设置环境变量来告诉许多程序将其缓存存储在其他地方(例如,在本地磁盘上)。但是,许多程序(例如 Firefox)仍然需要手动配置,因此您可能需要做一些额外的工作才能以统一的方式为所有用户识别和配置它们。

相关内容