创建和使用 Oracle® Solaris 区域

退出打印视图

更新时间: 2015 年 5 月
 
 

安全限制和文件系统行为

在区域中挂载某些文件系统时存在安全限制。其他文件系统在区域中挂载时会显示出特殊行为。已修改的文件系统列表如下。

AutoFS

Autofs 是一项可自动挂载相应文件系统的客户端服务。当客户机尝试访问目前未挂载的文件系统时,AutoFS 文件系统会拦截请求并调用 automountd 以挂载请求的目录。在区域中建立的 AutoFS 挂载对于此区域而言是本地挂载。不能从其他区域(包括全局区域)访问这些挂载。在停止或重新引导区域时,将删除挂载。有关 AutoFS 的更多信息,请参见在 Oracle Solaris 11.2 中管理网络文件系统 中的Autofs 的工作原理

每个区域都运行自己的 automountd 副本。自动映射和超时由区域管理员控制。不能跨越非全局区域的 AutoFS 挂载点从全局区域触发其他区域中的挂载。

触发其他挂载时,便会在内核中创建某些 AutoFS 挂载。此类挂载不能使用常规 umount 接口删除,因为它们必须作为一个组进行挂载或卸载。请注意,提供此功能是为了关闭区域。

MNTFS

MNTFS 是一款虚拟文件系统,可提供本地系统中已挂载文件系统表的只读访问权限。在非全局区域中使用 mnttab 可查看的一组文件系统是该区域中已挂载的一组文件系统和一个根 (/) 项。具有无法在区域中访问的特殊设备的挂载点(例如 /dev/rdsk/c0t0d0s0)都将其特殊设备的挂载点设置为与此挂载点相同。系统中的所有挂载都可从全局区域的 /etc/mnttab 表中查看。有关 MNTFS 的更多信息,请参见在 Oracle Solaris 11.2 中管理网络文件系统 中的挂载文件系统

NFS

在区域中建立的 NFS 挂载对于此区域而言是本地挂载。不能从其他区域(包括全局区域)访问这些挂载。在停止或重新引导区域时,将删除挂载。

在区域中,NFS 挂载如同使用 nodevices 选项进行挂载。

nfsstat 命令输出仅与运行此命令的区域有关。例如,如果在全局区域中运行此命令,则仅报告有关此全局区域的信息。有关 nfsstat 命令的更多信息,请参见 nfsstat(1M)

PROCFS

/proc 文件系统(或 PROCFS)提供进程可见性和访问限制,同时还提供有关进程的区域关联的信息。通过 /proc 只能查看同一区域中的进程。

全局区域中的进程可以查看非全局区域中的进程和其他对象。这样,此类进程便可查看整个系统范围的内容。

在区域中,procfs 挂载如同使用 nodevices 选项进行挂载。有关 procfs 的更多信息,请参见 proc(4) 手册页。

LOFS

通过 LOFS 进行挂载的范围被限制为区域中可见的文件系统部分。因此,对区域中的 LOFS 挂载没有任何限制。

UFS、UDFS、PCFS 以及其他基于存储的文件系统

使用 zonecfg 命令配置具有 fsck 二进制命令的基于存储的文件系统(例如 UFS)时,区域管理员必须指定 raw 参数。该参数指明原始(字符)设备,如 /dev/rdsk/c0t0d0s7zoneadmd 守护进程自动在清理模式下运行 fsck 命令 (fsck –p),该命令在挂载文件系统之前以非交互方式检查并修复文件系统。如果 fsck 失败,则 zoneadmd 无法使区域达到就绪状态。由 raw 指定的路径不能是相对路径。

对于没有在 /usr/lib/fs/ fstype/fsck 中提供 fsck 二进制代码的文件系统,不能为 fsck 指定设备。如果此文件系统具有 fsck 二进制命令,则必须为 fsck 指定设备。

有关更多信息,请参见zoneadmd 守护进程fsck(1M) 命令。

ZFS

Oracle Solaris Zones 介绍 中的在区域中挂载的文件系统中所述的缺省数据集外,您还可以在运行 zonecfg 命令时指定 add dataset 资源以将 ZFS 数据集添加到非全局区域。此数据集在非全局区域中进行挂载并显示,并且在全局区域中也可见。区域管理员可以在此数据集中创建和销毁文件系统,并可修改此数据集的属性。

zfszoned 属性指明是否已将数据集添加到非全局区域。

# zfs get zoned tank/sales
NAME          PROPERTY    VALUE      SOURCE
tank/sales    zoned       on         local

通过数据集资源委托到非全局区域中的每个数据集都具有别名。数据集布局在区域内不可见。每个具有别名的数据集在区域中的显示方式与在池中一样。数据集的缺省别名是数据集名称中最后的部分。例如,如果委托数据集 tank/sales 使用缺省别名,则区域将看到名为 sales 的虚拟 ZFS 池。在数据集资源内设置别名属性,可以将别名定制为其他值。

每个非全局区域的 zonepath 数据集中都有一个名为 rpool 的数据集。对于所有非全局区域,该区域 rpool 数据集别名为 rpool

my-zone# zfs list -o name,zoned,mounted,mountpoint
NAME                ZONED  MOUNTED  MOUNTPOINT
rpool                  on       no  /rpool
rpool/ROOT             on       no  legacy
rpool/ROOT/solaris     on      yes  /
rpool/export           on       no  /export
rpool/export/home      on       no  /export/home

数据集别名的名称限制与 ZFS 池的名称限制相同。在 zpool(1M) 手册页中介绍了这些限制。

如果要共享全局区域中的数据集,可以使用具有 add fs 子命令的 zonecfg 命令来添加通过 LOFS 方式挂载的 ZFS 文件系统。全局管理员或授予了相应权限的用户负责设置和控制数据集的属性。

有关 ZFS 的更多信息,请参见在 Oracle Solaris 11.2 中管理 ZFS 文件系统 中的第 9  章 Oracle Solaris ZFS 高级主题