26

为什么市场少见支持SMR硬盘的企业存储?请听我说

 5 years ago
source link: http://www.10tiao.com/html/611/201807/2652391146/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前言

我原来一直不知道,支持SMR竟然不比支持SSD简单,甚至可以说更复杂,因此市场上少有支持SMR的企业存储。不信的话,请听我一一一道来。


SMR盘诞生记

为了突破存储介质的容量极限,SMR技术开始崭露头角,所谓SMR,是叠瓦式磁记录的简称,英文为Shingled Magnetic Recording,以其大容量、低功耗的特点,已经被AWS Glacier、Google、Facebook等多家公有云厂商用作对象冷存储的存储介质,但由于企业存储中冷热数据混杂,数据访问方式和性能要求均高于公有云冷存储,企业存储中还很少见到SMR盘的身影。


SMR盘的技术背景

大数据时代的数据量呈指数级增长,IDC预测2025年全球数据总量会达到163ZB, 存储容量将超过19ZB,其中约58%的容量由HDD硬盘来承载。硬盘驱动器的存储面密度(每单位面积存储的位数)受到物理定律的限制,目前硬盘使用的垂直磁记录(Perpendicular Magnetic Recording,PMR)技术即将达到其存储密度极限。业界迫切希望引入新的技术来克服限制,继续稳步提升容量。


叠瓦式磁记录盘(Shingled Magnetic Recording,以下简称SMR盘)是领先的下一代磁盘技术,它保持现有磁头和介质技术不变,通过将磁道像屋顶上的瓦片那样重叠在一起来实现其存储面密度的增长。


传统硬盘盘片被划分为同心圆状的磁道,磁道与磁道之间具有一定间隔,磁头位于盘片记录介质的上方,写磁头和读磁头相互独立。由于写入所需要的磁场强度高于读取所需要的磁场强度,写磁头的宽度是大于读磁头的宽度的,写磁头的宽度也决定了每英寸磁盘能容纳的磁道数量。

传统硬盘与SMR盘磁记录方式的对比示意图


SMR盘正是利用了读写磁头之间的宽度差,将相邻的磁道像瓦片一样重叠在一起,数据的写入是通过部分重叠前一条磁道写入的,同时留出了足够的空间给较窄的读磁头读取前一条磁道的数据。和传统磁盘相比,SMR盘通过叠瓦式写入在相同的面积内容纳了更多的磁道,从而提高了存储面密度,进而降低了磁盘单位存储容量的成本。但也正因为这种特点,SMR盘只能进行大块的顺序写入,无法支持随机写和更新写,需要上层的文件系统提供全新的数据管理解决方案。


SMR盘的分类

SMR盘对写入的顺序性约束可在硬件侧由硬盘本身来管理,也可以在主机侧由软件来管理,前者被称为DM SMR(Drive Managed SMR disk,驱动器自管理的SMR盘),后者将SMR内部的组织结构通过新增接口向上层软件暴露,根据是否允许随机写又可以细分为两类:如果SMR盘只允许上层进行顺序追加写,不允许随机写,那么称为HM SMR(Host Managed SMR, 主机管理的SMR盘);如果SMR盘并不严格限制随机写操作,那么称为HA SMR(Host Aware SMR,主机感知的SMR盘)。


SMR盘类型


表中总结了三种SMR盘的特点:

 DM SMR使用上最简单,现有的软件无需任何改造即可使用,但随机写工作负载下,势必存在数据迁移、垃圾回收等背景操作,从而导致SMR盘的性能波动巨大;

 HM SMR需要存储系统软件(如分布式文件系统)进行大量的优化,但这种方式能最大化发挥SMR盘的性能;

 HA SMR是个折衷的方案,使用上最灵活,但同样存在性能波动的可能。


企业应用不同于互联网应用,尤其是视频监控这类业务,要求存储系统必须提供持续稳定的、可以预期的性能。


SMR盘在企业存储中应用的挑战

公有云对象冷存储中,几乎不涉及修改写,且数据取回时间相对较长。例如AWS Glacier标准取回通常在3-5 小时内完成。但在企业应用场景,数据读写仍以文件为主要方式,可能存在较多的修改写,读写的响应通常在ms级,以视频监控等场景为例,如果写请求的平均时延大于40ms,就会导致写入的视频数据丢帧。


由于SMR盘单盘容量巨大,目前SMR盘单盘容量已经达到14TB,预计2018年下半年硬盘厂商还会发布18TB SMR盘,其容量是企业市场主流使用的8TB SATA/NL_SAS盘的2倍左右。超大容量硬盘,一旦出现故障。其数据重构时间将非常漫长,按照传统企业存储每TB数据重构时间10小时左右计算,14TB SMR硬盘重构需要140小时时间(近一周时间),在此期间如果发生其他硬盘故障,则会导致数据丢失。这对企业应用来说绝对不可接受!


这些都给SMR盘在企业存储中的应用带来了额外的挑战,需要存储系统既能够适配SMR盘的要求,又不改变用户的使用习惯和性能要求,还能提供很高的可靠性。基于这些要求,要用好SMR盘不能简单地将它当做传统硬盘的替代品,而是要针对性地对整个存储栈进行适配优化,从上层应用软件到底层驱动,均需要适配SMR盘提供的新接口,确保IO的顺序写入,防止竞争条件和IO乱序,从而获得更高的性能和可靠性。


从上面我们可以了解到,SMR磁盘是一种新的HDD介质,需要上层应用系统做复杂的适配,就像你适配SSD一样。普通存储不能简单把原来的PMR硬盘换成SMR硬盘,这样性能会很差,甚至无法工作。


日前,华为的OceanStor 9000率先在业界支持14TB SMR硬盘,我们来看看其是如何支持的。

华为OceanStor 9000选择了技术难度最高的HM(Host Managed) SMR硬盘以便于企业应用提供稳定的性能表现。


OceanStor 9000通过多种技术对SMR盘提供了强大的支持,一一化解了支持SMR盘的技术障碍。在适配SMR盘新接口的基础上,OceanStor 9000通过RoW写时重定向技术将修改写转化为顺序写,通过高效GC、数据冷热分流、SMR盘写缓存优化技术保障了SMR盘的读写性能,通过快速恢复重构技术解决了大容量SMR盘故障期间的数据可靠性问题。

下面我们就来分别介绍一下OceanStor 9000支持SMR盘所采用的各项IO优化技术:


RoW写时重定向技术

▲RoW技术示意图

RoW(Redirect-on-Write,写时重定向)技术,是指当发生数据修改写时,分配一块新的空间,往其中写入内容,然后将指向该数据的指针重定向到新开辟的空间,并不修改原来的数据块。如上图所示,当文件系统的数据块B和C被修改时,文件系统直接分配两块新的空间(图中的B’和C’),往其中写入修改后的内容,然后将指向该数据的指针重定向到这两块新开辟的空间,并不修改块B和C的数据。

相比原地修改写的传统文件系统(例如ext2/3/4),采用RoW技术的文件系统仅需较小的改动,就可以适配SMR盘的顺序追加写IO模型。OceanStor 9000的文件系统本身就是基于RoW技术设计的,又对SMR盘空间的分配算法作了进一步优化,完美适配了SMR盘的顺序写模型。

高效GC技术

▲SMR盘垃圾回收(GC)原理示意图

SMR盘上由连续磁道所构成的可连续写入区域称为Zone, SMR盘是按Zone管理数据的,一个Zone的大小通常在256 MB量级。由于SMR盘的zone必须在清空后才能重新写入,垃圾回收(garbage collection,以下简称GC)是SMR盘上的文件系统必不可缺的一项后台工作。垃圾回收的过程从根本上是有效数据复制迁移的过程,其效率的高低对整个系统的性能影响极大。如图 3所示,为了释放Zone X中无效数据占用的空间,需要将Zone X中的有效数据搬迁到空闲的Zone Y中形成连续空间,再清空Zone X中的数据。

OceanStor 9000通过优化文件布局,设计了一套高效GC算法,合理选择GC对象的大小、位置、目的地距离,以及GC进行的时机、频度与并发数量,从而最大化GC收益,有效管控GC开销,大大提升了GC的效率。同时,在达成预定性能规格的前提下,OceanStor 9000的GC预留空间仅仅占用了SMR盘容量的1%,有效提升了SMR盘的空间利用率。

数据冷热分流技术

SMR盘上的数据在整个生命周期中,可能经历多次GC带来的数据迁移,这种现象被称为“写放大”(Write Amplification)。写放大产生的重要原因之一就是,具有不同生命周期(冷热程度)的数据被混杂的存放到同一个回收单元内,造成一部分数据有效、另一部分无效的情形,进而导致有效的数据需要迁移到其他的Zone中。因此实现数据冷热分流,最大程度降低数据的写放大系数、提升GC效率,就成为SMR盘优化的一个关键能力。

OceanStor 9000首先做到了将文件系统的元数据与文件数据本身分开存储。传统的日志结构式文件系统中元数据和文件数据是混存的,频繁更新的元数据和相对不变的文件数据混存严重影响了文件系统的性能,也一定程度上增加了写放大系数。OceanStor 9000利用SMR盘上预留的一小块支持随机写入的传统区(Conventional Zone,通常不超过1%)保留元数据,有效提升了SMR盘上元数据操作的性能。

其次,OceanStor 9000针对文件数据也能够进行冷热分流,分开存储。不同类型的文件数据可能存在不同的生命周期,用户可基于文件类型、目录等条件进行设定,OceanStor 9000能够根据上层设定的信息,将相同生命周期的数据尽量存储在同一个zone内。不同类型的文件修改的频繁程度也存在差异,OceanStor 9000能够智能识别出频繁修改的部分文件,在GC时将此类文件和很少修改的文件放到不同的Zone中,进一步降低数据的写放大系数。

通过综合应用上述数据冷热分流技术及相应的数据放置策略,OceanStor 9000将写放大系数降低了50%以上,很好地控制了SMR盘上GC引起的写放大效应。

快速恢复重构技术

SMR盘的容量比传统磁盘大数倍,当系统发生故障时,如何快速地在SMR盘上进行数据恢复重构是一个非常有挑战性的问题。

▲单盘故障的数据快速恢复

OceanStor 9000本身能够支持分布式EC(Erasure Code,纠删码)的数据保护方式,数据打散分片到不同的存储节点和不同的硬盘中。如上图所示,节点3上的硬盘2故障时,该盘中的数据,可通过其他节点的数据进行冗余计算,并行恢复到多块不同的硬盘中,相比传统的RAID方式,数据恢复速度可提升10倍以上。

SMR盘写缓存优化技术

SMR盘通常具有256 MB以上的大容量写缓存,开启写缓存对文件系统的性能提升具有非常大的作用,但硬盘掉电情况下,写缓存中未刷盘的数据存在丢失的风险。OceanStor 9000充分利用SMR盘的写缓存机制来提升系统性能,通过分布式EC方式保障缓存数据丢失后的数据快速重构,通过数据事务机制来保证整系统数据的一致性,并对SMR盘新增的多种与写缓存相关的错误进行了妥善处理,从而获得了性能和可靠性兼得的成果。

SMR盘应用分析

OceanStor 9000主要将SMR盘应用于视频监控、归档、备份等场景,这些场景通常具有数据量大、大文件顺序写入为主、一次写入多次读取的特点。基于14TB SMR硬盘的OceanStor 9000方案相对于使用的8TB硬盘的业界通常方案相比,机房空间可节省40%,能耗降低40%以上。

以卡塔尔哈马德机场视频监控项目为例,存储系统需要满足13000路2Mbps码率的视频30保存天,可用容量需求约9.36PB(预留10%额外空间)。如采用8TB盘硬盘方案,需使用45个4U 36盘位存储节点(考虑冗余,实际配置容量12.9PB),按每节点功耗500W估算,总功耗为22.5KW;华为OceanStor 9000同样使用4U 36盘位的存储节点,但配置了14TB的大容量SMR盘,仅需要26个存储节点,因14TB SMR硬盘功耗与传统8TB、10TB硬盘几乎一致,所以单节点功耗仍为500w左右,总功耗约13KW。整体上,14TB SMR硬盘方案设备数量,机房空间减少44%,功耗降低42%。

▲基于哈马德机场需求预测的不同存储方案TCO对比

总结

OceanStor 9000在适配SMR盘新接口的基础上,通过Row写时重定向、高效GC、数据冷热分流、快速恢复重构、SMR盘写缓存优化等一系列技术解决了大容量SMR盘在企业存储中应用的难题,帮助企业从容应对数据洪流挑战,进行数字转型。

通过技术创新和存储全栈优化,华为存储致力于为用户提供更快、更好、更省的产品和解决方案,与客户一起实现商业成功。

评语:

我们可以看到,SMR的支持还是非常复杂的,特别有点像闪存的优化,也需要垃圾回收,需要重定向写,需要冷热数据分开存储提高GC效率等等。这也是市场上企业存储采用SMR不多的原因。但是,SMR的低功耗和大容量的优点,必将使得支持SMR的存储获得TCO上的整体优势,会慢慢被用户认知,成为市场的主流。



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK