btrfs ファイルシステムのルート/サブボリュームとは何ですか?

btrfs ファイルシステムのルート/サブボリュームとは何ですか?

subvolumeBtrfs ファイルシステムでは、、、、root-volumeという用語が使用されていますsnapshottop-leveldefault subvolume私にとっては少々わかりにくいです。

例えば、サブボリュームに関する btrfs wiki ページどの州

新しく作成されたファイルシステムもサブボリュームであり、トップレベルと呼ばれ、内部的には ID 5 を持ちます。このサブボリュームは削除したり、別のサブボリュームに置き換えたりすることはできません。

しかし、btrfs-progs次のようなコマンドのようなツールを使用すると、

  • btrfs サブボリューム リスト
  • btrfs サブボリューム表示

展示では、サブボリュームという用語はルートボリュームには実際には適用されません(この他の質問)。さらに、用語top-level(上記のコマンドの出力でわかるように、サブボリューム ID が 5 のサブボリューム/ルート ボリュームに実際には限定されません。最後に、btrfs sendルート ボリュームは使用できず、サブボリュームのみであるようです (これも上記の定義とは対照的です)。

何か助けて?

答え1

これを説明する最も簡単な方法は、ZFS との類推です。BTRFS のサブボリュームは、本質的にファイルシステム自体のどこかにルートされている点を除けば、機能的には ZFS の zvol と同等です。

より一般的には、サブボリュームは、ツリーの残りの部分からほとんど独立しているファイルシステムの内部データ構造のセットから構成されます。この定義とコード自体の内部では、最上位またはルート サブボリューム (サブボリューム ID 5) は技術的にはサブボリュームですが、サブボリュームに関する情報を表示するコマンドによって特別に扱われます。これは、通常のサブボリュームで実行できる多くの操作がサブボリュームでは実行できないためです (たとえば、ルート サブボリュームのスナップショットを作成したり、削除したりすることはできません)。ユーザーの観点からは、ルート サブボリュームがサブボリュームであることが問題になるのは、-o subvolid=5デフォルトのサブボリューム設定をバイパスするために をマウントする場合のみです。

関連情報