iSCSI 블록 장치에는 클라이언트 읽기 캐싱이 있습니까? 그렇다면 이를 비활성화하는 방법은 무엇입니까?

iSCSI 블록 장치에는 클라이언트 읽기 캐싱이 있습니까? 그렇다면 이를 비활성화하는 방법은 무엇입니까?

테스트 ext4 파일 시스템 이미지가 있는 원격 블록 장치가 있습니다. iSCSI 초기자 측면에서 이 장치를 감지했다고 가정하겠습니다 /dev/sdb. 그래요아니요이 파일 시스템은 마운트되어 있지만 TheSleuthKit(TSK) 포렌식 도구를 사용하여 fls데이터 내용을 읽습니다.

두 번째 실행에서 실행 시간이 실제로 더 빨라진 것을 확인했습니다. 페이지 캐싱에 대해 이해하고 있으며 이를 우회하려면 Direct-IO를 사용해야 합니다. 그러나 iSCSI에서는 그렇지 않을 것이라고 확신합니다.

장치가 다른 노드에 의해 수정되는 경우 내 클라이언트는 이 항목을 캐시하는지 확인할 수 없습니다. 그래서 그것은 단지 불일치 문제를 의미합니다. 내가 읽은 내용이 항상 "출처"에 도달하도록 하려면 어떻게 해야 합니까? 정기적으로 읽기 캐시를 새로 고치도록 설정할 수 있는 매개변수가 있습니까? (echo 3 > /proc ...은 옵션이 아닙니다).

답변1

예, 이전에 읽은 블록을 캐시하는 블록 장치 읽기 버퍼 캐시(bcache)가 있습니다.

당신이 그렇게한다면아니요이 동작을 원하면 O_DIRECT 플래그를 사용하여 블록 장치를 열 수 있습니다.

관련 정보