BtrfsサブボリュームUUIDの競合

BtrfsサブボリュームUUIDの競合

たとえば、同じコンピュータに同じUUIDを持つ2つのファイルシステムに問題があります。特に2つが同時にインストールされている場合(例:BTRFS Wikiはまた言う)。したがって、たとえば、BTRFSパーティションをコピーします。dd他の人に与えてすぐに使用するのは良いことではありません。

これを防ぐには、
btrfstune -u /dev/sdaX
そのパーティションのUUIDを変更してください。

ただし、BTRFSサブボリュームには、表示できる独自のUUIDがあります(たとえば、および)
btrfs sub list -u /mountpoint
上記のコマンドはこのUUIDを変更せず、これを行う他の方法は明らかではありません。

私の質問は:これがデフォルトのUUIDと同様の問題ですか?同じサブボリュームUUID(ただしデフォルトのUUIDは異なる)を使用して2つのBTRFSパーティションをマウントすると、データが破損しますか?

おそらく私の混乱は彼らの目的を理解していないので、それが原因であるかもしれません。ファイルシステムUUIDは識別のために一意である必要があり、マウントなどのさまざまな目的で使用できますが、サブボリュームにはすでに別の固有番号と名前(ファイルシステム内で一意)があり、サブボリュームには(?)ビューに加えて、ユーザーPOVからUUIDを完全に使用できます。

...

これまでいくつかのテストをしてみました。一部のサブボリュームとファイルがあるマルチパーティション、名前はすべてのパーティションで部分的に同じで部分的に異なります。ほぼすべての合理的な組み合わせで、サブボリューム/ファイルをクエリ/作成/削除/移動/読み取り/変更します。異なるプライマリUUID、同じサブボリュームUUID。結果:できませんバラより質問一つ...でもxyzは大丈夫なので、異常な状況でもデータが破損しないという保証があります:)

完全性のために同じ基本予想通り、UUIDはデータの破損を引き起こし、異常な状況だけでなくデータの破損を即座に引き起こします。カーネル(または他のもの)は、アクセスするたびにどのパーティションにアクセスする必要があるかを混同します。ほとんどの場合、どのマウントポイントが使用されているかにかかわらず、最初または最後のパーティション(時系列でマウント)に移動します。 ...少なくとも私のテストでは「ジャンクデータ」の破損はありませんでしたが、発生する状況は十分に悪いです。特に、パーティション1がすでに使用されていてパーティション2がマウントされている場合(ある意味、ごみです)

答え1

tldr:気にしません。データの破損はありません。

また、メーリングリストから質問を受けた彼らは、サブボリュームUUIDが単なるものと
btrfs send完全な確認であると説明しましたbtrfs receive

...
サブボリュームのUUIDは、実際にはそのファイルシステムで内部的にのみ使用されるため、カーネルが混乱する可能性はありません。混乱を招く可能性がある主な問題は送受信ですが、重複したFS-UUID状況などのアクティブな損傷を引き起こすのではなく、一部の検証が失われる可能性があります(したがって、いくつかの失敗したタスクを実行する可能性があります)。
...

~からhttps://www.mail-archive.com/[Eメール保護]/msg49133.html(以前はhttp://thread.gmane.org/gmane.comp.file-systems.btrfs/50909/focus=50917)

今眠ることができます:p

答え2

私はあなたの質問に対する直接的な答えを知りませんが、見つけるための一般的な方法は次のとおりです。

これは、不明なソフトウェア動作を実験、テスト、調査するために仮想マシンを使用することの1つです。

  1. 新しい仮想マシンを作成します。 btrfsテスト用のブートディスクと2つまたは4つの仮想ディスクを提供します。サイズはあまり重要ではありません。
  2. 起動ディスクにLinuxディストリビューションをインストールして起動します。
  3. 1つまたは2つの追加の仮想ディスクを使用してbtrfsファイルシステムを作成します。そこにデータを入れてみてください。いくつかのサブボリュームを作成します。そこにデータを入れてみてください。
  4. マウント解除し、別の仮想ディスクを1つまたは2つに複製します。
  5. 複製時のUUIDの変更btrfstune -u
  6. 2つのbtrfsファイルシステムを同時にマウントします。
  7. 2 つの brtfs ファイルシステムを読み書きします。ボニー++あるいは、同時に両方のファイルシステムで同様の操作を実行し、異常な動作や不要な動作を記録します。具体的には、btrfsファイルシステムの冗長サブボリュームに書き込むときに破損がないことを確認してください。

  8. 他の人があなたの研究から恩恵を受けることができるように、ここに回答を投稿してください。

関連情報