すべてのファイルが書き込まれる偽の書き込み環境でLinuxプロセスを実行したいと思います。書き込み(2)システムコール)はメモリ内キャッシュにリダイレクトされ、後続の読み取り(同じ領域のみ)はキャッシュから提供されます。プロセスが完了した後、キャッシュを削除できます。
プロセスが変更するファイルは大きいが(数テラバイト)、記録される総データ量は少ない(数メガバイト)。したがって、数TBの空き容量がないため、overlayfsはオプションではありません。
私は偽のデバイスノードや偽の権限に興味がないので注意してください。根茎(1)私には役に立ちません。
これはLD_PRELOADを使用することで可能です。トラック(2)、ヒューズ(8)またはDMスナップショット。次のようにこれを行うための既存のツールはありますか?
$ fakewrites ./myprog myfile.dat
答え1
https://launchpad.net/libeatmydata
LD_PRELOADライブラリは、ディスクにデータを安全に書き込むすべての形式を無効にします。 fsync() は NO-OP になり、O_SYNC は削除されます。アイデアは、実際の永続性がなくても、より速いテストを実行するためにテストでそれを使用することです。