我有一个带有测试 ext4 文件系统映像的远程块设备。在 iSCSI 启动器方面,我检测到此设备,比方说/dev/sdb
。我是不是安装此文件系统,但我使用 TheSleuthKit (TSK) 取证工具fls
来读取数据内容。
我注意到第二次运行的执行时间确实更快。我了解页面缓存,并且为了绕过它,我应该使用 Direct-IO。然而,我确信 iSCSI 不会出现这种情况。
如果设备正在被另一个节点修改,我的客户端将无法看到它是否缓存了此条目。所以它仅仅意味着 - 不一致问题。我怎样才能确保我的阅读始终到达“来源”?是否有任何参数可以设置来定期刷新读取缓存?(echo 3 > /proc ...不是一个选项)。
答案1
是的,有一个块设备读取缓冲区高速缓存——bcache——它缓存以前读取的块。
如果你这样做不是想要这种行为,您可以使用 O_DIRECT 标志打开块设备。