ACM Transactions on Storage
,
Vol.
号
181
、第五条。出版日期:
2022
年
1
月
图二
. SSD
扇区放置。
然而,从诸如RAID [58]的技术中,除了提高容错性之外,还利用冗余来减少等待时间在跨距内
执行RAIL奇偶校验计算,其中
大小为S的跨距由一个奇偶校验元素和S-1个数据元素组成。将数
据元素一起进行异
或以计算奇偶校验元素。跨距的每个元素都驻留在单独的LUN上 在LUN(例
如,LUN_0)正在服务高延迟操作的情况下,
通过从LUN_1、LUN_2和LUN_3读取对应扇区并计算驻留
在LUN_0上的原始扇区来服务以LUN_0为目标的读取。我们将这种多LUN读取称为RAIL读
取。请注意
,在没有刷新的情况下,块设备不提供读取和写入的顺序保证,从而使RAIL读取能够
在先前的写入之前完成。
3
为了强制执行尾部延迟保证,RAIL确保一个跨距内始终只有一个LUN
服务于高延迟操作,从而影响
写入带宽。
3.1 均等部门安置(RAIL)
在本节中,我们将介绍RAIL如何管理扇区并将数据和奇偶校验放置在SSD上SSD使用设备特定
的单元大小进行读取、写入和擦除。例如,CNEX以扇区
为单位(4KB)执行读取,以页为单
位(64 KB)执行写入,并且以块为单位
(1, 024 KB)执行擦除。每个LUN包含多个数据块,
由ID枚举具有相同ID的所有数据块(
例如,所有LUN的第一个数据块)将组合成一行。此外,
具有相同页ID和块ID的所有写入单元
(页)大小的元素被定义为条带。RAIL需要为奇偶校验数据
分配扇区以启用RAIL读取。一种选择是将附加信息作为逻辑到物理(L2P)块转换表的一部分
来维护,这使得能够在RAIL读取的情况下找到其他扇区和奇偶校验数据 由于对于TB大小的SSD,
L2P已经消耗
了主机内存中的多个GB,因此我们使用简单的模运算将奇偶校验数据放置到条带
内的固定位置
,以确定RAIL读取的目标物理地址。我们将RAIL跨距分布在条带上,以最大化写入
带宽,并将奇偶校验数据放置在条带的高阶LUN上,因为奇偶校验只能在跨距的所有数据扇区
都已写入后计算图2显示了RAIL如何管理扇区、块、条带和行,以及如何放置数据和奇偶校验元
素。 在该示例中,显示了两个RAIL步幅,其中步幅0由Data00、
Data01、Data02和Parity0组
成。
3
排序需要由文件系统或应用程序强制执行