Autofs自动挂载服务

autofs简介

mount是用来挂载文件系统的,可以在系统启动的时候挂载也可以在系统启动后挂载。对于本地固定设备,如硬盘可以使用mount挂载;而光盘、软盘、NFS、SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,即我们一般不能及时知道NFS共享和SMB什么时候可以挂载。而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文件系统。免去我们手动载在麻烦。要实现光驱,软盘等的动态自动挂载,需要进行相关的配置。

autofs工作原理

Autofs 是一项可自动挂载相应文件系统的客户端服务。以下是协同工作以完成自动挂载的组件:

  • automount 命令
  • autofs 文件系统
  • automountd 守护进程

自动挂载服务 svc:/system/filesystem/autofs 是在系统启动时调用的,它可读取主映射文件 auto_master 以创建最初的一组 autofs 挂载。这些 autofs 挂载在启动时不会自动挂载。这些挂载是一些点,以后将会在这些点之下挂载文件系统。这些点也称为触发节点。

设置 autofs 挂载后,这些挂载可以触发在其下挂载文件系统。例如,当 autofs 收到对当前尚未挂载的文件系统的访问请求时,autofs 会调用 automountd,实际上由该命令挂载请求的文件系统。

初始挂载 autofs 挂载后,必要时会使用 automount 命令更新 autofs 挂载。该命令将比较 auto_master 映射中的挂载列表和挂载表文件 /etc/mnttab(以前为 /etc/mtab)中的已挂载文件系统的列表。然后,automount 会做出相应更改。该进程允许系统管理员更改 auto_master 中的挂载信息,并使 autofs 进程可以使用这些更改,而无需停止并重新启动 autofs 守护进程。挂载文件系统后,在自动取消挂载文件系统之前,进一步进行访问不需要 automountd 执行任何操作。

与 mount 不同,automount 并不会从 /etc/fstab 文件(该文件特定于每台计算机)中读取要挂载的文件系统列表(在NFS这类网络文件系统中,配置在/etc/fstab 里无法达到开机自启的目的,因为电脑开机会去读/etc/fstab ,但此时网络并未启动,所以无法达到开机挂载的目的)。在域中或在计算机上,automount 命令是通过名称空间或本地文件进行控制的。

以下是有关 autofs 工作方式的简要概述。

自动挂载守护进程 automountd 是在引导时由服务 svc:/system/filesystem/autofs 启动的。请参见图。此服务还运行 automount 命令,该命令读取主映射并安装 autofs 挂载点。

svc:/system/filesystem/autofs 服务启动 automount
Autofs自动挂载服务_第1张图片

image:文中对该图形进行了说明。
Autofs 是支持自动挂载和取消挂载的内核文件系统。

请求访问 autofs 挂载点处的文件系统时,将发生下列情况:

Autofs 拦截请求。
Autofs 将消息发送到 automountd,以便挂载请求的文件系统。
automountd 在映射中查找文件系统信息,创建触发节点并执行挂载。
Autofs 允许继续处理被拦截的请求。

当文件系统在一段时间内没有活动后,Autofs 将取消挂载该文件系统。
注 - 不应手动挂载或取消挂载通过 autofs 服务管理的挂载。即使手动操作成功,autofs 服务也不会检查是否已取消挂载该对象,从而可能导致不一致。重新引导时将清除所有 autofs 挂载点。

Autofs 将搜索一系列映射以在网络中进行导航。映射是包含诸如网络中的所有用户的口令项或网络中的所有主机名称等信息的文件。实际上,这些映射包含网络范围内与 UNIX 管理文件等效的文件。可以在本地使用映射,或通过网络名称服务(如 NIS 或 NIS+)使用映射。

automount 命令在系统启动时读取主映射。主映射中的项包括直接映射名或间接映射名、映射路径和映射的挂载选项。项的具体顺序并不重要。automount 会将主映射中的项与挂载表中的项进行比较,以生成最新列表。

配置简介

  • 主配置文件:/etc/auto.master,格式:
    挂载目录 映射文件 参数
    例如:
/misc /etc/auto.misc --timeout=60
  • 映射文件/etc/auto.misc格式:
    关键字 挂载选项 设备
    例如:
cd               -fstype=iso9660,ro           :/dev/cdrom
fd               -fstype=auto                  :/dev/fd0

设备如果是本地的,必须以:开头

  • 重新启动autofs服务:

    # service autofs restart

  • 访问设备的方法:挂载目录+关键字
    例如:

    #ls /misc/cd

ps:挂载是由使用导致的,卸载是由访问时间到时导致的。

参考:http://www.turbolinux.com.cn/turbo/wiki/doku.php?id=%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86:autofs

你可能感兴趣的:(文件系统,autofs)