2012-04-12 5 views
2

私は、KVM/QEMU上で動作するARM仮想マシンを持っています。ファイルはルートファイルシステムとしてマウントされています。 VMにはネットワーキングがないので、ルートにNFSをマウントすることは問題になりません。私はIOのための特定のトランスポート・メカニズムをテストしています。だから、私が得意とするものにこだわっています。ルートデバイス上のファイルシステムキャッシュを無効にするにはどうすればよいですか?

ゲストにファイルを送信したいので、ファイルをホストにマウントし、それに書き込み、マウント解除して強制的にフラッシュします。ファイルシステムの内容は自明で、バックアップがあるので、壊れても問題はありません。同様に、パフォーマンスは問題ではありません。

問題は、私がこのマウント - ライト - マウント解除の作業を行うとき、ゲストはファイルを決して見ないということです。私はこれがカーネルのファイルシステムキャッシュの結果であると推測しています。私がlsを実行すると、そのファイルは存在しません。私は、ファイルシステムに関するメタデータがメモリにキャッシュされていると推測しています。ファイルシステムへの更新は表示されません。

ファイルシステムのキャッシュを無効にすると、すべての読み取りがディスクに強制され、ファイルシステムがヒットし、ファイルが表示されることが予想されます。任意のヒント?

答えて

2

私はこれを考えることができます:

sync 
echo 3 > /proc/sys/vm/drop_caches 

そして、この:

qemu -drive cache=none,file=file.img 
関連する問題