Linux でファイル書き込みをメモリ内フェイクとして実行する

Linux でファイル書き込みをメモリ内フェイクとして実行する

Linuxプロセスを、すべてのファイル書き込み(書く(2)システム コールで行われた読み取りはメモリ内キャッシュにリダイレクトされ、それ以降の読み取り (同じ領域のみ) はキャッシュから提供されます。プロセスが終了したら、キャッシュを破棄できます。

プロセスが変更するファイルは巨大 (数テラバイト) ですが、書き込まれるデータの合計量は小さいです (数メガバイト)。したがって、数テラバイトの空き領域がないため、overlayfs はオプションではありません。

偽のデバイスノードや偽の権限については気にしないので、フェイクルート(1)役に立たない。

これはLD_PRELOADで実装できるはずです。ptrace(2)ヒューズ(8)またはdmスナップショット次のように、これを実行できる既存のツールはありますか?

$ fakewrites ./myprog myfile.dat

答え1

https://launchpad.net/libeatmydata

LD_PRELOAD ライブラリは、ディスクへのデータの安全な書き込みをあらゆる形式で無効にします。fsync() は NO-OP になり、O_SYNC は削除されます。実際の耐久性が必要ない場合にテストの実行を高速化するためにテストで使用することが目的です。

関連情報