Solaris 10 Advance Administrator 310-202 读书笔记 第七章----ConfiguringAutoFS
自动挂接文件系统提供一个按照需要自动挂接NFS 文件系统的机制,并且,在预定义的系统休止状态之后会自动取消文件系统挂接。挂接点有本地或分布式自动挂接地图指定。
一. 自动挂接系统介绍
自动文件挂接机制通过NFS 协议提供自动挂接功能。AutoFS 是一种客户- 服务器类型的服务,由/lib/svc/automount 脚本初始化,这个脚本在系统启动时自动运行,脚本运行automount 命令读取AutoFS 配置文件,然后调用自动挂接后台程序automountd 。这个后台程序不间断的按照需要对服务器端目录运行挂接,免挂接操作。
无论什么时候,只要用户在客户端电脑上尝试访问运行自动挂接后台程序去访问服务器端的文件和目录,这个后台程序就会把远端的目录或文件挂接到挂接点上。只要有需要,这个远程文件系统会一直保持连接。如果远程文件系统在预定义的时间范围内没有被访问过,自动挂接的后台程序就会取消文件系统的挂接。
AutoFS 服务再不受任何用户干涉的情况下,按照需求挂接和取消挂接文件系统。用户不需要运用mount 和umount 命令,也不需要知道超级用户的密码。
AutoFS 文件系统可以实现如下的功能:
1 .按需挂接系统。
2 .自动取消文件系统挂接。
3 .运用命名服务集中管理AutoFS 挂接,这样可以有效的减少管理消耗的时间。
4 .创建多样的挂接资源,如可读写文件系统,只读文件系统。
自动挂接工具包含三个部分:
1 .AutoFS 文件系统。
2 .automountd 后台程序。
3 .automount 命令。
AutoFS 文件系统
在客户端的系统中,一个自动文件挂接系统的挂接点定义在自动挂接地图中。
在AutoFS 挂接点设置好之后,挂接点的行为可以触发远程文件系统被挂接到挂接点上。如果自动挂接地图被设定好,AutoFS 内核模块会监控客户端的请求,当某个请求对应的远程文件系统当前没有挂接,AutoFS 服务就会调用automountd 后台程序挂接客户请求的资源。
automountd 后台程序
/lib/svc/method/svc-autofs 脚本启动automountd 后台程序。这个后台程序按需挂接系统,并取消空闲的挂接点。
注意:automountd 后台程序是完全独立于automount 命令的,正因为有这种隔离,你不需要停止或启动automountd 后台程序,就可以添加,删除或者改变map (挂接地图)信息。
automount 命令
自动挂接命令在系统启动时被调用,通过读取主要的挂接地图来创建最初始的自动挂点。这些自动挂接点在系统启动时并没有被自动挂接到系统上,这些挂接点会按照系统的需求挂接起来。
使用自动挂接地图
自动挂接的文件系统资源定义在自动挂接地图中(automount maps )。地图文件定义在/etc 目录下。
自动挂接地图类型包括:
1 .Master map 主要地图---- 列出设立AutoFS 文件系统的其它地图文件。Automount 命令在系统启动时会读取这个地图文件。
2 .Direct map 直接地图---- 列出挂接点的绝对路径名,这个地图文件清楚地指明客户机上的挂接点。
3 .Indirect map 间接地图---- 列出挂接点的相对路径名,这个地图文件运用相对路径确定客户机上的挂接点。
4 .Special 特殊的 ---- 运用主机名提供对NFS 服务器的访问入口。
自动挂接地图文件内容可以从如下的文件或的:ASCII 数据文件,NIS 地图文件,NIS+ 表,或者是一个LDAP 数据库。合起来,这些maps 描述的信息类似于/etc/vfstab 文件中的信息。
自动挂接地图的来源由/etc/nsswith.conf 文件中的自动挂接入口决定。
例如:automount: files
告诉我们automount 命令应该访问/etc 目录来寻找他的配置信息。如果用nis 代替files ,表示automount 命令会检查NIS 地图,来寻找他的配置信息。
设置Master Map
auto_master 地图包含和地图相联接的一个目录,或者相联接的一个挂接点。Automaster 地图是AutoFS 服务必须检查的所有地图的主要列表。参照/etc 目录或命名服务数据库的路径名和间接的地图列在这个地图中。
为一个map 连接一个挂接点
下面的例子显示/etc/auto_master 文件的例子
# cat /etc/auto_master
# Master map for automounter
#
+auto_master
/net -hosts -nosuid,nobrowse
/home auto_home –nobrowse
auto_master 地图的一般语法是:
mount point map name mount options
mount point 是指目录的全称路径名,如果这个目录不存在,AutoFS 服务就会创建一个。
map name 目录名或间接地图,这些地图提供挂接信息。这个栏位相关的路径名需要AutoFS 参考/etc/nsswitch.conf 文件,来确定本地地图位置。
mount options 地图文件的一般选项。这些选项类似于NFS 挂接的选项。然而nobrowse 选项仅是AutoFS 的选项。
注意:+auto_master 前面的加号表示automountd 后台程序在读取其他map 之前会查看NIS,NIS+, 或LDAP 数据库。如果这一行被注释掉,表示只有本地文件被查找,除非/etc/nsswith.conf 文件指定NIS,NIS+, 或者LDAP 必须被查找。
为基本地图识别挂接点
在默认的/etc/auto_master 文件中有两个挂接点入口。
1 .-host map 提供对所有NFS 服务器共享资源的访问入口。这些由服务器共享出的资源挂接在/net/hostname 目录下,或者,如果仅知道服务器的IP 地址,则资源挂接在/net/IPaddress 目录下。服务器不需要为这个机制在hosts 数据库中列出来。
2 .auto_home 这个地图允许用户访问他们本地$HOME 目录下的资源。
使用/net 目录
和主机地图相关的一些共享资源被挂接在/net/hostname 目录下。例如: 在sys42 主机上有一个共享资源为/documentation ,可以用如下命令挂接起来
cd /net/sys42/documentation
使用cd 命令触发对sys42 资源的自动挂接,从而省去了登陆到sys42 文件系统的操作。任何用户都可以运用这个命令改变目录到服务器共享的资源中去。
这些资源会保持到预定义时间限制结束为止。
-nobrowse 选项会预防所有潜在的挂接点被看到,只有真正被挂接的资源才可以看到。
添加直接地图条目
在master 地图中 /- 条目定义了一个直接maps 的挂接点。
# cat /etc/auto_master
# Master map for automounter
#
+auto_master
/net -hosts -nosuid,nobrowse
/home auto_home -nobrowse
/- auto_direct -ro
/- 挂接点是一个指示器,他告诉automount 工具全称路径名定义在文件中,这个定义文件由map_name 指定(例如/etc/auto_direct )。
注意:在默认的master map 中并没有/- 入口,这里只是作为一个例子。例子中其他的条目已存在auto_master 文件中了。
虽然map_name 条目指定为auto_direct ,但是automount 工具还是会自动搜索/etc 下所有相关的map 文件。因此,基于/etc/nsswith.conf 机制的自动挂接入口文件,auto_direct 文件是指/etc/auto_direct ,如果auto_direct 文件被保存在其他地方,那么就应当给出文件的绝对路径。
注意:NIS, 或NIS+ 的master map 可以只有一个直接map 入口,这个master map 作为一个本地文件可以有许多入口。
创建一个直接map
直接map 指定挂接点的绝对路径名,这个挂接点和相应远程资源的指定选项如下 所示:
# cat /etc/auto_direct
# Superuser-created direct map for automounter
#
/apps/frame -ro,soft server1:/export/framemaker,v6.0
/opt/local -ro,soft server2:/export/unbundled
/usr/share/man -ro,soft server3,server4,server5:/usr/share/man
直接map 的语法如下:
Key [mount-options] location
Key---- 挂接点的全称路径名
Mount-options ---- 已给出的入口的指定选项
Location---- 文件系统资源的位置,表示为:server:pathname
接下来的直接map 入口指定客户端从server3,server4,server5 上以只读的形式挂接了/usr/share/man 目录
/usr/share/man -ro server3,server4,server5:/usr/share/man
这个入口使用了一个特殊的符号“,”来隔离服务器,显示了一个强大的自动挂接功能---- 多点挂接。Automountd 后台程序按照请求自动挂接服务器上的/usr/share/man 目录,这些服务器会按照服务器的优先顺序或管理员定义的级别来进行选择,如果最近的服务器在响应期限内响应失败,下一个服务器会被选为第一响应服务。
注意:对多个服务器的选择标准被定一在复制档案系统里。
添加间接map 入口
/home 入口定义了一个间接入口的挂接点。auto_home 地图仅列出了相对路径,间接map 从master map 中获得初始化的挂接点路径。
# cat /etc/auto_master
# Master map for automounter
#
+auto_master
/net -hosts -nosuid,nobrowse
/home auto_home –nobrowse
从Solaris2.6 到Solaris10 都支持-browse 选项对间接map 和特殊map 的访问,
它允许所有的潜在挂接点可见,无论这些挂接点是否被挂接上了。-nobrowse 选项
会取消对间接map 的访问。因此在例子中/home 自动挂接点不提供对任何目录的访、问功能,除了那些被挂当前已经挂接的系统,这个选项的默认值是-browse
创建一个间接map
使用auto_home 间接map 列出主目录的网络访问入口,例如:
# cat /etc/auto_home
# Home directory map for automounter
#
+auto_home
stevenu host5:/export/home/stevenu
johnnyd host6:/export/home/johnnyd
wkd server1:/export/home/wkd
mary mars:/export/home/mary
/etc/auto_home 例子中包含了下面的挂接点:/home/stevenu,/home/johnnyd,
/home/wkd 和/home/mary
间接地图的语法为:
key [ mount-options ] location
key---- 指定挂接点相对于master map 中定义的路径开头的路径名。
Mount-options ---- 指定一个已经给出的入口的选项
Location ---- 指定文件资源的位置,表示为:server:pathname
把auto_home 地图缩短为一行
下面的入口把auto_home 文件缩短为一行,这里使用loginID 作为替代符号,客户
端从网络服务器server1 远程挂接/export/home/loginID 目录到本地挂接点/home/loginID 。如下例所示,入口使用统配符匹配key 值,统配符不可以与任何其他符号结合。在位置后面的替代符号为& ,使用统配符和替代符必须所有home 目录都在同一台服务器server1 上。
* server1:/export/home/&
改变自动挂接map
当改变了master map 中的内容或者创建了一个直接map ,可以用automount 命令使改变生效。
运行automount 命令
命令语法为:
automount [-t duration] [-v]
-t duration ---- 用秒的格式指定一个时间,限制文件系统空闲时间,默认值为600 秒。
-v ----- 指定详细的模式,可以显示automount 执行过程的详细信息。
你不需要重新启动automountd 后台程序来使改变生效,因为这个后台程序是没有状态的。
你可以任何时候修改直接map ,新的信息会在automountd 后台程序下次访问的时候生效。
任何对间接map 的修改会被automountd 后台程序自动使用。
一个修改可以是选项的改变,资源的改变,也可以是key 值或挂接点的改变,也可以是加入一个新的挂接入口或删除一个入口。
什么时候需要运行automount 命令:
检验AutoFS 在/etc/mnttab 文件中的条目
/etc/mnttab 文件是一个文件系统,该文件系统提供只读访问权限,它以列表的形式记录了挂接到本机上的文件系统信息。挂接一个文件系统,会增加一条记录到表中,取消一个文件系统的挂接会从表中删除一条记录。
任何一个条目会以一个记录行表示,行中每列信息由空格隔开。
Special mount_point fstype options time
Special---- 表示被挂接的资源
Mount-point---- 表示文件系统在远端的的挂接点路径
Fstype---- 文件系统类型
Options---- 本地挂接点
Time---- 文件系统被挂接的时间点
你可以显示/etc/mnttab 文件,从而获得文件挂接信息的一个快照。里面包含了自动挂接系统类型
# grep autofs /etc/mnttab
-hosts /net autofs nosuid,indirect,ignore,nobrowse,dev=4e00001
1099678245
auto_home /home autofs indirect,ignore,nobrowse,dev=4e00002
1099678245
-hosts /net/sys-02/rdbms_files autofs
nosuid,ignore,nest,nobrowse,dev=4e000031099679619
-hosts /net/sys-02/usr autofs nosuid,ignore,nest,nobrowse,dev=4e00004
1099679619
停止和启动自动挂接文件系统
自动挂接系统服务随着运行等级的不同开启或废除,或者你可以使用命令手动开启
或停止服务运行。
停止自动挂接系统服务
当AutoFs 服务被废除了,它会强制取消所有自动挂接系统,并杀掉automountd
后台进程。
当改变到单用户模式下,AutoFS 服务会自动废除。
废除服务,你需要变为超级用户,使用下面的命令停止automountd 后台进程。
# svcadm disable svc:/system/filesystem/autofs
启动自动挂接系统服务
当AutoFS 服务被激活之后,SMF 会开启automountd 后台进程,然后后台运行
automount 工具
当切换到多用户模式下,AutoFS 服务会自动开启。
如果要手工运行该服务,你必须成为超级用户,并使用下面的命令:
# svcadm enable svc:/system/filesystem/autofs