모든 파일이 기록되는 가짜 쓰기 환경에서 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는 제거됩니다. 아이디어는 실제 지속성 없이도 더 빠른 테스트 실행을 위해 테스트에서 이를 사용하는 것입니다.