SMR磁盘学习12---drivemanaged SMR 磁盘总结
SMR磁盘学习12---drivemanaged SMR 磁盘总结
之前的SMR磁盘学习的6,7,8,9,10,11,12部分讲述了有关drive manage部分的知识,现在我们来把相关的一起总结一下。
SMR磁盘的稳定随机写性能和更新在磁盘的应用上显得十分重要,为了更好地让SMR取代现存的磁盘并得到广泛应用,不得不从它们出发进行考虑和设计。
1.传统磁盘与SWD的tracks排布
对SMR来说,在磁盘的盘片上的磁道以瓦片的排布方式被组织[A],使得它的存储密度增加,但是写磁头定位到一个磁道上比其他标准磁盘显得很大,也就是说写磁头横跨的磁道数目由标准磁盘的一个变成多个,当在一个磁道上进行写操作时,可能会影响相邻磁道上的数据。如图1
图1 传统磁盘与瓦记录磁盘的结构
对bands进行设计,bands由在同一盘片上的连续tracks组成[B],即一个band包含几个连续的tracks。磁盘上的所有数据都存储在bands上,相邻的bands之间有k(k的大小由写磁头的宽度决定)个空tracks,作为两个bands的安全间隙。Bands的组成不采用同一柱面的tracks,是因为同一柱面的tracks之间的切换,经过盘片间的切换后,磁头还需要寻找到相应磁道,这样会增加磁盘系统的开销,使得其性能降低。
2.维持稳定的随机写算法
为了解决SMR随机写的问题,David Hall等人开发了一个数据处理算法[C] 即SMR短块算法(short-block SMR algorithm),该算法涉及到了两个布局:I-region和E-region;主要的存储数据安排I-region上, 在I-region中包含额外tracks,这些额外的tracks一部分用作refresh buffer,用来缓冲旧的数据;另一部分作为相邻两个I-region的guard tracks,如图2所示。 E-region用来接收从主机来的写请求操作,通过对这两个region分别进行合理的组织安排,可使得SMR能够维持稳定的随机写性能。首先将请求的写操作暂存在E-region中,给E-region一个合适的清理速率,目的是为E-region接收新的写操作提供充足的空间,使之持续稳定的接收写操作,在对E-region执行清理机制操作时,会引发后台的刷新操作,在I-region相关联的位置开始进行读操作,old data被读到I-region的buffer tracks当中;读操作完成后,把从E-region读出来的写操作写入到I-region的相应位置中,并将old data重写到原来的位置,在I-region的tracks上写的方式是顺序的,当数据更新完成后,E-region中对应的写操作将被清除。
图2
当写块大小小于104时使用这种算法的稳定随机写性能比标准HDD好,超过了这个值性能就开始下降。
为了降低随机写造成的写操作次数,延长写块的长度,又提出了一个贪婪算发:给任意初始状态和一个逻辑track去更新k,选择一个使得写数目最小的作为终态,如果这样的终态不止一个,选择最集中的一个。一般说来,这个值接近N/2。
下图为给定的原始状态图,假定有三个状态,,tracks个数为4,写磁头的宽度为2,各个状态到达每个终态的写操作次数如图所示。状态1指向状态2,在外侧线上的1/2代表从第一个状态的第一个逻辑track到达终态2需要两次写操作,等等。
假设3个状态
使用贪婪算法,可以将上图简化成下图,以此达到减少平均写次数提高系统性能的目的。
该算法能够有效地降低随机写的平均次数。
3.SWD的数据更新的实现布局
实现数据更新的布局设计,数据更新有两种类型update out-of-place,update in-place。
在SMR中很少采用update out-of-place这种模式,update out-of-place采用了两个region(I-region和E-region),在此之前已经提到,这里不做详细说明。I-region和E-region构成了一个迂回系统[D],在执行更新操作时,将数据更新到新的地址块,原始的地址块变为无效;虽然可以避免写放大,但是E-region和I-region不得不执行垃圾收集(GC,Garbage Collection)操作来回收无效块和造成的碎片;由于将更新的数据更新到新的位置,逻辑块地址到物理块地址的映射表(LBA-to-PBA mapping table)也因此变得更加复杂。
SMR的更新采用Update in-pace这种模式[E][F],需要额外的预留空间用来缓冲数据,下图是SMR实现Update in-pace的布局图。
Physical Space Layout for In-place Update SMR
图的左侧是SMR的RAZ结构,相邻的RAZ track之间有k个空tracks(k的值由写磁头的大小决定),即把RAZ做成类似标准HDD的样式,不存在写放大问题。用于缓冲元数据。RAZ实现的两种策略分别为:①将非易失RAM(NVROM)附加到SMR作为一个专用RAZ②在SMR中,用单独的一个个bands组成专用region作为RAZ。在执行数据更新操作时,从mapping表中找到相关联的物理地址,把老数据读到缓冲区,再将老数据与新数据合并,最后在相应物理地址上写新数据,刷新老的数据。与update in-place 模式的不同之处是不需要GC(Garbage Collection)操作,mapping表相对较为简单。
4.Mapping表的改进
通过前面的介绍,我们可知update in-place模式在提高SMR的性能方面优越于update out-of-place模式,但是update in-place实现需要预留额外的空间,因此为了达到空间与性能平衡,对mapping进行改进设计。
逻辑块地址到物理块地址的映射表(LBA-to-PBA mapping table)的改进。逻辑块地址(LBA,Logical Block Address)到物理块地址(PBA,Physical Block Address)映射的设计也是SMR的重要部分。
通过前面的介绍,我们可知update in-place模式在提高SMR的性能方面优越于update out-of-place模式,因此对mapping的改进设计也是基于update in-place模式。
假设普通磁盘和SMRs的tracks 组织方式一样,每个band包含4个tracks,写磁头的宽度为2,band之间有一个空track作为安全隔离带,采用的映射机制依旧为传统的标准磁盘的映射机制,则有[1-100]对应第一个track,[101-200]对应第二个track, [201-300]对应第三个track等等。SMR磁盘的利用率为4/(4+1)=0.8,实际磁盘空间用SG表示,在SMR上执行一次更新可能会招致额外的读和写。如图所示(one band),更新a 会招致2次读,3次写,即写放大问题,写放大计算用WAR (Write Amplification Ratio)表示,SG和WAR的计算如下(N代表磁盘的band包含的tracks数目,W为写磁头的宽度,i的取值为0-(N-1)[G]。
如果改变tracks的使用顺序使得减少写放大问题变得可行,于是,就可以对逻辑块地址到物理块地址的映射表(LBA-to-PBA mapping table)进行改进,来实现tracks使用顺序的改变。
于是就有3种不同的方案。
第一种方案,当SMR使用容量低于25%时,数据依次存储在磁盘的每个band的第一个或第四个track上;随着磁盘的使用容量增加,低于50%是将增加的数据依次存储在磁盘的每个band的第四个或第一个track;当磁盘使用容量增加低于75%时,增加的数据依次存储到磁盘的每个band的第二个track;随着磁盘使用容量的继续增加,增加的数据存储到第三个track。表现在映射表中为:将磁盘上每个band上的tracks进行分组(即first track,second track,third track,fourth track),首先连续映射全部的fourth track或者first track,其次连续映射first track或fourth track,接着连续映射second track,最后映射third track。该方案记作R(4123)或R(1423)
第二种方案,当SMR使用容量低于50%时,数据依次存储在磁盘的每个band的第一个和第四个track上(即存储完第一个band的第一和第四tracks,再存储第二个band的第一和第四tracks,依次类推);当磁盘使用容量增加低于75%时,增加的数据依次存储到磁盘的每个band的第二个track;随着磁盘使用容量的继续增加,增加的数据存储到第三个track。表现在映射表中为:将磁盘上每个band上的tracks进行分组(即first track and fourth track,second track,third track),首先将每个band的第一和第四track依次排列进行连续映射,其次连续映射second track,最后映射third track。该方案记作14R(23)
第三种方案,当SMR使用容量低于75%时,数据依次存储在磁盘的每个band的第一个、第二和第四个track上(即存储完第一个band的第一、第二和第四tracks,再存储第二个band的第一、第二和第四tracks,依次类推);随着磁盘使用容量的继续增加,增加的数据存储到第三个track。表现在映射表中为:将磁盘上每个band上的tracks进行分组(即first track and fourth track,second track,third track),首先将每个band的第一、第二和第四track依次排列进行连续映射,其次连续映射second track,最后映射third track。该方案记作124R(3)
这样三种mapping方案,当磁盘使用容量低于50%方案一和方案二使得磁盘性能较好,整体来看第一种方案最好。
5.Band compaction的布局及改进算法
Band的清理机制,对于bands的清理机制的基本布局有两种[E][F]。第一种布局:每个band都附有一个循环日志,通过从日志的尾部到日志的头部移动实时数据来回收自由空间;第二种布局:通过压缩一个或几个完整的bands,将数据存放到少数几个空的band,并将压缩的bands清空释放出来。
循环日志结构在band在中的组织安排如下图所示。循环日志包含日志头部和日志尾部日志头部和日志尾部之间有个安全隔离带,由k个空tracks组成(k由写磁头的宽度决定)为了防止在头部进行写操作破坏尾部数据。
Layout in a Band with Circular Log
为了使band的清理机制的效率更高,系统开销降低,使得系统的响应能力得到提高提出了一种数据分类算法[J]。
该算法基于清理机制的第二种布局提出来的,band的清理机制会产生数据的移动,为了降低执行band清理操作导致的数据移动,主要将数据分成三类[J][K],即free blocks, cold blocks, hot blocks。这样分类的原因是:cold blocks与hot blocks相比,选择精简压缩hot blocks越少,数据移动的量越少(压缩hot blocks的意义很小,这里不考虑对hot blocks的压缩); cold blacks与 free blocks相比,cold blacks选择压缩的权重小于free blocks时进行压缩产生的数据移动量会减少。由此产生了cold-weight算法,算法推倒如下:
首先,%free + %cold + %hot = 1
当分别给hot blocks和cold blocks一个whot ,wcold则有:
%free + (wcold × %cold) + (whot × %hot)
将%hot替换掉,可以得到:
%free + (wcold × %cold) + (whot × (1 - %free - %cold))
最右面的式子展开
%free + (wcold × %cold) + whot - (whot × %free) - (whot ×%cold)
由以上分析将whot视作常量对待,忽略不计,合并相同的项。
%free × (1 - whot) + %cold× (wcold - whot)
除以(1 - whot)
%free + %cold × (wcold - whot)/(1 - whot )
将whot视作0,该公式变为:%free + %cold ×wcold
于是Cold-weight算法为当执行band compaction前,由公式计算出的每个band的值,选出所规定数目的几个值最大的bands,进行清理压缩。
假设有三个数据段,如图,每次只清理压缩一个数据段,此时free blocks和cold blocks的权重相同(cold blocks没设权重),由公式可知选择的压缩的数据段为第一个数据段,不是期望的结果。
如果将cold blocks的权重设为0.5,如下图所示。有公式计算可得,选择清理压缩的数据段是第三个数据段,是期望的结果。
因此该算法可以减少数据移动,使得band压缩效率更高,同时也提高了系统的响应能力。
6.SMR技术的实现
SMR 有三种类型:Drive-Managed SMR(驱动器管理)、Host Aware SMR(主机感知)和Host Managed(主机管理)。如下图所示。
目前,SMR 提供容量提升高达25% ,在制作工艺和材料上,没有大的变化。磁盘的tracks划分成bands, bands和zones对应起来,磁盘上存在持续缓存,SMR的磁道被要求顺序地写入。如图是SMR磁盘的结构图,最外层磁盘的小区域为持续缓存,用于随机写操作。guard regions将相邻的band隔离开,阻止在一个band上进行数据的写操作时破坏相邻band的数据。
SMR的更新模式为update in-place,通过对SMR产品的测试我们发现,persistent cache的类型是普通磁盘的类型,每个band的大小大约为25M到40M;SMR磁盘的映射方式是静态映射;SMR磁盘的zone采用的是水平的结构。当SMR的容量为5TB时Persistent cache的大小是20GB,当SMR的容量为8TB时Persistent cache的大小是25GB;
这一部分只是写了drive manage的SMR磁盘的内容,想要看更加完整的可以看SMR磁盘学习1和SMR磁盘学习2,这两部分对整个SMR的磁盘研究现状做了一个比较好的概括!淡然主要包括drive manage SMR和host manage SMR部分,host aware部分在其他的SMR学习里面讲了的,但是不多。
参考文献:
[A] Aghayev and P. Desnoyers, “Skylight-a window on shingled disk operation,” in Proceedings of the 13th USENIX Conference on File and Storage Technologies. USENIX, Feb. 2015, pp. 135–149.
[B]Amer, D. D. E. Long, E. L. Miller, J.-F. Paris, and T. Schwarz, “Design issues for a shingled write disk system,” in 26th IEEE Symposium on Mass Storage Systems and Technology, 2010
[C]. Hall, J. H. Marcos, and J. D. Coker, “Data handling algorithms for autonomous shingled magnetic recording hdds,” Magnetics, IEEE
Transactions on, vol. 48, no. 5, pp. 1777–1781, 2012.
[D]Y. Cassuto, M. A. Sanvido, C. Guyot, D. R. Hall, and Z. Z. Bandic, “Indirection systems for shingled-recording disk drives,” in 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST). IEEE, 2010, pp. 1–14.
[E] Amer, D. D. E. Long, E. L. Miller, J.-F. Paris, and T. Schwarz, “Design issues for a shingled write disk system,” in 26th IEEE Symposium on Mass Storage Systems and Technology, 2010.
[F]Ahmed Amer, JoAnne Holliday ,Darrell D.E. Long and Ethan L. Miller, “Data Management and Layout for Shingled Magnetic Recording” ,IEEE Transactions on Magnetics,2011
[J]W. He and D. H. Du, “Novel address mappings for shingled write disks,”in Proceedings of the 6th USENIX conference on Hot Topics in Storage and File Systems. USENIX Association, 2014, pp. 5–5.
[H]Stephanie N. Jones, Ahmed Amer, Ethan L. Miller,Darrell D. E. Long, Rekha Pitchumani, Christina R. Strong “Classifying Data to Reduce Long Term Data Movement in Shingled Write Disks”, in IEEE Symposium on Mass Storage Systems and Technology, 2015
[I]J.-W. Hsieh, T.-W. Kuo, and L.-P. Chang, “Efficient identification of hot data for flash memory storage systems,” in ACM Transactions onStorage, February 2006.