この手順では、ZFS データセットを読み取り/書き込み権でラベル付きゾーンにマウントします。すべてのコマンドが大域ゾーンで実行されるため、大域ゾーン管理者がラベル付きゾーンへの ZFS データセットの追加を制御します。
データセットを共有するには、最低でもラベル付きゾーンが ready 状態である必要があります。ラベル付きゾーンが running 状態であっても構いません。
データセットを持つゾーンを構成するには、最初にそのゾーンを停止します。
ZFS データセットを作成します。
# zfs create datasetdir/subdir |
データセットの名前には、zone/data などのディレクトリを含めることができます。
大域ゾーンで、ラベル付きゾーンを停止します。
# zoneadm -z labeled-zone-name halt |
データセットのマウントポイントを設定します。
# zfs set mountpoint=legacy datasetdir/subdir |
ZFS mountpoint プロパティーで、マウントポイントがラベル付きゾーンに対応付けられたときのマウントポイントのラベルを設定します。
ラベル付きゾーンにデータセットをファイルシステムとして追加します。
# 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 |
データセットをファイルシステムとして追加することにより、dfstab ファイルが解釈される前に、データセットがゾーンの /data にマウントされます。この手順により、ゾーンが起動する前にデータセットがマウントされないようになります。具体的に言うと、ゾーンが起動し、データセットがマウントされてから、dfstab ファイルが解釈されます。
データセットを共有します。
データセットファイルシステムのエントリを /zone/labeled-zone-name/etc/dfs/dfstab ファイルに追加します。このエントリには、/subdir パス名も使用されます。
share -F nfs -d "dataset-comment" /subdir |
ラベル付きゾーンを起動します。
# zoneadm -z labeled-zone-name boot |
ゾーンが起動すると、データセットが、labeled-zone-name ゾーンのラベルを持つ labeled-zone-name ゾーンの読み取り/書き込みマウントポイントとして自動的にマウントされます。
この例では、管理者は ZFS データセットを needtoknow ゾーンに追加し、そのデータセットを共有します。データセット zone/data は現在、/mnt マウントポイントに割り当てられています。restricted ゾーンのユーザーはそのデータセットを表示できます。
最初に、管理者はゾーンを停止します。
# zoneadm -z needtoknow halt |
データセットは現在別のマウントポイントに割り当てられているため、管理者は以前の割り当てを削除してから、新しいマウントポイントを設定します。
# zfs set zoned=off zone/data # zfs set mountpoint=legacy 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 |
さらに、管理者はそのデータセットを共有するように /zone/needtoknow/etc/dfs/dfstab ファイルを変更してから、needtoknow ゾーンを起動します。
## Global zone dfstab file for needtoknow zone share -F nfs -d "App Data on ZFS" /data |
# zoneadm -z needtoknow boot |
これで、データセットはアクセス可能になります。
restricted ゾーンのユーザーは、needtoknow ゾーンを独占しており、/data ディレクトリに変更することでマウントされたデータセットを表示できます。ユーザーは、大域ゾーンを基準にして、マウントされたデータセットへのフルパスを使用します。この例では、machine1 はラベル付きゾーンを含むシステムのホスト名です。管理者は、このホスト名を共有していない IP アドレスに割り当てています。
# cd /net/machine1/zone/needtoknow/root/data |
上位ラベルからデータセットにアクセスしようとして、エラー not found または No such file or directory が返された場合、管理者は svcadm restart autofs コマンドを実行して、オートマウンタサービスを再起動する必要があります。