この手順では、ZFS データセットを読み取り/書き込み権でラベル付きゾーンにマウントします。すべてのコマンドが大域ゾーンで実行されるため、大域ゾーン管理者がラベル付きゾーンへの ZFS データセットの追加を制御します。
データセットを共有するには、最低でもラベル付きゾーンが ready 状態である必要があります。ラベル付きゾーンが running 状態であっても構いません。
始める前に
データセットを持つゾーンを構成するには、最初にそのゾーンを停止する必要があります。大域ゾーンで root 役割になっている必要があります。
# zfs create datasetdir/subdir
データセットの名前には、zone/data などのディレクトリを含めることができます。
# zoneadm -z labeled-zone-name halt
# zfs set mountpoint=legacy datasetdir/subdir
ZFS mountpoint プロパティーで、マウントポイントがラベル付きゾーンに対応付けられたときのマウントポイントのラベルを設定します。
# zfs set sharenfs=on datasetdir/subdir
# 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 にマウントされます。この手順により、ゾーンがブートする前にデータセットがマウントされないようになります。
# 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
次に、管理者はデータセットを共有します。
# 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
これで、データセットはアクセス可能になります。
restricted ゾーンは needtoknow ゾーンよりも優位であり、ユーザーは /data ディレクトリに変更することでマウントされたデータセットを表示できます。ユーザーは、大域ゾーンを基準にして、マウントされたデータセットへのフルパスを使用します。この例では、system1 はラベル付きゾーンを含むシステムのホスト名です。管理者は、このホスト名を共有していない IP アドレスに割り当てています。
# cd /net/system1/zone/needtoknow/root/data
トラブルシューティング
上位ラベルからデータセットにアクセスしようとして、エラー not found または No such file or directory が返された場合、管理者は svcadm restart autofs コマンドを実行して、オートマウンタサービスを再起動する必要があります。