TP链接
TP原文:TP4146 Flexible Data Placement 2022.11.30 Ratified.pdf
https://nvmexpress.org/wp-content/uploads/Hyperscale-Innovation-Flexible-Data-Placement-Mode-FDP.pdf
TP的目标
Google and Meta提的这个TP看起来目标很有野心,期望把SSD盘的的写放大WA能够降低到1。
TP分析
TP增加了一个Reclaim Group的概念,主要是想通过host侧的应用对数据进行识别,在写入SSD时可以分类写入不同的空间,在数据废弃后,以Reclaim Group为粒度进行擦除回收SSD的NAND空间。以此达到垃圾的数据集中起来回收的效果,减少了对NAND FALSH的block做GC过程中对有效数据的搬移操作,提高效率,降低写放大WA。
按照这个思路,SSD需要重构FTL表映射的架构,不再是以L4K、L8K等方式映射,而是要至少以single block为粒度分配空间,与新增的Reclaim Group对应,这样才能将生命周期类似的一类数据写入相同的Reclaim Group-->block Group,以达到同时擦除的目的。
该思路其实和open channel和多流有类似之处。
与open channel相比,Host的应用和驱动不用看到非常多的SSD FW的实现细节,例如,NAND空间管理、SUPER BLOCK组织、GC等,实现上会简化一些。但是对FW的架构影响较大。
与多流相比,多流是以SUPER BLOCK与一条流对应,粒度较大,一个SUPER BLOCK的空间都是以GB为单位。而FDP可以用更小的粒度对数据进行分组,比如以single block分组,可以在MB级别。
TP中还有较多的TBD,短时间应该还无法落地,后面再继续跟踪。
SSD的垃圾回收
参考:
SSD的垃圾回收-GC_胡泉波的博客-CSDN博客
TP相关的一个实验
Eliminating the I/O blender: The promise of flexible data placement
Flexible data placement (FDP) is a possible forthcoming feature of the NVMeTM specification that has been proposed by Google and Meta.The purpose of this feature is to reduce the write amplification (WA) when multiple applications are writing, modifying and reading data on the same device. Benefits of reduced WA for these companies come in the form of more usable capacity and potentially a longer useful life for each device.
做这个实验有一个潜台词:4个app的数据的生命周期是独立的。如果4个APP毫无关联,这肯定是理所当然的。
但是,即使这个潜台词完全正确,按照实验中的做法,将1个7.68TB的盘替换为4个1.92TB的盘后,在单个1.92TB盘内部,也无法将相同生命周期的数据按照NAND的擦除单元(一个single block)独立开来,也就无法消除因为垃圾回收带来的写放大WA。
写4个盘的实验中,按照当前SSD分配NAND物理空间和垃圾回收的方法不变,写放大的大小取决于APP写入数据的模型:
- 顺序写入:每个block中写入的数据,都会全部被更新到另一个block;
- 随机写入:每个block中写入的数据,会部分被更新到另一个block。最终写过数据的所有block中都有垃圾数据,同时也有有效数据。
所以,随着随机写入的比例提高,写放大WA也会随之提高。正如时延中所描述:
With the increase in randomness, we see a corresponding increase in write amplification from nearly 1 (1.02) to 1.63, as shown in Figure 3.