Trusted Extensions 配置和管理

退出打印视图

更新时间: 2014 年 7 月
 
 

如何从有标签区域共享 ZFS 数据集

在此过程中,要在有标签区域中挂载一个具有读/写权限的 NFS 数据集。因为所有命令都在全局区域中执行,全局区域管理员可以对向有标签区域添加 ZFS 数据集进行控制。

有标签区域至少要处于 "ready"(就绪)状态下才能共享数据集。区域可以处于 "running"(正在运行)状态。

开始之前

要为区域配置数据集,必须首先停止该区域。您必须在全局区域中承担 root 角色。

  1. 创建 ZFS 数据集。
    # zfs create datasetdir/subdir

    数据集的名称可以包括目录,例如 zone/data

  2. 在全局区域中,停止有标签区域。
    # zoneadm -z labeled-zone-name halt
  3. 设置数据集的挂载点。
    # zfs set mountpoint=legacy datasetdir/subdir

    如果挂载点与有标签区域相对应,设置 ZFS 的 "mountpoint"(挂载点)属性时会设置挂载点的标签。

  4. 使该数据集可以共享。
    # zfs set sharenfs=on datasetdir/subdir
  5. 将数据集作为文件系统添加到区域中。
    # zonecfg -z labeled-zone-name
    # zonecfg:labeled-zone-name> add fs
    # zonecfg:labeled-zone-name:dataset> set dir=/subdir
    # zonecfg:labeled-zone-name:dataset> set special=datasetdir/subdir
    # zonecfg:labeled-zone-name:dataset> set type=zfs
    # zonecfg:labeled-zone-name:dataset> end
    # zonecfg:labeled-zone-name> exit

    通过将数据集作为文件系统进行添加,会在区域的 /data 处挂载数据集。此步骤可以确保不会在引导区域之前挂载数据集。

  6. 引导有标签区域。
    # zoneadm -z labeled-zone-name boot

    引导区域后,将自动挂载数据集,作为标签为 labeled-zone-namelabeled-zone-name 区域中的读/写挂载点。

示例 13-4  从有标签区域共享和挂载 ZFS 数据集

在此示例中,管理员将一个 ZFS 数据集添加到 needtoknow 区域,然后共享数据集。数据集 zone/data 当前被指定到 /mnt 挂载点。Restricted(受限)区域中的用户可以查看该数据集。

首先,管理员停止区域。

# zoneadm -z needtoknow halt

因为数据集当前被指定到不同的挂载点,管理员要删除之前的指定,然后设置新的挂载点。

# zfs set zoned=off zone/data
# zfs set mountpoint=legacy zone/data

然后,管理员共享该数据集。

# zfs set sharenfs=on zone/data

接下来,在 zonecfg 交互式接口中,管理员明确将数据集添加到 needtoknow 区域。

# zonecfg -z needtoknow
# zonecfg:needtoknow> add fs
# zonecfg:needtoknow:dataset> set dir=/data
# zonecfg:needtoknow:dataset> set special=zone/data
# zonecfg:needtoknow:dataset> set type=zfs
# zonecfg:needtoknow:dataset> end
# zonecfg:needtoknow> exit

接下来,管理员引导 needtoknow 区域。

# zoneadm -z needtoknow boot

现在,可以访问该数据集了。

支配 needtoknow 区域的 restricted 区域中的用户可以通过转到 /data 目录来查看挂载的数据集。从全局区域的角度看,他们使用挂载数据集的完整路径。在此示例中,machine1 是包括有标签区域的系统的主机名。管理员将此主机名指定给非共享 IP 地址。

# cd /net/machine1/zone/needtoknow/root/data

故障排除

如果尝试从较高级别标签访问数据集时返回错误找不到无此类文件或目录,管理员必须通过运行 svcadm restart autofs 命令来重启自动挂载程序服务。