【论文精读】Learning-based Data Separation for Write Amplification Reduction in Solid State Drives【初稿完】-A类


论文原文:
ref:https://venero.github.io/files/publications/2023-DAC-2.pdf
2023年发表在DAC的顶会文章

Learning-based Data Separation for Write Amplification Reduction in Solid State Drives基于学习的数据分离在固态驱动器中减少写放大

概要 from(gpt)

这篇论文的重点是基于学习的数据分离用于减少写放大问题。写放大是固态硬盘中的一个问题,会导致额外的写入操作和设备的更快磨损。为了解决这个问题,研究人员提出了一种名为PHFTL的实用、全面的FTL设计,其中包含了设备端的基于学习的数据分离。PHFTL中的机器学习模型能够准确地预测每个写入页面的寿命,并引入了一系列的技术来降低计算和存储开销。对PHFTL的广泛评估表明其优于现有技术,并在实际硬件上具有可行性。

该论文的研究问题是如何减少写放大问题,并提出了基于学习的数据分离作为解决方案。通过将具有相似寿命的页面分组到专用块中,可以更容易地在垃圾回收过程中选择具有低有效页面计数的受害块,从而降低写放大。为了实现数据分离,需要预测主机写入的页面何时会被覆盖。过去的研究主要基于简单的启发式规则,缺乏适应性和准确性。因此,本论文探索了将机器学习应用于系统软件的可能性,并提出了在设备端进行预测的设备端方法。

论文的方法是设计了PHFTL,一个轻量级的序列模型,用于实时、精细的数据分离。该模型通过提取页面的历史访问模式的时间序列和相关特征来准确预测页面的寿命。分类准则通过自适应标签方案在运行时动态调整。为了降低计算开销,PHFTL通过将预测与其他内部任务交错进行,并将命令完成与预测解耦来屏蔽机器学习计算。此外,PHFTL还使用高效的闪存数据布局来解决存储开销,将所有机器学习元数据保存在闪存中,并批量获取到RAM中以构建按需缓存。通过这些技术,PHFTL能够在设备端实现实时预测,并保持计算和存储开销较低。

论文的关键发现是PHFTL在减少写放大方面优于现有技术,并在实际硬件上具有可行性。通过使用真实世界的跟踪数据进行评估,论文证明了PHFTL在减少写放大方面的优越性,并展示了在稳态I/O性能方面的实际收益。

总之,这篇论文的重点是基于学习的数据分离用于减少写放大问题。论文提出了PHFTL,一个实用、全面的FTL设计,通过设备端的机器学习模型实现实时、精细的数据分离。PHFTL通过一系列的技术降低计算和存储开销,并在实际硬件上展示了其优越性和可行性。


以下是我的精度【未完】

abstract

ssd的垃圾回收导致写放大,减少这一问题的关键是根据生命周期分离数据;先前的工作提出使用机器学习来准确预测数据寿命,但预测是在主机端执行的,增加主机存储栈的负载。我们提出了PHFTL,一个实用的,整体的FTL设计与设备端基于学习的数据分离。机器学习模型PHFTL准确且自适应地预测每个写入页面的生命周期。引入了一套使能技术来保持较低的计算和存储开销。对PHFTL的全面评估证明了其在实际硬件上的优越性和可行性。
index Terms—solid state drive, flash translation layer, write amplification, data separation, machine learning

introducion

SSD 需要先擦后写,而且容易产生写放大的问题。
垃圾回收是写放大的主要来源。因为先擦后写的限制,在host和bare flash之间放置了FTL,用来转化所有的随机写变成追加写。当FTL用完free pages时,GC就触发了,它会选择一块或者多块作为victims,进行擦除,释放free pages,在做这个操作之前需要将块内的有效页面进去迁移,因而产生WA(写放大)
减少WA的关键是根据生命周期进行分离数据,具有相似生命周期的数据被放置到特定的块中。根据时间局部性原理,它们极有可能会同时失效。因此,在GC期间,FTL有更大的机会确保具有低有效页面计数的受害块,从而降低WA。

为了执行数据分离,我们需要预测将来由主机写入的页面何时会被覆盖。这方面的先前工作主要在host侧做的,加重了host的负担,而且是基于规则和简单启发性的方法,在适应性和准确率上有欠缺。最近有在系统软件上用ML带来了更好的适应性和准确率。但是,他们都把训练和预测放到了host侧。虽然训练可以offline,但预测和I/O请求耦合在一起造成延时。而且整合机器学习的模型到I/O path 可能造成软件栈的干扰,并增加负担。

在SSD内部执行预测的设备端方法将开销限制在设备本身,并避免给主机存储堆栈增加负担。然而,这带来了重大挑战。当可以准确地预测每个页面的生命周期时,数据分离的有效性将得到最大化。但是,这种细粒度的预测对模型的响应性提出了严格的要求,特别是考虑到现代ssd的写延迟可以低至几微秒[15]。尽管SSD控制器已经发展到采用多核架构[16],但它们仍然无法与主机端cpu或gpu竞争。此外,机器学习的元数据记账不应该导致设备上RAM的过度消耗,由于与闪存相比,RAM的成本很高,因此是一种稀缺资源。

我们提出了Prediction-based High-performance FTL (PHFTL),在SSD内部使用ML进行实时、细粒度的数据分离。它是一个轻量级的序列模型。我们使用真实世界的请求序列,将PHFTL与最先进的数据分离方案进行比较,以证明PHFTL在减少WA方面的优势。
在Cosmos+ OpenSSD上建模,【Cosmos+OpenSSD是基于硬件的评估平台】微基准测试显示,ML几乎不会产生运行时开销。此外,跟踪评估证实,较低的WA可转化为稳态I/O性能的实质性增益。

四个贡献点:
(1)我们提出了一个整体的FTL设计,该设计结合了设备端基于学习的数据分离,使用ML模型,可以准确自适应地实时识别短寿命和长寿命页面。
(2)我们通过从关键路径中删除预测并缓存中间计算结果来解决ML计算开销。
(3)我们通过高效的闪存数据布局来解决ML存储开销,该布局允许所有ML元数据保存在闪存中,并且可以轻松地批量检索到RAM以进行缓存以利用局部性。
(4)我们对所提出的设计进行了原型设计,并与最先进的方案进行了评估,以证明其在减少WA方面的有效性及其在实际硬件上的可行性。

II. BACKGROUND AND RELATED WORK

A. SSD Preliminaries SSD的基本知识

基于闪存的固态硬盘建立在通过多个通道连接到嵌入式控制器的NAND闪存芯片阵列上。每个die都可以独立访问,并且由一系列块组成,这些块又包含多个页面。读取和写入以页面粒度执行。**块内的页必须按顺序写入,而写入的页可以按任何顺序读取。当一个块中的所有页都被写入后,必须将该块作为一个整体擦除,然后才能再次写入其中的页。为了对主机隐藏这种特性并保留标准块设备接口,控制器运行一个闪存转换层(FTL)来将所有写操作转换为追加操作。**FTL使用L2P表跟踪从逻辑页码(lpn)到物理页码(ppn)的映射,通常在设备上RAM中以页面粒度维护,以获得最大性能。在现代ssd中,另一种常见的技术是使用超级块(由具有相同die offset的所有块组成)作为基本管理单元[18]。FTL以跨die的循环方式从打开的超级块分配新页面,以利用die之间的并行性。完全打开的超级块是关闭和只读的,等待GC。

B. Tackling GC Write Amplification 处理写放大

当FTL的空闲页面用完时,就会触发GC来回收废弃的页面。在GC期间,必须将受害者(超级)块中包含有效数据的页面复制到其他地方,这会导致WA。来自GC的更高WA会导致更快的设备损耗和对主机I/o的干扰。解决这个问题已经引起了研究人员的广泛关注。从GC中减少WA的关键是数据分离,即分离具有不同生命周期的用户写入数据[3]。假设主机所写页面的生命周期是已知的,存在一个能保证0的最优数据放置方案通过按失效顺序组织页面来实现WA[4]。然而,由于缺乏未来知识,这是不切实际的。研究人员因此提出了估算用户写入数据生命周期的方法,用于数据分离[4]-[7],[11],[12]。大多数先前的工作都是基于规则的方法,基于简单的启发式[4]-[7],例如根据用户写的页面的更新频率或写系统调用上下文对其进行分组。它们的运行时开销可以忽略不计,但只能提供有限的适应性和准确性。基于学习的数据。

III. DESIGN

PHFTL架构

在这里插入图片描述
结构说明:
图1显示了PHFTL的总体设计。PHFTL使用监督机器学习来准确和自适应地预测用户编写的页面的生命周期,以执行数据分离。如图1所示,PHFTL的主要组成部分包括:
1)The Model Trainer。在处理来自主机的写命令时,PHFTL使用Page Classifier对写命令所触及的每个逻辑页面进行二分类预测【长生命和短生命两类】,以确定它是否是短期的(在不久的将来被覆盖)。在输入端,Page Classifier将页面历史访问统计的时间序列作为特征。
2)The Model Trainer。由于对模型训练没有严格的实时性要求,所以PHFTL在主机上训练模型,充分利用主机的计算资源。具体来说,模型训练器从设备驱动程序配置用户I/ o,以收集用于训练页面分类器的训练数据。模型培训师部署训练过的模型页面分类器通过传递模型参数到SSD。随着系统的运行,模型培训师继续训练数据收集,并定期训练和部署新的模型参数,以适应不断变化的工作负载模式。
3) NAND flash management. PHFTL以超级块为单位管理NAND闪存。数据分离是通过将页面分离到专用的超级块来实现的。根据Page Classifier的预测结果(short-living or long-living),用户编写的页面被定向到不同的超级块。GC写入的页面是根据它们被选择为GC受害者的次数进行分离的。例如,被GC一次的页面和被GC两次的页面会被分配到不同的超级块,等等(被GC五次或更多次的页面会被分配到同一个超级块)。这样做的好处是,只读页面最终将被分组到专用的超级块中。在超级块中,用户数据存储在数据页中,而尾部的元页面保存ML元数据。【这一小段关键,建议结合原文来看】
4) Metadata cache and DMA buffer in RAM。 在RAM中,PHFTL维护一个小的按需ML元数据缓存,用于快速元数据检索。RAM还可以作为用户数据的临时缓冲区通过DMA从主机传输。
训练在host侧,部署再ssd侧。
在本节的其余部分中,我们将详细描述Page Classifier如何学习和预测页面生命周期(第III-Bsection),提出的技术可以在设备端实现实时预测(第III-C section),以及GC policy(第III-D条)。

B. Learning-based Data Separation

由于PHFTL使用监督机器学习来预测页面生命周期,因此出现的第一个问题是如何根据页面的生命周期标记页面。在本节中,我们将描述PHFTL如何自适应地将页面标记为短期和长期页面,然后介绍用于学习标记的训练数据的模型的特征和结构。

  • Adaptive data labeling 自适应数据标注
    在输出端,Page Classifier被设计为对写入命令触及的每个逻辑页面进行二分类预测。预测结果表明页面的生命周期是否低于阈值,该阈值是在运行时自适应设置的(如下所述)。在PHFTL中,逻辑页的生命周期定义为在两次写入该特定页之间写入的逻辑页数。【 In PHFTL, the lifetime of a logical
    page is defined as the number of logical pages written between two
    writes to this particular page.】(这句话我不认为我理解对了)@todo
    这相当于使用全局页写计数器作为虚拟时钟。这种二元分类方法的有效性源于对现实工作负载中的页面生命周期通常遵循倾斜分布的观察[19],[20],如图2(a)所示。这允许我们留出一组“短寿命”页面,它们的生命周期明显短于其他页面,以利用数据分离。此外,与多类分类和回归方法相比,二元分类模型需要更小的模型容量来实现更高的准确率,因此对资源受限的SSD更友好。
    在这里插入图片描述
    PHFTL在运行时通过采样页面生命周期动态调整训练数据标记的分类阈值。调整进程在每个写窗口后触发,其中主机写入SSD总容量的5%。在每个窗口中,任何针对以前在同一窗口中写过的页面的写请求都提供一个生命周期样本。在窗口结束时,PHFTL将有一组采样的页面生命周期。然后PHFTL进行调整根据算法1的分类阈值。
    在这里插入图片描述
    这个算法是用于分类阈值调整的算法。它用于动态地调整分类阈值,以提高预测准确性。算法的步骤如下:
  1. 初始化步长(step)为5。
  2. 如果是第一个窗口,则直接使用曲线的拐点作为初始阈值。
  3. 否则,根据上一个窗口的阈值(prevThres)在当前窗口中的百分位位置(p),尝试调整分类阈值以提高预测准确性。
  4. 在(p-step)百分位、p百分位和(p+step)百分位位置上测试三个候选阈值,其中step是调整步长。
  5. 使用这三个候选值对当前窗口中收集的训练数据进行标记,以训练三个轻量级逻辑回归模型。所有训练集都被重新采样以获得平衡的类分布。
  6. 选择能够提供最高准确性的候选值作为新的分类阈值。
  7. 最后,通过增加或减少调整步长来优化调整过程。

分类阈值调整算法的目标是朝着能够提高预测精度的方向动态调整阈值。对于系统初始化后的第一个窗口,PHFTL首先对生命周期样本进行排序,直接选取阈值,获得一组(Li, i)坐标,其中Li为排序后样本数组中的第i个样本(共N个样本)。选取距离(L1, 1)与(LN, N)连接线距离最大的坐标对应的样本作为初始阈值。从视觉上看,这是寿命CDF曲线的拐点(图2(a))。这种方法背后的直觉是,直线代表一个均匀分布,它与实际CDF之间的距离开始缩小的点可以代表“长尾”的入口。对于其他窗口,如图2(b)所示,PHFTL首先定位当前窗口中前一个窗口的阈值(prevtres)的百分位数位置,例如p。然后PHFTL尝试向可以提高预测精度的方向调整分类阈值。这是通过在(p−step)th, p和(p + step)th百分位数测试三个候选阈值来完成的,其中step是调整步长。PHFTL使用三个候选值标记当前窗口中收集的训练数据,以训练三个轻量级逻辑回归模型。所有的训练集都被重新采样以得到一个平衡的类分布。提供最高精度的候选值maxthres被选为新的分类阈值。最后,PHFTL通过延长或缩短调整步骤来细化调整过程。

  • Feature extraction and model structure. 特征抽取和模型结构
    在探索了广阔的各种机器学习模型和输入特征,我们将 Page Classifier转换为使用时间的轻量级序列模型作为特征的预测页面的一系列历史访问统计信息(图3)。在我们的设计迭代中,最近观察到的发现页面的生存期(prev_lifetime)是最长的有用的功能,能够达到~ 70%的精度。的准确性是否可以通过添加有关当前写入的信息来改进请求,包括请求大小(io_len)和请求是否为顺序(is_seq)。与局部性和工作负载概要文件相关的特性也是有帮助的,这样的特性是通过记录最近针对较大块的读/写请求数当前写入的页属于哪个页面(chunk_write和Chunk_read)和全局读写比率(rw_rat)。最后,包括所有历史数据,准确率可达90%以上使用上述特征的时间序列的信息。
    6特征:lifetime of a page (prev_lifetime) 最有效的特征、请求大小(io_len)、请求是否顺序(is_seq)、chunk_write 块写、chunk_read 和 全局读写比 read/write ratio (rw_rat)
    选取这六个特征的理由分析的也很棒。
    在这里插入图片描述
    如图3所示,Page Classifier使用一个门控循环单元GRU是一种能够处理时间序列数据的序列模型,用于学习标记的输入特征。GRU模型具有32个神经元的单层隐藏状态。最后一个GRU单元的隐藏状态是通过一个全连接层产生2个输出神经元。
    最后应用argmax进行预测。为有效的处理过程中,PHFTL将数值输入分解为十六进制数字每个数字代表一个神经元。每个数字的位数特性的选择,使大多数情况下可以处理无溢出。模型在每个窗口的末尾进行一个epoch的训练交叉熵损失函数和Adam优化器在窗口中收集训练数据。

C. Enabling Prediction inside the SSD

为了将页面分类器集成到资源受限的SSD中,我们提出了一套启用技术。对于计算开销,PHFTL从关键路径中删除预测,并缓存中间计算结果(隐藏状态)以降低预测复杂性。对于存储开销,PHFTL维护ML元数据(缓存的隐藏状态和特征提取信息)在闪存中,只在RAM中保留一个小的按需元数据缓存。

  • Reducing computation cost. 减小计算开销
    从三个方面进行优化: 1) Interleaved prediction 交错预测 offloads Page Classifier to a dedicated core【分一个专门的核心给预测器】 (2) Decoupled command completion 无论预测是否完成,只要负载到达RAM中的DMA缓冲区,我们就允许写命令成功返回,从而将命令完成和模型预测分离。 3)降低序列模型本身的计算复杂度
    在高性能ssd的实际标准NVMe中,写命令(64B)和数据有效负载(通常以4KB块为单位)是分开传输的,后者由于容量较大而更耗时。这允许两种优化,可以掩盖预测开销从主机的感知:(1) Interleaved prediction 交错预测。PHFTL利用现代SSD控制器的多核架构,offloads Page Classifier to a dedicated core【分一个专门的核心给预测器】。由于一旦收到写命令,所有输入特性都可用,因此预测、命令处理和有效负载传输可以并行进行。这确保了预测不会阻塞其他内部任务???(why 为什么不阻塞,没理解)。更重要的是,当前请求的预测开销被有效负载传输延迟所隐藏。(2) Decoupled command completion 解耦的命令补全。只有在将页面写入flash时才需要预测结果。因此,无论预测是否完成,**只要负载到达RAM中的DMA缓冲区,我们就允许写命令成功返回,从而将命令完成和模型预测分离。**当要将该页刷新为flash时,将异步收集预测结果。在第五节中,我们展示了非关键路径预测技术可以掩盖几乎所有的预测开销。

进一步优化的机会在于序列模型本身的计算复杂度。如图3所示,该模型递归地对页面的(很长的)特征序列执行计算,以绘制单个预测。这样的计算开销对于实时预测来说是不可接受的。**然而,给定页在连续两次写入时的特征序列只在最后一个时间步不同。**基于这一观察,对于每个页面,PHFTL在每次预测之后缓存最后一个GRU单元(Ht)的隐藏状态。在预测页面后,PHFTL检索缓存的隐藏状态。与第III-B节中描述的新输入特征一起,该模型可以在一个步骤中产生最终结果。从而将预测的计算复杂度从O(N)降低到O(1),其中N为特征序列的长度。如图3所示,该模型递归地对页面的(很长的)特征序列执行计算,以绘制单个预测。这样的计算开销对于实时预测来说是不可接受的。然而,给定页在连续两次写入时的特征序列只在最后一个时间步不同。基于这一观察,对于每个页面,PHFTL在每次预测之后缓存最后一个GRU单元(Ht)的隐藏状态。在预测页面后,PHFTL检索缓存的隐藏状态。与第III-B节中描述的新输入特征一起,该模型可以在一个步骤中产生最终结果。从而将预测的计算复杂度从O(N)降低到O(1),其中N为特征序列的长度。
However, the feature sequences of a given page at two consecutive writes only differ in the last time step.对应给定页在连续两次写入时的特征序列只在最后一个时间步不同。 这是数据本身的特性,而非LSTM的特性---------------这段好好看看,没看懂啊。

  • Reducing storage cost.
    除了为每个页面缓存隐藏状态(对于8位量化模型为32B)之外,PHFTL还需要记录每个页面写时间戳(4B)以进行生命周期计算。这导致每个页面有36B的ML元数据。为了减少内存消耗,PHFTL将这些元数据存储在闪存中,并在RAM中维护按需元数据缓存。
    如图4所示,位于超级块尾部的页面是元页面,并在超级块中存储每个数据页的ML元数据。元页面包含超块中连续数据页的元数据条目。每次模型对逻辑页(LPN)执行预测时,首先通过查找L2P表中相应数据页的PPN来检索其元数据。所需元页(MPPN)的地址可以使用超级块中数据页的偏移量来计算。然后使用MPPN搜索RAM中的元数据缓存,该缓存由红黑树索引。如果在元数据缓存中找到MPPN,则可以直接从RAM中获取所请求的元数据。在缓存丢失的情况下,从flash读取元页面,然后插入元数据缓存。由于超级块中的连续页面也是连续分配的,因此检索到的元数据条目具有固有的局部性。如果元数据缓存已满,则根据LRU策略先清空一个槽位。元数据缓存大小设置为SSD元数据页面数的1%。这将元数据RAM消耗减少到每页0.36字节。除了元页面之外,每个数据页面还在每个页面OOB区域中保留其元数据的副本,以便在GC期间不需要读取元页面进行元数据迁移。
    在这里插入图片描述

D. Garbage Collection 垃圾回收

在PHFTL中,GC以超级块为单位执行。在每次写请求之后,如果空闲超级块的比例低于5%,则会选择一个受害者超级块进行GC。在GC过程中,使用Adjusted Greedy策略计算得分最高的超级块被选择为受害者:
在这里插入图片描述
其中I和V是超级块中无效和有效页面的比例,T是分类阈值,C是超级块关闭后的运行时间(写入的页面数)。

Adjusted Greedy policy 的基本原理类似于Cost Benefit策略[21],因为它在GC期间给予hot page较低的优先级。它更重要的目的是纠正错误的预测。具体来说,公式1中的分母对short-living (hot) pages的最终分数应用了折扣。当有更多有效页面时,折扣因子应该更高,因为迁移页面很快变为无效的隐藏成本更大,因此有V。添加了 T C \frac{T}{C} CT(T表示规范化),以便对于具有相同无效页面数量的两个超级块,较早关闭的超级块具有较低的折扣因子。这是因为模型可能会出现错误,而有效期较长的页面更有可能被错误地预测为寿命较短。在GC期间,应该优先使用这种“假”的短寿命页面,而不是“真”的短寿命页面,以纠正错误的预测。

IV. IMPLEMENTATION

我们在不同的评估平台上用两种实现对PHFTL进行了原型化:PHFTL-emu和PHFTL-hw。PHFTL-emu是在FEMU[22]上实现的,FEMU是一个基于qemu的SSD模拟器。FEMU的灵活性使我们能够轻松地将SSD配置(页面大小,通道数量等)对齐到不同的跟踪。但是,由于FEMU在主机CPU上使用专用线程模拟FTL,因此PHFTL-emu无法捕获弱SSD控制器上的ML计算开销。因此,我们只使用PHFTL-emu来评估PHFTL在减少WA方面的能力。
PHFTL-hw是在基于真实硬件的SSD评估平台Cosmos+ OpenSSD(即OpenSSD[17]上实现的。OpenSSD采用赛灵思Zynq 7000 SoC, 1GB DRAM和~ 500GB NAND闪存。它使用标准NVMe与主机通信。SoC由硬连线双核ARM cortex处理器和可编程FPGA组成。ARM处理器作为控制器并运行FTL,我们在其中添加PHFTL
组件。我们使用一个内核来运行页面分类器和处理其他所有任务。我们使用
SIMD指令[23],也可在最新的高端存储控制器中使用[24]。所有模型参数量化为
8位整数的精度损失小于1%。经过仔细调优和优化,带来了单个预测的开销
低至9µs左右,足以实现实时预测。然而,通过使用更多的方法可以实现更快的预测强大的嵌入式处理器或专门的硬件加速器。PHFTL-emu和PHFTL-hw的开发耗时约1500 LoC和~ 6000 LoC。

V. EVALUATION

本节介绍PHFTL和基线系统的评估结果。在进行评估时,我们寻求回答以下研究问题:
•RQ1。与最先进的方案相比,PHFTL在减少写放大方面表现如何?
•RQ2。page classifier 能否准确地预测实际工作负载中的页面生存期?
•RQ3。在运行时执行机器学习计算的开销是否可以接受?
•RQ4。GC写放大的减少在多大程度上转化为延迟和带宽方面的实际收益?

A. Evaluation Setup

  • DataSet
    我们使用阿里云[19]的块跟踪数据集进行实验。该数据集包含从生产集群随机抽样的1000个驱动器的1个月块跟踪。因为从GC测试WA需要足够大的写大小,所以我们选择所有持续超过20个驱动器写的驱动器(即,20×驱动器大小),并使用跟踪中的前20个驱动器写入进行评估。1000个驱动器中有20个满足此要求,它们的大小从40GB到500GB不等。
  • Methodology
    为了不同的目的,我们评估了PHFTL的两个原型实现(第4节)。为了回答RQ1,我们在FEMU上实现了SepBIT[4]和2R[5]这两种最先进的设备端数据分离方案,并根据它们对PHFTL-emu进行了评估。我们还评估了FEMU的原始FTL (Base),它没有进行数据分离。对于没有指定受害者选择策略的基线,使用Cost-Benefit[21]。我们接通了线路FEMU并报告结果WA。为了回答RQ2,我们对跟踪进行预处理,以注释每个页面的实际生命周期。这样就可以求值了。
  • Configurations.
    我们使用的服务器有两个Intel Xeon Gold 6240M cpu和1.5TB内存(内存模式下的Intel Optane Persistent memory;内存大小为192GB)作为主机系统。所有模拟ssd和OpenSSD的页面大小都是16KB。超额供给率设定为7%。为跟踪重放启动32个工作线程,这足以使设备带宽饱和。

B. Write Amplification

在这里插入图片描述
图5显示了不同数据下测试轨迹的WA分离方案。WA计算为(F−U)/U,其中F和U分别为flash写大小和用户写大小。平均而言,与Base和PHFTL相比,PHFTL减少了65.1%的总WA与基于规则的方案相比为22.8%-54.6%。在Base中,使用不同的生命周期混合在同一个块中。在GC期间,长活动页面仍然有效,必须复制到其他地方,导致到高WA。2R仅将GC写入与基于用户的写入分开在GC期间的有效页面是长期存在的。SepBIT根据推断的生命周期对用户编写的页面进行分类,但是简单地假设新写入的页的生存期相等回到它的前世。这种简单的启发式无法提供高的结果分离精度和减少效果有限WA。相比之下,PHFTL使用ML,使其达到最低的整体WA。运行时在跟踪中,我们还注意到RAM中的小元数据缓存可以提供98.2%-99.9%的ML元数据检索。这是因为ML元数据是从flash中批量获取的,具有固有的时态和空间局部性,允许一个元页面读取服务于许多后续元数据检索。
因此,我们有了RQ1的答案:在现实世界的痕迹上,与传统ftl和最先进的数据分离方案相比,PHFTL可以实现更低的WA。

C. Page Classifier Performance

表1给出了页面分类器在测试的痕迹。如表1所示,该模型的准确率81.4%-98.7%,平均准确率为90.9%。F1分数(谐波平均值)的准确率和召回率)范围为21.3%至98.3% (86.7%)平均),38号是唯一一个低于70%的首先不会表现出高WA。我们发现模型从长时间的历史模式中学习页面生命周期的能力是很重要的
很大的帮助:当我们截断特征序列的长度为1、预测精度最高下降9.2%(平均4.0%)。的页面分类器准确预测页面生存期的能力是一个重要的问题影响PHFTL中数据分离效果的关键因素。
在这里插入图片描述
因此,我们能够回答RQ2: Page Classifier可以准确地识别实际工作负载中的短期和长期页面。

D. Feasibility and Performance on Cosmos+ OpenSSD Cosmos+ OpenSSD的可行性和性能

训练one epoch的模型花费少于1秒,而窗口中的实际工作负载(分钟到小时),两者相比,前者可忽略不计。CPU使用情况在我们的试验台上最多是15%。为了分析预测开销,我们使用FIO发出不同大小的写请求。图6展示了
平均延迟(误差条为标准差)。只有写是经过测试,因为读取不会触发预测。写偏移量被封顶到16MB,即OpenSSD上RAM数据缓冲区的大小,因此没有数据写入flash。这个设置允许我们强调FTL在极端情况下,否则闪存延迟将成为瓶颈。在PHFTL-hw(sync)中,预测放在关键路径上通过只使用一个核心来执行预测和其他内部任务。在这种情况下,延迟急剧增加,增加了139.7%平均水平。当我们将预测从关键路径(PHFTL-hw)中移除时,平均延迟恢复正常,几乎与原来的FTL相同。这证实了非关键路径预测的有效性技术。延迟标准偏差在PHFTL-hw中高于由于两个核心之间偶尔同步而导致库存不足由于共享,更多的缓存线丢失。
At this point, we can answer RQ3: Almost no visible overhead is
incurred by ML at runtime.

Real-world traces.

在这里插入图片描述
Hence, the answer to RQ4 is clear: The reduction in GC write
amplification contributes to substantial improvement in steady-state
bandwidth and latency, despite extra machine learning overhead.

VI. CONCLUSION

在本文中,我们提出了PHFTL。PHFTL成功合并ML用于SSD内部的实时和细粒度数据分离。
PHFTL中的ML模型可以准确、自适应地识别短寿命和长寿命页面。提出了一套使能技术,将该模型集成到SSD中,同时保持较低的计算和存储开销。对最先进的数据分离方案的评估表明,PHFTL可以实现更低的性能WA。在实际硬件上的进一步评估表明,PHFTL是一种实用的设计,可以提高稳态I/O性能

20240127–初稿完成-需要再精细化阅读一遍,有细节没理解。

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值