今天作为评论请求发送的是实现 PCACHE(用于块设备的持久内存缓存)的补丁系列。PCACHE 诞生于最初为 CXL 块设备驱动程序设计的代码,但最终在 Compute Express Link 上下文之外也很有用。
Dongsheng Yang 发布了一组补丁,为 Linux 内核提供了 PCACHE,该内核将范围扩展到任何支持直接访问 (DAX) 的持久内存设备,而不仅仅是 CXL 设备。补丁指出,虽然 PCACHE 非常适合已停产的英特尔傲腾产品线,但 Numemory NM101 存储级内存是一款可以与此提议的 PCACHE 完美配合的产品。
其中一条 PCACHE 补丁消息继续解释:
“此补丁引入了 ‘pcache’ 的初始集成,这是一个 Linux 内核块层模块,它利用持久内存 (PMem) 作为传统块设备(例如 SSD、HDD)的高性能缓存层。
– 作为缓存的持久内存:
– ‘pcache’ 使用支持 DAX 的持久内存(例如,’/dev/pmemX’)为块设备提供快速、字节可寻址、非易失性缓存。
– 支持直接映射和基于 vmap 的访问,具体取决于 DAX 功能。– 模块化架构:
– ‘cache_dev’:表示用作缓存的持久内存设备。
– ‘backing_dev’:表示正在缓存的单个块存储设备。
– ‘logic_dev’:向用户空间公开一个块设备(’/dev/pcacheX’),作为 I/O 的前端接口。
– ‘cache’:实现核心缓存逻辑(命中/未命中、写回、GC 等)。设计动机:“
pcache”旨在弥合慢速但大容量存储(HDD、SATA/NVMe SSD)和新兴的字节可寻址持久内存之间的性能差距。与传统的块层缓存相比,“pcache”是持久的、低延迟的、高并发性的,并且比传统的缓存设计更适合现代存储级存储设备。
此补丁通过连接初始化入口点 (’pcache_init()’)、sysfs 总线注册、root 设备处理和 Kconfig 胶水来完成该系列。
有了这个,’pcache’ 子系统就可以作为内核模块加载,并用作块 I/O 的缓存引擎。
还有这个图表用于将 PCACHE 功能与 BCache 和 DeviceMapper 写入缓存等进行比较:
那些想了解更多关于这个 PCACHE 提案的人可以在 Linux 内核邮件列表中找到它。
转自 Linux PCACHE Proposed For Persistent Memory Cache For Block Devices – Phoronix