Linuxでは、「barrier」マウントフラグとはどういう意味ですか?

Linuxでは、「barrier」マウントフラグとはどういう意味ですか?

「バリア」取り付けオプションのマニュアルは次のとおりです。

バリア=0 /バリア=1

これにより、jbdコードで書き込みバリアの使用を無効/有効にします。 Barrier = 0は無効にし、Barrier = 1は有効にします(デフォルト)。さらに、障壁をサポートできるIOスタックが必要です。障壁の書き込み中にjbdエラーが発生すると、障壁は再び無効になり、警告が発生します。書き込みバリアはログコミットの正しいディスク順序を適用し、揮発性ディスク書き込みキャッシュを安全に使用できるようにしますが、パフォーマンスが低下します。ディスクが何らかの方法でバッテリ駆動されている場合は、障壁を無効にするとパフォーマンスが安全に向上する可能性があります。

ところで、この文章が何であるかわかりません。」ログコミットの正しいディスク順序「方法。

通常の順序(ログ1、データ1、データ2)を想定します。
これを設定すると、次のいずれかのソート結果が発生しますかbarrier=0

  1. ログ2、データ2;ジャーナル1、データ1;
  2. データ1、ジャーナル1、データ2、ログ2.

ベストアンサー1

ほとんどの最新のファイルシステムはジャーナリングファイルシステムです。つまり、ログと呼ばれる内部データ構造で、まだディスクに書き込まれていない変更を追跡します。競合が発生すると、ログが再生され、すべての書き込みが正常に実行されたことを確認し、ファイルの破損を防ぎます。

データが実際にディスクに書き込まれるとき、書き込みキャッシュはスループットを最大化するために書き込み順序を再指定しますが、競合が発生した場合にメタデータが次のようにならないように、メタデータの前に実際のファイルデータをディスクに書き込む必要があります。データは時代遅れです。

問題は、多くのディスクに独自のキャッシュがあるため、書き込み順序が変更される可能性があることです。一部のファイルシステムでは、これが起こると仮定し、ディスクが特定のポイントでキャッシュを強制的にフラッシュするように、これらのことが発生しないようにします。これはwrite barriers通常、ext4やLinuxなどのシステムで知られています。

この操作によるパフォーマンスの低下は、最新のディスクでは無視できますが、必ずしも必要でない限り、書き込みバリアを無効にしてはいけません。

おすすめ記事