跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中管理网络文件系统 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍在您自己的环境中可能会遇到的一些最常见任务。其中包括针对每种情况的建议步骤,以帮助您配置 autofs,从而最好地满足客户机的需要。
下表提供了与 autofs 相关的许多任务的说明和链接。
表 2-5 Autofs 管理的任务列表
|
可以使用 SMF 参数配置 autofs 环境。具体而言,该工具提供了用于配置 autofs 命令和 autofs 守护进程的又一方法。在命令行上执行的指定也可以使用 sharectl 命令实现。您可以通过为关键字提供值来进行指定。
以下过程说明如何使用 sharectl 命令管理 autofs 参数。
例如,如果要关闭对所有 autofs 挂载点的浏览,请使用以下命令:
# sharectl set -p nobrowse=on autofs
nobrowse 关键字与 automountd 的 -n 选项等效。
键入以下命令:
# svcadm restart system/filesystem/autofs
下表介绍了管理 autofs 映射时需要注意的几个因素。选择的映射和名称服务将影响对 autofs 映射进行更改时需要使用的机制。
表 2-6 autofs 映射类型及其使用
|
下表介绍了如何对基于名称服务的 autofs 环境进行更改。
表 2-7 映射维护
|
下表提示您何时运行 automount 命令,具体取决于对映射类型已做的修改。例如,如果添加或删除了某个直接映射,则需要在本地系统上运行 automount 命令。通过运行该命令,可使更改生效。但是,如果修改了现有项,则无需运行 automount 命令以使更改生效。
表 2-8 何时运行 automount 命令
|
以下过程说明如何更新多种类型的自动挂载程序映射。
更改映射所需的具体步骤取决于您使用的名称服务。
通知是必需的,以便用户还可以在其各自的计算机上以超级用户身份运行 automount 命令。请注意,只要运行 automount 命令,即会从主映射中收集信息。
更改映射所需的具体步骤取决于您使用的名称服务。
更改映射所需的具体步骤取决于您使用的名称服务。
通知是必需的,以便用户可以在需要时在其各自的计算机上以超级用户身份运行 automount 命令。
注 - 如果仅修改或更改现有直接映射项的内容,则无需运行 automount 命令。
例如,假定修改了 auto_direct 映射,以便从其他服务器挂载 /usr/src 目录。如果此时未挂载 /usr/src,则尝试访问 /usr/src 时新的项会立即生效。如果现在已挂载了 /usr/src,则可以等到进行自动取消挂载,然后再访问该文件。
注 - 请尽可能使用间接映射。间接映射更容易构造,并且对计算机文件系统的要求较少。另外,间接映射也不会像直接映射那样在挂载表中占用很多空间。
如果已在 /src 上挂载了本地磁盘分区并且计划使用 autofs 服务来挂载其他源目录,则可能会遇到问题。如果指定挂载点 /src,则只要尝试访问本地分区,NFS 服务便会隐藏该分区。
需要在其他某个位置(例如在 /export/src 上)挂载该分区。然后,需要在 /etc/vfstab 中添加如下项:
/dev/dsk/d0t3d0s5 /dev/rdsk/c0t3d0s5 /export/src ufs 3 yes -
还需要在 auto_src 中添加此项:
terra terra:/export/src
terra 是计算机的名称。
Autofs 还可以挂载 NFS 文件以外的其他文件。Autofs 会将文件挂载在可移除介质上,如磁盘或 CD-ROM。
可以将介质放入驱动器并从映射中引用文件系统,而不要从服务器挂载文件系统。如果计划访问非 NFS 文件系统并且使用的是 autofs,请参见以下过程。
可以采用多种方式设置自动挂载程序映射。以下任务给出了有关如何定制自动挂载程序映射以提供易用目录结构的详细信息。
理想情况是,所有的网络用户均可以在 /home 下找到其各自的或任何人的起始目录。此视图应该在所有计算机(无论是客户机还是服务器)中是通用的。
每个 Oracle Solaris 安装都附带一个主映射:/etc/auto_master。
# Master map for autofs # +auto_master /net -hosts -nosuid,nobrowse /home auto_home -nobrowse /nfs4 -fedfs -ro,nosuid,nobrowse
另外,还会在 /etc 下安装 auto_home 的映射。
# Home directory map for autofs # rusty dragon:/export/home/& +auto_home
创建新的本地用户时,会自动在 /etc/auto_home 中添加一个项。这样,在名为 dragon 的服务器中,可以通过 /export/home/rusty 或 /home/rusty 访问 rusty 的起始目录。
注 - 不应允许用户从其起始目录运行 setuid 可执行文件。如果没有此限制,任何用户在任何计算机上都可具有超级用户权限。
如果系统具有多个分区,请将这些分区安装在单独的目录下,例如 /export/home1 和 /export/home2。
每次创建新的用户帐户时,请在 auto_home 映射中键入用户起始目录的位置。映射项可以非常简单,例如:
rusty dragon:/export/home1/& gwenda dragon:/export/home1/& charles sundog:/export/home2/& rich dragon:/export/home3/&
请注意使用 &(和符号)替代映射关键字。和符号是以下示例中第二次出现的 rusty 的缩写。
rusty dragon:/export/home1/rusty
如果提供了 auto_home 映射,则用户可以引用路径为 /home/user 的任何起始目录(包括其本身的起始目录)。user 是它们在映射中的登录名和关键字。登录到其他用户的计算机时,此所有起始目录的通用视图非常重要。Autofs 将为您挂载起始目录。同样,如果在其他计算机上运行远程窗口系统客户机,则该客户机程序具有与 /home 目录视图相同的视图。
此通用视图还将扩展到服务器。以前面的示例为例,如果 rusty 登录到服务器 dragon,则 autofs 会通过将 /export/home1/rusty 回送挂载到 /home/rusty 上来提供对本地磁盘的直接访问。
用户无需知道其起始目录的实际位置。如果 rusty 需要更多磁盘空间,并且需要将其起始目录重新定位到其他服务器,则简单更改就足够了。只需更改 auto_home 映射中 rusty 的项,即可反映新的位置。其他用户可以继续使用 /home/rusty 路径。
假定您是某个大型软件开发项目的管理员。您计划在名为 /ws 的目录下提供所有与项目相关的文件。此目录将在站点上的所有工作站中通用。
/ws auto_ws -nosuid
auto_ws 映射可确定 /ws 目录的内容。
此选项可阻止用户运行任何工作区可能存在的 setuid 程序。
auto_ws 映射已经过组织,因此每项都能描述一个子项目。首次尝试添加时将生成如下映射:
compiler alpha:/export/ws/& windows alpha:/export/ws/& files bravo:/export/ws/& drivers alpha:/export/ws/& man bravo:/export/ws/& tools delta:/export/ws/&
每项结尾的和符号 (&) 是该项关键字的缩写。例如,第一项与以下内容等效:
compiler alpha:/export/ws/compiler
首次尝试添加时会提供一个外观简单的映射,但该映射不适合。项目组织者决定应提供 man 项中的文档作为每个子项目下的子目录。另外,每个子项目都要求子目录描述该软件的多个版本。必须将其中的每个子目录都指定给服务器上的整个磁盘分区。
请按如下所示修改映射中的各项:
compiler \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /vers2.0 bravo:/export/ws/&/vers2.0 \ /man bravo:/export/ws/&/man windows \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /man bravo:/export/ws/&/man files \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /vers2.0 bravo:/export/ws/&/vers2.0 \ /vers3.0 bravo:/export/ws/&/vers3.0 \ /man bravo:/export/ws/&/man drivers \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /man bravo:/export/ws/&/man tools \ / delta:/export/ws/&
尽管现在映射看起来比较大,但是映射仍然仅包含五个项。由于每项都包含多个挂载,因此每项都比较大。例如,对 /ws/compiler 的引用要求挂载 vers1.0、vers2.0 和 man 三个目录。每一行结尾的反斜杠将通知 autofs 该项会继续进入下一行。实际上,尽管使用了换行符和一些缩进以使该项更具可读性,但该项仍是较长的一行。tools 目录包含所有子项目的软件开发工具,因此该目录不遵循相同的子目录结构。tools 目录仍然表示单个挂载。
这种安排为管理员提供了许多灵活性。软件项目通常会占用大量磁盘空间。在项目的整个生命周期内,可能需要重新定位并扩展各种磁盘分区。如果这些更改反映在 auto_ws 映射中,则无需通知用户,因为 /ws 下的目录分层结构未被更改。
由于服务器 alpha 和 bravo 查看的是同一个 autofs 映射,因此登录到这些计算机的任何用户都可以找到预期的 /ws 名称空间。系统将为这些用户提供通过回送挂载(而不是 NFS 挂载)对本地文件的直接访问。
您需要为本地可执行文件和应用程序(如电子表格应用程序和字处理软件包)汇编一个共享名称空间。此名称空间的客户机使用要求不同可执行文件格式的多个不同的工作站体系结构。另外,某些工作站运行的是不同发行版的操作系统。
请参见《Oracle Solaris Administration: Naming and Directory Services》。
此名称可使属于此空间的文件和目录易于识别。例如,如果选择 /usr/local 作为名称,则路径 /usr/local/bin 显然属于此名称空间。
在 /usr/local 中挂载此映射。在 NIS auto_master 映射中设置以下项:
/usr/local auto_local -ro
请注意,-ro 挂载选项表明客户机不能对任何文件或目录执行写入操作。
目录结构如下:
bin aa:/export/local/bin
bin aa:/export/local/bin/$CPU
对于 SPARC 客户机-将可执行文件放入 /export/local/bin/sparc 中。
对于 x86 客户机-将可执行文件放入 /export/local/bin/i386 中。
可以将 autofs OSREL 变量与 CPU 变量合并,以形成可同时确定 CPU 类型和 OS 发行版的名称。
bin aa:/export/local/bin/$CPU$OSREL
对于运行操作系统版本 5.6 的客户机,请导出以下文件系统:
对于 SPARC 客户机-导出 /export/local/bin/sparc5.6。
对于 x86 客户机-将可执行文件放入 /export/local/bin/i3865.6 中。
共享已复制的只读文件系统的最佳方法是使用故障转移。有关故障转移的说明,请参见客户端故障转移。
bin aa,bb,cc,dd:/export/local/bin/$CPU
Autofs 会选择距离最近的服务器。如果服务器具有多个网络接口,请列出每个接口。Autofs 会选择距离客户机最近的接口,从而避免路由不必要的 NFS 流量。
/home auto_home -nosuid
nosuid 选项可阻止用户创建设置了 setuid 或 setgid 位的文件。
此项将覆盖普通的本地 /etc/auto_master 文件中的 /home 的项。请参见前面的示例。由于对外部名称服务映射的 +auto_master 引用出现在该文件中的 /home 项之前,因此会发生覆盖。如果 auto_home 映射中的项包括挂载选项,则会覆盖 nosuid 选项。因此,在 auto_home 映射中不应使用任何选项,或者如果使用,则每项都必须包括 nosuid 选项。
注 - 请勿在服务器的 /home 上或下挂载起始目录磁盘分区。
/usr/local -ro,public bee:/export/share/local
public 选项会强制使用公共句柄。如果 NFS 服务器不支持公共文件句柄,则挂载将失败。
/usr/local -ro nfs://bee/export/share/local
服务会尝试在 NFS 服务器上使用公共文件句柄。但是,如果该服务器不支持公共文件句柄,则会使用 MOUNT 协议。
安装的 /etc/auto_master 的缺省版本会向 /home 和 /net 项添加 -nobrowse 选项。此外,如果未曾修改 /etc/auto_master 中的 /home 和 /net 项,则升级过程中会向这些项添加 -nobrowse 选项。但是,可能必须手动进行这些更改,或在安装后针对站点特定的 autofs 挂载点关闭浏览功能。
可以采用多种方式关闭浏览功能。使用 automountd 守护进程的命令行选项禁用该功能,此方式可针对客户机完全禁用 autofs 浏览功能。或者使用 autofs 映射针对所有客户机上的每个映射项禁用浏览功能。另外,还可以在未使用网络范围名称空间的情况下使用本地 autofs 映射,针对每台客户机上的每个映射项禁用该功能。
# sharectl set -p nobrowse=TRUE autofs
# svcadm restart system/filesystem/autofs
要针对所有客户机禁用浏览功能,必须使用某个名称服务,如 NIS。否则,需要手动编辑每台客户机上的自动挂载程序映射。在本示例中,/home 目录的浏览功能已禁用。必须对需要禁用的每个间接 autofs 节点遵照以下过程执行操作。
/home auto_home -nobrowse
在客户机系统上运行 automount 命令后或重新引导后,新的行为才会生效。
# /usr/sbin/automount
在本示例中,/net 目录的浏览功能已禁用。对于 /home 或其他任何 autofs 挂载点可以使用同一过程。
name-service/switch 服务中的 config/automount 属性显示了自动挂载信息的搜索顺序。
# svcprop -p config svc:/system/name-service/switch config/value_authorization astring solaris.smf.value.name-service.switch config/printer astring user\ files config/default astring files\ nis config/automount astring files\ nis
最后的项表明将首先搜索本地自动挂载文件,然后才检查 NIS 服务。config/default 项指定了对未明确列出的所有命名信息的搜索顺序。
除使本地文件优先于名称空间中的项以外,还必须将 +auto_master 项移至 /net 后面:
# Master map for automounter # /net -hosts -nosuid /home auto_home /nfs4 -fedfs -ro,nosuid,nobrowse +auto_master
标准配置会将 +auto_master 项置于文件的顶部。此放置方式可防止使用任何本地更改。
/net -hosts -nosuid,nobrowse
在客户机系统上运行 automount 命令后或重新引导后,新的行为才会生效。
# /usr/sbin/automount