加速虚拟化分布式NVMe存储及汽车计算平台创新
1. 虚拟化分布式NVMe存储相关技术
在虚拟化分布式NVMe存储中,为了管理每个虚拟磁盘(LUN)的虚拟到物理存储块的转换,加速(FPGA)数据路径会在内存中维护一个虚拟到物理(V2P)表。虚拟块被映射为AoE LUN块地址,物理块被映射到NVMe块存储地址。为了适应内部内存并避免较高的DRAM延迟,使用预定义的“块大小”来保持表的大小较小,该块大小用于连续的物理块。
V2P表的结构使用[0…nvme_capacity]范围内的物理地址,由虚拟块地址索引。这个块地址将16 MB的虚拟块地址空间映射到16 MB的物理存储(NVMe)空间。每个逻辑块条目必须有一个非零的32位值,以表明该块已在物理存储上分配。如果未分配(即值为零),则FPGA逻辑将AoE写请求传递给慢路径软件逻辑进行处理。如果是对未分配块(值为零)的读取请求,FPGA逻辑会生成一个数据为零的响应包,并在无需访问块设备的情况下将响应返回给AoE客户端。
此外,每个LUN的V2P表数据结构之后紧接着是一个脏逻辑范围位图。该位图为LUN的每64 KB逻辑范围包含1位。与V2P映射相比,脏范围位图的更新粒度要细得多。由于块大小、范围大小和LUN的大小(以块大小单位表示)在LUN的生命周期内都是已知且静态的,因此可以轻松计算出64 KB范围的数量。FPGA数据路径负责在每次AoE写请求完成时更新内存中的位图,以维护自上次位图清零以来哪些范围至少被写入过一次(即变脏)的内存记录。如果LUN的某个特定范围的位为零,则意味着自上次“位图重置”时间以来该范围没有写入数据。如果该位设置为1,则意味着该范围至少有一次写入(在64 KB范围的任何部分)。后端节点的通用CPU上运行的软件工具会
超级会员免费看
订阅专栏 解锁全文
370

被折叠的 条评论
为什么被折叠?



