3.7. RADOS 块设备 (RBD)
基于 librbd
SSD 的持久性回写缓存,以减少现在完全支持延迟。
在这个版本中,pwl_cache
librbd 插件提供了一个日志结构的回写缓存,目标为 SSD 设备。与已提供面向 PMEM 设备的日志结构的回写缓存一样,对镜像的更新会被批处理并清空了 in-order,以崩溃一致性状态保留实际镜像。优点和使用案例保持不变,但用户不再需要购买更昂贵的 PMEM 设备来利用它们。
librbd compare-and-write 操作已被改进,并引入了新的 rbd_aio_compare_and_writev
API 方法
compare-and-write C++ API 的语义现在与 C API 的匹配。
在以前的版本中,compare_and-write C++ API (即
Image::compare_and_write
和Image::aio_compare_and_write
方法)将与比较缓冲区的大小进行比较。这会导致在添加条带单元边界后造成中断。在这个版本中,compare-and-write C++ API 与 C API 的语义匹配,即使对应的缓冲区更大,才会对
len
字节操作比较和写入步骤。compare-and-write 操作不再限制为 512 字节扇区。
在这个版本中,如果访问正确对齐,则 compare-and-write 可以在条带单元上运行。默认情况下,条带单位为 4 MB。
新的
rbd_aio_compare_and_writev
API 方法现在可用。在这个版本中,包含
rbd_aio_compare_and_writev
API 方法,以支持 compare 和 write 缓冲区上的 scatter/gather,它们补充现有的rbd_aio_readv
和rbd_aio_writev
方法。
现在支持分层客户端加密
在这个版本中,克隆的镜像可以加密,每个镜像都有自己的加密格式和密码短语,可能与父镜像的不同。保留未格式化的常规克隆的镜像的有效写时复制语义。