在 nfs 服务器上

/work   nfsclient(ro)
/myraid nfsclient(ro)

由于本文是关于 autofs 的,因此我没有给导出的共享太多权限。
这是给 nfsclient 共享的两个简单共享

重新启动 nfs 服务或者重新加载共享

# /etc/init.d/nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]

注意:如果有人正在访问任何共享,请不要在生产环境中运行此命令,因为它会中断流量几秒钟。

通常我们使用以下命令重新加载 nfs 共享

# exportfs -r

上述命令重新导出所有目录,同步 /var/lib/nfs/etab 与 /etc/exports。
此选项删除 var/lib/nfs/etab 中已从 /etc/exports 中删除的条目,并删除内核导出表中不再有效的任何条目。

查看所有共享和应用的权限

# exportfs -v
/work           192.168.1.12(ro,wdelay,root_squash,no_subtree_check)
/myraid         192.168.1.12(ro,wdelay,root_squash,no_subtree_check)

好了,我们的服务器端工作已经完成,让我们转到 nfsclient

注意:为了便于测试,这里我们禁用了 iptables 和 selinux。

如果我们想使用 iptables,请将以下规则添加到 INPUT 链中:

# iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 2049 -j ACCEPT

在 nfs 客户端上

在这里,我们将 配置 autofs。

auto.master 文件

自动挂载程序的主要配置文件是 /etc/auto.master,也称为主映射。
主映射列出了系统上由 autofs 控制的挂载点,以及它们相应的配置文件或者称为自动挂载映射的网络源。

master map的格式如下所示:

mount-point map-name options

示例:

# vi /etc/auto.master
## 添加新的一行,内容如下:
/mnt    /etc/auto.misc  --timeout=20

说明

使用上面的行,我们将默认装载点设置为/mnt,并重定向到不同的文件,即auto.master文件,以查看/etc/auto.misc,了解有关我们要装载到/mnt上的共享和服务器详细信息的更多信息。
最后,我们提供了一个另外的选项,该选项提供了一个超时值,以便在20秒的情况下或者任何不活动的情况下卸载共享。

说明
mount-point例如,Autofs安装点,/mnt。
map-name包含挂载点列表的地图源的名称,以及应安装这些挂载点的文件系统位置。
options如果提供,则这些将适用于给定地图中的所有条目,只要它们本身就没有指定选项。此行为与Autofs版本4不同,其中选项累积。这已经改变以实现混合环境兼容性。

auto.misc 文件

地图的一般格式类似于主地图,但是“options”出现在挂载点和位置之间,而不是像master map那样出现在条目的末尾:

mount-point   [options]   location
说明
mount-point这是指Autofs安装点。这可以是间接挂载的单个目录名称或者直接安装的安装点的完整路径。每个直接和间接映射键(上面的安装点)可能后跟一个空间分隔的偏移目录列表(子目录名称每个以“/”开头),使它们称为多安装条目。
options每当提供时,这些都是未指定自己选项的地图条目的安装选项。
location这是指文件系统位置,例如本地文件系统路径(在Sun映射格式转发字符“之前:”用于以“/”开头的地图名称,NFS文件系统或者其他有效文件系统位置。

现在编辑 auto.misc 文件

# vi /etc/auto.misc
## Add a new line in the last as shown below
jack          -fstype=nfs             192.168.1.11:/work
raid            -fstype=nfs             192.168.1.11:/myraid

保存并退出文件

说明

在这里,我们为各自的共享定义了两个不同的挂载点“jack”和“raid”。
现在下次当我们尝试使用“cd”命令访问这些共享时,共享将自动挂载,完成后退出共享路径,20 秒后共享将被卸载。
我们已经为这两个共享指定了文件系统类型以及我们 NFS 服务器上的原始共享位置。

是时候重新加载我们的 autofs 服务了

验证 autofs 是否正在运行

# /etc/init.d/autofs status
automount (pid 5362) is running...
# /etc/init.d/autofs reload

重新加载maps

确保 NFS 共享尚未挂载

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       11G  2.5G  7.6G  25% /
/dev/sda1              99M   12M   83M  13% /boot
tmpfs                 506M     0  506M   0% /dev/shm

所以没有挂载 NFS 共享仍然让我们尝试访问它们

[root@nfsclient ~]# cd /mnt/jack
[root@nfsclient jack]# ls
deep  myfile.txt

正如我们所看到的,NFS 服务器上“jack”共享下的文件可以通过对共享执行“cd”从 nfsclient 访问

同样,我们可以尝试访问另一个共享,例如:“raid”

重要说明:如果我们不知道在 auto.misc 下使用的共享名称,那么我们将无法访问 NFS 共享,因为默认 /mnt 将显示为空。
仅当我们“cd”到共享目录时才会挂载共享。

我们可以使用 watch 命令来验证共享是否自动卸载。

# watch mount
Every 2.0s: mount                                       Fri Sep 26 21:16:56 2014
/dev/mapper/VolGroup00-LogVol00 on/type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.1.11:/work on /mnt/jack type nfs (rw,addr=192.168.1.11)

几秒钟后,挂载点“work”将自动卸载,如下所示

# watch mount
Every 2.0s: mount                                       Fri Sep 26 21:17:18 2014
/dev/mapper/VolGroup00-LogVol00 on/type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
Linux中如何配置autofs

Autofs的优点是什么?如何在Linux中配置Autofs?

什么是 Autofs?

Autofs 用于在我们访问文件系统时根据需要自动挂载它们,它不仅会自动挂载,而且可以在未使用特定预定义超时值时自动卸载任何文件系统。

为什么要使用 Autofs ?

常见的问题: 即使将 nfs 共享条目放在 /etc/fstab 中也可以使其自动挂载,那么它与 autofs 有何不同?
正如在上面定义的那样,autofs 不仅仅是/完全是关于在每次重新启动时安装共享。

假设一个 nfs 共享应该在启动时挂载,但由于某些原因而无法访问,这将导致启动延迟,甚至可能出现操作系统根本无法启动的情况。

AutoFS 的优点

  • 当用户尝试访问要挂载的远程文件系统的指定挂载点下的任何文件或者目录时,将自动且透明地访问共享。
  • 启动时间显着减少,因为启动时没有进行挂载。
  • 通过减少永久活动挂载点的数量,提高了网络访问和效率。
  • 通过将备用服务器指定为文件系统的源,可以减少失败的挂载请求。

在本文中,将介绍使用 NFS 共享的 autofs 的配置步骤

我们有两个服务器,分别是 nfsserver 和 nfsclient。

让我们开始在 nfsserver 上配置 NFS 共享

日期:2020-06-02 22:18:25 来源:oir作者:oir