如何使用 autofs 挂载 NFS 共享

在你的网络文件系统中配置一个基本的自动挂载功能。
284 位读者喜欢这篇文章。
open source button on keyboard

Opensource.com

大多数 Linux 文件系统在启动时挂载,并在系统运行时保持挂载状态。对于在 fstab 文件中配置的任何远程文件系统也是如此。但是,有时您可能希望仅在需要时才挂载远程文件系统——例如,为了通过减少网络带宽使用来提高性能,或者为了安全原因而隐藏或混淆某些目录。 autofs 软件包提供了此功能。在本文中,我将描述如何启动并运行基本的自动挂载配置。

首先,做一些假设:假设名为 tree.mydatacenter.net 的 NFS 服务器已启动并正在运行。还假设名为 ourfiles 的数据目录和两个用户目录(分别为 Carl 和 Sarah)正由此服务器共享。

一些最佳实践将使事情运行得更好:对于服务器上的用户和他们拥有帐户的任何客户端工作站上的用户,使用相同的用户 ID 是一个好主意。此外,您的工作站和服务器应具有相同的域名。检查相关的配置文件应能确认这一点。

alan@workstation1:~$ sudo getent passwd carl sarah
[sudo] password for alan:
carl:x:1020:1020:Carl,,,:/home/carl:/bin/bash
sarah:x:1021:1021:Sarah,,,:/home/sarah:/bin/bash

alan@workstation1:~$ sudo getent hosts
127.0.0.1       localhost
127.0.1.1       workstation1.mydatacenter.net workstation1
10.10.1.5       tree.mydatacenter.net tree

如您所见,客户端工作站和 NFS 服务器都在 hosts 文件中配置。我假设一个基本的家庭甚至小型办公室网络,可能缺乏适当的内部域名服务(即 DNS)。

安装软件包

您只需要安装两个软件包:用于 NFS 客户端功能的 nfs-common 和提供自动挂载功能的 autofs

alan@workstation1:~$ sudo apt-get install nfs-common autofs

您可以验证 autofs 文件是否已放置在 etc 目录中

alan@workstation1:~$ cd /etc; ll auto*
-rw-r--r-- 1 root root 12596 Nov 19  2015 autofs.conf
-rw-r--r-- 1 root root   857 Mar 10  2017 auto.master
-rw-r--r-- 1 root root   708 Jul  6  2017 auto.misc
-rwxr-xr-x 1 root root  1039 Nov 19  2015 auto.net*
-rwxr-xr-x 1 root root  2191 Nov 19  2015 auto.smb*
alan@workstation1:/etc$

配置 autofs

现在您需要编辑其中几个文件并添加文件 auto.home。首先,将以下两行添加到文件 auto.master

/mnt/tree  /etc/auto.misc
/home/tree  /etc/auto.home

每行都以将要挂载 NFS 共享的目录开头。继续并创建这些目录

alan@workstation1:/etc$ sudo mkdir /mnt/tree /home/tree

其次,将以下行添加到文件 auto.misc

ourfiles        -fstype=nfs     tree:/share/ourfiles

此行指示 autofs 在 auto.master 文件中为 auto.misc 匹配的位置挂载 ourfiles 共享。如上所示,这些文件将在目录 /mnt/tree/ourfiles 中可用。

第三,创建包含以下行的文件 auto.home

*               -fstype=nfs     tree:/home/&

此行指示 autofs 在 auto.master 文件中为 auto.home 匹配的位置挂载用户共享。在这种情况下,Carl 和 Sarah 的文件将分别在目录 /home/tree/carl/home/tree/sarah 中可用。星号(称为通配符)使每个用户的共享可以在他们登录时自动挂载。 & 符号也用作通配符,表示服务器端用户的目录。他们的主目录应在 passwd 文件中相应地映射。如果您更喜欢本地主目录,则不必这样做;相反,用户可以将此用作特定文件的简单远程存储。

最后,重启 autofs 守护程序,以便它识别并加载这些配置文件更改。

alan@workstation1:/etc$ sudo service autofs restart

测试 autofs

如果您更改为 auto.master 文件中列出的目录之一并运行 ls 命令,您不会立即看到任何内容。例如,将目录 (cd) 更改为 /mnt/tree。起初,ls 的输出不会显示任何内容,但在运行 cd ourfiles 后,ourfiles 共享目录将自动挂载。 cd 命令也将被执行,您将被放置到新挂载的目录中。

carl@workstation1:~$ cd /mnt/tree
carl@workstation1:/mnt/tree$ ls
carl@workstation1:/mnt/tree$ cd ourfiles
carl@workstation1:/mnt/tree/ourfiles$

为了进一步确认一切正常,mount 命令将显示已挂载共享的详细信息。

carl@workstation1:~$ mount
tree:/mnt/share/ourfiles on /mnt/tree/ourfiles type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.1.22,local_lock=none,addr=10.10.1.5)

/home/tree 目录对于 Carl 和 Sarah 的工作方式相同。

我发现将这些目录添加到文件管理器的书签中以便更快地访问很有用。

标签
Alan Formy-Duval Opensource.com Correspondent
Alan 拥有 20 年的 IT 经验,主要在政府和金融部门。他最初是一名增值经销商,之后转入系统工程领域。 Alan 的背景是高可用性集群应用程序。他撰写了 Oracle Press/McGraw Hill 出版的《Oracle Solaris 11 系统管理》一书中的“用户和组”和“Apache 和 Web 堆栈”章节。

评论已关闭。

© . All rights reserved.