知识卡片

RBD两条访问路径绑定不同缓存层

专业/工作 · 236.d

内容

RBD 块设备有两条访问路径,分别服务不同的消费者:给物理主机直接挂载用内核 RBD 模块(KRBD),走 Linux 自带的页缓存(Page Cache)提升性能;给虚拟机(QEMU/KVM)提供块设备则通常经 Libvirt 调用 librbd 库,用 RBD 自己的缓存机制。两条路径没有优劣之分,而是各自复用了所在层已有的缓存基础设施——物理机场景下内核页缓存现成可用,虚拟机场景下 QEMU 进程本身脱离内核态运行,只能靠用户态的 librbd 自建缓存。发散:这是”能力下沉到调用者所在的层”的又一个例子,与其重新造一套统一缓存,不如让每条路径贴着它天然所在的执行环境去复用已有机制。

参考来源

《Ceph分布式存储实战》第4章《三大存储访问类型》