
테스트 ext4 파일 시스템 이미지가 있는 원격 블록 장치가 있습니다. iSCSI 초기자 측면에서 이 장치를 감지했다고 가정하겠습니다 /dev/sdb
. 그래요아니요이 파일 시스템은 마운트되어 있지만 TheSleuthKit(TSK) 포렌식 도구를 사용하여 fls
데이터 내용을 읽습니다.
두 번째 실행에서 실행 시간이 실제로 더 빨라진 것을 확인했습니다. 페이지 캐싱에 대해 이해하고 있으며 이를 우회하려면 Direct-IO를 사용해야 합니다. 그러나 iSCSI에서는 그렇지 않을 것이라고 확신합니다.
장치가 다른 노드에 의해 수정되는 경우 내 클라이언트는 이 항목을 캐시하는지 확인할 수 없습니다. 그래서 그것은 단지 불일치 문제를 의미합니다. 내가 읽은 내용이 항상 "출처"에 도달하도록 하려면 어떻게 해야 합니까? 정기적으로 읽기 캐시를 새로 고치도록 설정할 수 있는 매개변수가 있습니까? (echo 3 > /proc ...은 옵션이 아닙니다).
답변1
예, 이전에 읽은 블록을 캐시하는 블록 장치 읽기 버퍼 캐시(bcache)가 있습니다.
당신이 그렇게한다면아니요이 동작을 원하면 O_DIRECT 플래그를 사용하여 블록 장치를 열 수 있습니다.