首页 > 代码库 > SMR磁盘学习8---Novel Address Mappings for Shingled Write Disks
SMR磁盘学习8---Novel Address Mappings for Shingled Write Disks
SMR磁盘学习8---Novel Address Mappings for Shingled Write Disks
第一部分:总述
本文通过改变mapping,减少SWD带来的写放大问题,主要对两个因素进行了深刻的讨论,即SG(Space Gain,空间增益)和WAR(Write Amplification Ratio,写放大比例),实现空间和性能的平衡,降低磁盘系统的开销。
第二部分:重难点详解
Update out-of-place
一、分析两种更新的模式
Update in-place
Update out-of-place 需要两个region 1. I-region 2.E-region
E-region作为一个循环缓冲空间来用,用来缓存和重新整理数据。所有的输入的写数据首先到达E-region,当数据被需要时,数据会从E-region中转存到I-region,也就是在一个新的地方更新,是原来的位置变无效,这样会一直不断的在E-region和I-region进行写操作。虽然可以绕过SWD写放大的问题,但是这两个region需要进行垃圾收集(GC)操作回收无效块的存储空间,同时mapping table要做出进行相应的改变,使得系统开发较大。这种更新模式不可行。
Update in-place 不需要GC操作和复杂的mapping表,tracks组成bands,相邻的band之间有个安全间隔,它有磁头的宽度决定。(Band的大小对权衡space gain 和性能很重要)
更新到来时:将影响到的连续tracks上的数据读到一个缓冲块里在更新数据的时候将数据回滚到原来的位置。
二、找突破。假设普通磁盘和SWDs的tracks 组织方式一样,每个band包含4个tracks,传统的磁盘映射是连续的,如[1-100]对应第一个track,[101-200]对应第二个track, [201-300]对应第三个track等等。但SWD如果使用传统的Mapping,一次更新可能会招致额外的读和写。如图所示(one band),更新a 会招致2次读,3次写。
图1
如果改变tracks的使用顺序减少写放大问题,于是,可以对mapping进行改进。
让磁盘的容量利用低于50%的时候都放到band的第一、第四track上,更新产生的写放大会降低。
于是就有了几个新的映射方案:R(4123) or R(1423)(mapping的第一个25%映射到bands的第一个track上,mapping的第二个25%映射到bands的第二个track上,mapping的第三个25%映射到bands的第三个track上,mapping的第四个25%映射到bands的第四个track上)、14R(23)(mapping的第一个50%映射到bands的第一、四个track上,mapping的第二个25%映射到bands的第二个track上,mapping的第三个25%映射到bands的第三个track上)、124R(3)(mapping的第一个75%映射到bands的第一、二、四个track上,mapping的第二个25%映射到bands的第三个track上)
效果预测:
三,实验验证。
使用四个模拟磁盘和两个设备(Address mapper 地址映射器,Write amplifier:写放大器)分别在磁盘容量使用率为25%、50%、75%、100%时进行更新的响应时间和写放大比率的测量
结果
当使用容量使用小于50%时写放大性能稳定较好,75%的时候性能下降,100%就没有优势了。
第三部分:总结
SWD有写放大问题,平衡space和性能最好的方法是新的态地址寻址:方案R(4123) or R(1423)、14R(23)、124R(3)
SMR磁盘学习8---Novel Address Mappings for Shingled Write Disks