2012-04-12 3 views
2

나는 루트 파일 시스템으로 마운트 된 파일과 함께 KVM/QEMU 위에서 실행되는 ARM 가상 머신을 가지고있다. VM에는 네트워킹이 없으므로 루트를 마운트하는 NFS는 문제가되지 않습니다. I/O를위한 특정 전송 메커니즘을 테스트 중이므로 내가 가지고있는 것에 매달렸다.루트 장치에서 파일 시스템 캐시를 비활성화하는 방법은 무엇입니까?

게스트에 파일을 보내고 싶습니다. 호스트에 파일을 마운트하고, 파일을 쓰고, 플러시를 수행하기 위해 마운트를 해제하고 싶습니다. 파일 시스템의 내용은 사소한 것이므로 백업이있어서 손상에 문제가 없습니다. 마찬가지로 성능도 문제가되지 않습니다.

문제는이 마운트 - 쓰기 - 마운트 해제 작업을 수행 할 때 게스트가 파일을 본 적이 없다는 것입니다. 필자는 이것이 커널의 파일 시스템 캐시의 결과라고 추측하고 있는데, 내가 할 때 그 파일은 존재하지 않는다. 나는 파일 시스템에 관한 메타 데이터가 메모리에 캐시되어 있고 파일 시스템에 대한 업데이트가 나타나지 않는다고 생각한다.

파일 시스템 캐싱을 비활성화하면 모든 읽기가 강제로 디스크에 저장되어 파일 시스템이 손상되고 파일이 표시됩니다. 어떤 팁?

답변

2

내가 생각할 수

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

그리고이 :

qemu -drive cache=none,file=file.img 
관련 문제