ライトバック モードでは、inode データのみがジャーナルに書き込まれ、ファイル データがいつ書き込まれるかは制御されません。
この行は、通常の場合にデータがデバイスに書き込まれるタイミングと、データが失われるタイミングを考えさせられました。
Writeback モードでは、ジャーナリングの直後にデータをデバイスに強制的に書き込むオプションはありますか?
また、ライトバックモードとオーダーモードはこれだけで区別されるのでしょうか?
ライトバック モードでは、inode データのみがジャーナルに書き込まれ、ファイル データがいつ書き込まれるかは制御されません。
この行は、通常の場合にデータがデバイスに書き込まれるタイミングと、データが失われるタイミングを考えさせられました。
Writeback モードでは、ジャーナリングの直後にデータをデバイスに強制的に書き込むオプションはありますか?
また、ライトバックモードとオーダーモードはこれだけで区別されるのでしょうか?
詳しく説明しない場合、クエリの答えはイエスです (少なくとも ext3 のようなファイルシステムでは)。どちらのモードでも、ファイルシステムのメタデータのみがジャーナルに書き込まれます。ライトバック モードと順序付きモードの違いは、順序付きモードではメタデータのみがログに記録されるのに対し、順序付きモードではメタデータがログに記録される前にデータ ブロックがディスクに書き込まれるように、ファイルシステムがメタデータと相対データ ブロックをグループ化することです (& データ ブロックは、全て)。
ii. 実装の観点から (ext3 に関して)、順序付きモードでは、ページ内のデータのすべてのバッファーで追加の関数 journal_dirty_data( ) が呼び出され、アクティブなトランザクションの適切なリストにバッファーが挿入されます。JBD レイヤーは、トランザクションのメタデータ バッファーの前に、このリスト内のすべてのバッファーがディスクに書き込まれるようにします。その後、generic_commit_write( ) 関数が呼び出され、所有者 i ノードのダーティ バッファーのリストにデータ バッファーが挿入されます。ライトバック モードでは、journal_dirty_data( ) のような関数はデータ バッファーに対して呼び出されず、generic_commit_write( ) のみが呼び出されます。