
たとえばスナップショットを作成するときに ZFS がどのように動作するかを理解しようとしています。マシンで zfs list を使用すると、マウント ポイントとパスがいくつか取得されます。たとえば、次のような結果が表示されます。
rpool/ROOT/s10x_u10_wos_17b 5.3gb 58.2gb 5.3gb /
ルートをマウントポイントとして取得します/
。
最初に思ったのは、実際のファイルがあり、ディレクトリに移動したときに ROOT ディレクトリがなかったということでした。少し考えた後、実際にはレガシーにマウントされているので、どこか別の場所にあるはずだと/rpool
わかりました。/rpool/ROOT
レガシーにマウントされている場合のファイルの場所と、このレガシー モードが使用される理由を説明していただけますか?
答え1
レガシーマウントポイントの目的がわかりません。
ZFS は、プール内のデータセットの階層構造を提供します。あなたの場合、 という名前のプールrpool
と、少なくとも次のデータセットがあります。
rpool
rpool/ROOT
rpool/ROOT/s10x_u10_wos_17b
これらのデータセットはそれぞれ、多くの場合ファイルシステムです (ただし、ボリューム/ブロック デバイスの場合もあります)。
これらのデータセットはそれぞれ完全な独立したファイルシステムである可能性が高いため、それぞれを独立してマウントすることも、マウントしないこともできます。
デフォルトでは、ZFS は子データセットを親内の論理的な場所にマウントします...rpool
データセットが (つまり、デフォルト) にマウントされている場合、データセットが などにマウントされている/rpool
ことがわかります...rpool/ROOT
/rpool/ROOT
これはプロパティによって制御されますmountpoint
-zfs get -rt filesystem mountpoint
各データセットの現在の値を確認するには実行してください。
- 値がパスの場合、プールがインポートされると、ZFS は自動的にそのパスにデータセットをマウントします。デフォルトでは (前述のとおり)、ファイルシステムは親の下にマウントされます。
- 値が の場合
none
、ZFSはファイルシステムをマウントせず、ファイルシステムはできないどちらかを使用してマウントできますmount
。 - 値が の場合
legacy
、ZFS はファイルシステムをマウントしませんが、 とmount
を使用しumount
てファイルシステムのマウントポイントを手動で管理できます。 また、 を使用して/etc/fstab
自動マウントをガイドすることもできます。
あなたの状況では、データセットは(つまり、ルート ファイルシステムに)rpool/ROOT/s10x_u10_wos_17b
マウントされています。これを実現するには、 ZFS を設定して処理させるか、明示的に設定してマウントします。/
mountpoint=/
mountpoint=legacy
これはルート ファイルシステムであるため、ZFS に管理させることは実際には選択肢ではなく、マウント ポイントを明示的に指定する必要があります。
したがって、rpool/ROOT/s10x_u10_wos_17b
は を持ちますmountpoint=legacy
。
答え2
レガシー マウントポイントは通常、ファイルシステムが を使用してマウントされる場合に使用されますfstab
。
FreeBSD マニュアルページより:
必要に応じて、ZFS ファイルシステムは従来のツール (mount(8)、umount(8)、fstab(5)) を使用して管理することもできます。ファイルシステムのマウントポイントが legacy に設定されている場合、ZFS はファイルシステムを管理しようとせず、管理者がファイルシステムのマウントとアンマウントを行う必要があります。