すべてのファイル書き込み(write(2)システムコールを使用)がメモリ内キャッシュにリダイレクトされる偽の書き込み環境でLinuxプロセスを実行したいと思います。後続の読み取り(同じ領域のみ)はキャッシュから提供されます。プロセスが終了した後、キャッシュを破棄できます。
プロセスが変更するファイルは巨大ですが(数テラバイト)、書き込まれるデータの総量は少ないです(数メガバイト)。したがって、数テラバイトの空き領域がないため、overlayfsはオプションではありません。
偽のデバイスノードや偽のアクセス許可は気にしないので、fakeroot(1)は役に立ちません。
これは、LD_PRELOAD、ptrace(2)、Fuse(8)、または dmで実装できるはずです。スナップショット 。このように、私のためにそれを行う既存のツールはありますか?
$ fakewrites ./myprog myfile.dat
https://launchpad.net/libeatmydata
LD_PRELOADライブラリは、ディスクへのデータの安全な書き込みのすべての形式を無効にします。 fsync()はNO-OPになり、O_SYNCは削除されます。アイデアは、実際の耐久性が必要とされないテスト実行を高速化するためにテストで使用することです。