使用自动挂载器挂载 NFS 导出
自动挂载器是一项服务(autofs),可根据需要自动挂载文件系统和 NFS 导出,并在挂载的资源当前不再使用时自动卸载文件系统和 NFS 导出。
自动挂载器功能的诞生是为了解决非特权用户没有足够权限来使用挂载命令的问题。如果不使用挂载命令,普通用户将无法访问可移动介质,如 CD、DVD 和可移动磁盘驱动器。此外,如果本地或远程文件系统未在启动时使用 /etc/fstab 配置进行挂载,则普通用户无法挂载和访问这些未挂载的文件系统。
自动挂载器配置文件中填充了文件系统挂载信息,其方式与 /etc/fstab 条目类似。虽然 /etc/fstab 文件系统在系统启动期间挂载,并在系统关机或其他干预之前保持挂载状态,但自动挂载器文件系统不一定会在系统启动期间进行挂载。相反,当用户或应用尝试进入文件系统挂载点以访问文件时,自动挂载器控制的文件系统会按需进行挂载。
自动挂载器优势
自动挂载器文件系统的资源使用等同于在启动时挂载的文件系统,因为文件系统仅在程序读取和写入打开的文件时使用资源。已挂载但空闲的文件系统和未挂载的文件系统几乎不使用资源。
自动挂载器的优势在于,通过在每次不再使用文件系统时将其卸载,可以防止文件系统在打开期间意外损坏。当文件系统再次定向到挂载时,autofs 服务使用最新的挂载配置,这与 /etc/fstab 挂载不同,后者可能仍使用数月前在上次系统启动期间挂载的配置。此外,如果您的 NFS 服务器配置包括冗余服务器和路径,则每次请求新文件系统时自动挂载器都可以选择最快的连接。
自动挂载器 autofs 服务方法
autofs 服务支持与 /etc/fstab 文件中相同的本地和远程文件系统,包括 NFS 和 SMB 文件共享协议,并且支持特定于协议的挂载选项,包括安全参数。默认情况下,通过自动挂载器挂载的文件系统可供所有用户使用,但可以通过访问权限选项进行限制。
由于自动挂载器是使用标准 mount 和 umount 命令管理文件系统的客户端侧配置,因此使用中的自动挂载文件系统表现出的行为与使用 /etc/fstab 挂载的文件系统相同。区别在于,自动挂载器文件系统会保持卸载状态,直到挂载点被访问(这会导致文件系统立即挂载),并且在文件系统使用期间保持挂载。当文件系统上的所有文件都已关闭,并且所有用户和进程都离开挂载点目录后,自动挂载器将在最短超时后卸载文件系统。
直接和间接映射用例
自动挂载器支持直接和间接挂载点映射,以处理两种类型的按需挂载。直接挂载是指文件系统挂载到不变的已知挂载点位置。在了解自动挂载器之前,您配置的所有文件系统挂载几乎都是直接挂载的示例。直接挂载点作为永久目录存在,与其他普通目录相同。
间接挂载是指直到挂载请求发生时才会知道挂载点位置。远程挂载主目录的配置就是间接挂载的一个示例,其中用户的主目录在目录路径中包含其用户名。只有在自动挂载器获知哪一用户指定了要挂载其主目录,并确定了要使用的挂载点位置后,才会将用户的远程文件系统挂载到其主目录。虽然间接挂载点表现为存在,但 autofs 服务会在发生挂载请求时才会创建它们,并在请求结束并且文件系统卸载后再次删除它们。
配置自动挂载器服务
配置自动挂载的过程包含许多步骤。
首先,您必须安装 autofs 和 nfs‑utils 软件包。
bash
[user@host ~]$ sudo dnf install autofs nfs-utils
这些软件包包含使用自动挂载器进行 NFS 导出的所有要求。
创建主映射
接下来,向 /etc/auto.master.d 添加一个主映射文件。此文件确定用于挂载点的基础目录,并确定用于创建自动挂载的映射文件。
bash
[user@host ~]$ sudo vim /etc/auto.master.d/demo.autofs
主映射文件的名称大多是任意的(尽管通常会有一定的含义),为了让子系统能够识别,它必须以 .autofs 作为扩展名。您可以在一个主映射文件中放置多个条目;或者,您可以创建多个主映射文件,且各自包含的条目都进行逻辑分组。
在间接映射挂载的主映射条目中包含以下内容:
bash
/shares /etc/auto.demo
此条目将使用 /shares 目录作为间接自动挂载的基础目录。/etc/auto.demo 文件中包含挂载详细信息。请使用绝对文件名。在启动 autofs 服务之前,必须先创建 auto.demo 文件。