マルチレベルのデータセットは、情報をダウングレードまたはアップグレードするときに役立つコンテナです。詳細は、ファイルのラベル変更に使用されるマルチレベルのデータセットを参照してください。また、マルチレベルの NFS ファイルサーバーが多数の NFS クライアントにさまざまなラベルでファイルを提供する場合にも、マルチレベルのデータセットが役立ちます。
始める前に
マルチレベルのデータセットを作成するには、大域ゾーンで root 役割になる必要があります。
# zfs create -o mountpoint=/multi -o multilevel=on rpool/multi
rpool/multi は大域ゾーンの /multi にマウントされたマルチレベルのデータセットです。
データセットのラベル範囲の上限を制限するには、Example 4–7 を参照してください。
# getlabel /multi /multi: ADMIN_LOW
プール内のすべてのファイルシステムについて、次の ZFS プロパティーを off に設定します。
# zfs set devices=off rpool/multi # zfs set exec=off rpool/multi # zfs set setuid=off rpool/multi
ZFS では通常、圧縮はファイルシステムのレベルで設定されます。ただし、このプール内のファイルシステムはすべてデータファイルなので、圧縮はプールのトップレベルのデータセットで設定されます。
# zfs set compression=on rpool/multi
Oracle Solaris 11.2 での ZFS ファイルシステムの管理 のZFS の圧縮、複製解除、暗号化のプロパティー間の関連も参照してください。
# cd /multi # mkdir public internal # chmod 777 public internal # setlabel PUBLIC public # setlabel "CNF : INTERNAL" internal
たとえば、次の一連の zonecfg コマンドは、データセットを public ゾーンにマウントします。
# zonecfg -z public zonecfg:public> add fs zonecfg:public:fs> set dir=/multi zonecfg:public:fs> set special=/multi zonecfg:public:fs> set type=lofs zonecfg:public:fs> end zonecfg:public> exit
マルチレベルのデータセットでは、マウント先ゾーンと同じラベルのファイルの書き込みと、下位レベルのファイルの読み取りが許可されます。マウントされたファイルのラベルは、表示と設定が可能です。
# tncfg -z global add mlp_private=2049/tcp # tncfg -z global add mlp_private=111/udp # tncfg -z global add mlp_private=111/tcp
# svcadm restart nfs/server
# share /multi
NFS でマウントされたマルチレベルのデータセットでは、マウント先ゾーンと同じラベルのファイルの書き込みと、下位レベルのファイルの読み取りが許可されます。マウントされたファイルのラベルは、確実に表示することや設定することはできません。詳細は、別のシステムのマルチレベルデータセットのマウントを参照してください。
この例では、管理者はデフォルトの ADMIN_HIGH より低い上限 (最上位ラベル) で、マルチレベルのデータセットを作成します。データセットの作成時に、管理者はこのラベル上限を mslabel プロパティーで指定します。この上限により、大域ゾーンのプロセスはマルチレベルのデータセット内にファイルやディレクトリを作成できなくなります。ラベル付きゾーンだけが、データセット内にディレクトリやファイルを作成できます。multilevel プロパティーが on なので、mlslabel プロパティーで設定されるのは上限であり、シングルラベルデータセットのラベルではありません。
# zfs create -o mountpoint=/multiIUO -o multilevel=on \ -o mlslabel="CNF : INTERNAL" rpool/multiIUO
次に、管理者は各ラベル付きゾーンにログインし、マウントされたデータセット内にゾーンのラベルでディレクトリを作成します。
# zlogin public # mkdir /multiIUO # chmod 777 /multiIUO # zlogin internal # mkdir /multiIUO # chmod 777 /multiIUO
マルチレベルのデータセットは、マウント先ゾーンのリブート後、承認されたユーザーにそのゾーンのラベルで表示されます。
次のステップ
ユーザーがファイルのラベルを変更できるようにするには、ラベル付きゾーンからファイルに再ラベル付けできるようにするを参照してください。
ファイルのラベルを変更する手順については、Trusted Extensions ユーザーズガイド のマルチレベルデータセットのデータをアップグレードする方法および Trusted Extensions ユーザーズガイド のマルチレベルデータセットのデータをダウングレードする方法を参照してください。