闪存匹配企业IT进化:性能、成本与可靠性的平衡

DOSTOR存储在线 7月30日原创报道: 欢迎来到速度的世界,在这个世界中,对速度的渴求是从未达到的目标与永无止境的旅程,每一个人、每一个企业,都迫切希望提高速度,正所谓“天下武功,唯快不破”,速度是核心的诉求,速度也是真心的希望。

欢迎来到复杂的世界,在这个世界中,我们不断的在讨论CIO所遇到的IT挑战,我们甚至在过去几十年都无法给出一个完美的解决方案,虽然我们仍然离完美与最好有千万公里的距离,但所幸我们总能够找到更好的解决方案,它让企业更加快速应对业务与市场的挑战。

欢迎来到闪存的世界,在这个世界中,我们将看到,闪存如何取代磁盘,成为企业数据中心的主要存储介质;我们也将看到,不仅在手机、平板电脑、笔记本中采用闪存加速体验,并能够兼顾性能、可靠性与经济性,在企业的数据中心内,这一样可以实现。

在这个世界中,闪存正逐渐满足我们的速度的渴望,让企业业务摆脱因磁盘性能瓶颈而无法彻底释放的计算、存储与创新能力;当我们遇到不断变化的业务需求,闪存让我们能够快速获得性能,从而应对挑战;如果企业因存储——成千上万块磁盘所组成的复杂存储系统——而深陷复杂性问题,闪存将毫无疑问的担负起救世主的责任。

我们现在有一大堆的理由去选择闪存:闪存没有机械部件,可以成倍地更快地传送数据;当您不再需要为了性能而使用几个机架的磁盘,您的数据中心也就不需要那么多的空间用于存储了,这样就可以节省更多的空间用于CPU来实际处理您的数据;由于闪存不像磁盘那样转动,它不会产生摩擦,所以闪存产生的热量比磁盘的主轴少了很多——更少的热量意味着更少的散热,也意味着用于能源的预算可以更少。

但读到这里,我不得不劝阻你驿动的心,请克制住你现在就想冲出去购买闪存的冲动:虽然我们只要在移动一些不多的电子,就可以让企业的数据中心获得前所未有的IO速度体验;虽然我们只需要寥寥几十块或近百块——相比传统企业级存储成百上千块磁盘这真的不算什么——就可以让数据中心的速度翻倍甚至翻几倍,但还是请任何有冲动进入闪存世界的人保持冷静。

移动电子听起来很简单,就像是1+1=2那样简单,而市场上又有许许多多品牌的闪存盘和闪存系统,但这并不意味着所有的闪存盘和闪存系统都值得购买——正如这世界上不是所有的云都能够下雨一样。

不同种类、品牌的闪存盘和闪存系统之间,存在着巨大的差异,这些差异——是如此巨大——可能影响整个企业的数据中心在闪存时代的成功与失败。

移动电子很简单 但闪存不简单

在NAND闪存上移动电子,并不是一件简单的事情,其移动电子的量是非常非常巨大的,一个电子就代表一个0或是1,这需要成熟、可靠的闪存控制方法及闪存固件来确保存储在NAND闪存上的数据是可靠的、安全的。

闪存的硬件可靠性一定程度上体现在“移动电子”的可靠性上,就像硬盘驱动器一样,闪存驱动器也会随着时间的推移产生磨损。磁盘可能因为机械问题(如磁头损坏(磁头与旋转盘片接触的部位)或电机故障)产生故障。而闪存由于是移动电子,有时它们会使得一个NAND单元失效。

随着时间的推移失效的NAND单元不断增加,但是通过使用成熟的闪存固件,可对NAND进行管理,使得所有的单元在同一时间磨损失效。这种磨损均衡技术意味着驱动器可以在其整个生命周期内保留更多的空间,而不会造成性能的下降,同时也帮助IT管理人员预测和计划其闪存解决方案的使用寿命——从本质上讲,闪存的失效比磁盘发生故障更加容易预测。

磨损均衡有效的避免了闪存在短时间内出现过多的单元损耗从而影响闪存的容量,虽然闪存的每个单元仍然局限在一个非常有限的写次数内——比如说企业级的SLC(single-level cell单级单元)每个单元在失效前能支持大约100,000次写操作——但整体来说有效的延长了闪存的寿命。

更长的寿命意味着更低的成本,在整个存储系统中,单个闪存盘的更换并不会出现什么问题,但由于使用闪存和传统15k或10k转速的磁盘得到相同IOPS的前提下,闪存所使用的盘片数量更少,这代表每更换一个闪存盘系统中盘片的更新比率会更高——如果我们假设SSD和传统磁盘的可靠性和使用周期(事实上,这两者在寿命上已经基本持平了,都在3-4年左右),就会发现一个简单的数学问题:

以同样的6G SSD和HDD作为对比,6G SSD大概提供20000的IOPS,而6G HDD提供300的IOPS,在同样得到100万IOPS的存储系统中(比如华为的Dorado 5100固态存储系统)中,SSD需要50块,而HDD需要大约3000块,如果在两者寿命持平的条件下,显然一块SSD更换的代价占整个存储系统的比例要高出数十倍。

与此同时,可靠性的问题还有另外一面:数据的正确性。在NAND闪存上,因为闪存(Page或Sector)可能存在的损坏,我们需要谨慎的对待数据读取或写入时的损坏、遗漏或是错误问题,这意味着我们必须要关注闪存盘可靠性的另外一面:数据的可靠性。

数据的可靠性需要通过闪存盘固件内的算法进行校准。业内流行的方式,包括通过奇偶校验检查和LBA标签检查、循环冗余检查(CRC)等方式来校验数据,而业内不多的厂商(如华为和英特尔)还通过高级加密标准(AES)来确保数据的可靠性——这是一种很有意思的确保数据正确的方式:通过对数据进行AES加密,来校验两次加密或加密前后数据,从而确保了数据的准确性。

总的来说,闪存的磨损均衡、寿命周期、维护更新成本还是数据的可靠性等等这些有关闪存的话题,都代表着闪存不是简单的可以通过性能和容量考量的产品。但技术能否得到充分的利用与不同厂商之间的技术的差别,却难以为企业用户所了解,尤其是当很多闪存相关技术的验证都通过一些我们不常见的技术名字、指标来呈现时,我们需要的是能够简单检验闪存盘可靠性、性能与成本的指标。

事实上,在业界对于闪存盘的“质量”有一个比较通行的考量方法:一年退回率(ARR)和年故障率(AFR),通过使用行业标准方法来计算这两点,就能够预估出闪存盘在实际工作环境中的使用总时长,而这一数字的高低将直接影响批量采购闪存后的成本和使用体验。

对于行业内的许多供应商来说,ARR和AFR是十分残酷的参照指标,ARR意味着同一批闪存盘内在一年中有多少闪存因故障和容量削减较快而被退回供应商;AFR则代表一块闪存盘在一年内发生故障的概率。

普遍来说,较好的闪存供应商的ARR数据应当不超过1%(像华为ARR基本上已经可以做到不超过0.3%),而AFR一般在0.5%-0.7%左右——2007年市场上平均传统磁盘的AFR数字是4.85%——这意味着,如果你购买的是像华为、英特尔等公司提供的闪存盘,其故障率和退回率将显著低于原来的SAS或SATA磁盘,无论从经济效益还是运维复杂度上,这显然是非常明显的改善。

不过,有关闪存盘整体水平的考量还有很多标准,比如说是否支持压缩(能够有效提高寿命和性能)、重复数据删除或是更好的磨损均衡技术,但总体来说,寿命、性能、成本、数据可靠性、ARR与AFR数字,是其中非常重要的参照指标,而这些指标数字的提升,绝不仅仅是“NAND闪存+主流控制器”能够解决的。

华为的工程师曾经向我们透露,在华为的闪存盘研发过程中,除了以三星、美光等闪存颗粒厂商保持良好的合作关系之外,在自研SSD和SSD控制器的历程中,华为除了早期使用Marvell的控制器之外,到现在已经历经了三代SSD和自研ASIC,而正是得益于在SSD领域的技术拓展,“华为才可以做到针对SSD的全局资源管理以及深度融合机制。”

这也就将话题引申到一个更大的领域:我们不可能只是将闪存盘插入传统的存储系统,而是要建立一个针对闪存而优化的存储系统,换句话说,“不是所有闪存系统都是合格品”。

闪存系统:不是所有闪存系统都是“合格品”

前不久在某业内厂商的大会上,该公司的存储产品线高层曾说了这样一句话:“相比那些初创厂商,我们的闪存系统更灵活、易于扩展和适用于企业应用。”虽然这句话带有着明显的进攻和宣传味道,但他所说的并不是完全毫无根据的。

我们可以通过高端存储系统和中端存储系统的区别来先为这个问题的发展做个预热:从2010年开始,此后主流存储供应商发布的存储系统在容量上的差别越来越小,往往中端存储系统的最高配置的盘片数量和IOPS性能,与高端存储系统的中、低端配置几乎相同,但它们仍然被分在中端和高端两个不同的产品系列中呢?

这就要回答一个问题:高端存储系统和中端存储系统的区别是什么——在企业级存储系统中,高端存储和中端存储的区别在早期确实主要是来自于容量和性能,因为存储系统的设计涉及到成百上千块磁盘,确实具有一定的设计难度,但随着ccNUMA等架构的不断成熟,高端和中端存储的区别已经不再由性能和容量为主要区别(尤其是在两个产品系列交界的地方),最主要的划分方式是可靠性和提供的面向企业级应用的能力。

比如说在高端存储系统上,对OLTP、OLAP的支持能力更强;在可靠性方面高端存储往往提供6个“9”的可用性,而中端存储往往是4或5个“9”;在安全访问、审核和数据加密方面,高端存储往往支持全局安全特性,而中端存储则略有差别;在支持主机、大型机以及在线升级方面,高端存储的水平也会更高。

在闪存系统上也是同样的问题:并不是全部插入闪存盘的存储阵列就是闪存系统,这其中又包括两方面的考量标准。

首先,闪存系统必须要针对闪存的特性设计,而不是在基于传统磁盘的阵列设计上更新闪存盘。众所周知,传统阵列是围绕着缓存(Cache)展开的,由于传统磁盘的速度并不够快,通过Cache技术,传统阵列能够提供读命中,以降低读时延;能够提供回写,以降低写时延,虽然这会导致较高的CPU占用率和内存占用率,但为了得到更好的性能,我们不得不这样设计。因此,我们不能也无需在闪存系统上设计复杂的Cache,尽量应释放CPU来处理更多的IO。

同样重要的是,由于SSD和传统磁盘的延迟性能指标差距巨大,如果我们直接将SSD插入传统阵列,只能发挥SSD的一小部分性能,需要尽量缩短阵列内部IO路径上各个模块的时延来充分发挥SSD的性能。

在系统设计——数据链路的设计、盘片连接、Cache设计——上,传统阵列并不应该也不能够通过直接插入SSD来获得“闪存系统”,一来这无法利用闪存的全部优势;二来在成本上将是十分低效的。

其次,是闪存系统的核心功能与技术问题,SSD的内部维护了一张映射表,记录了LBA到闪存页面的映射关系,每一个写IO,都会导致该映射表被更新,LBA被重新映射到新的闪存页面。可以说,SSD天生就是ROW(Redirect On Write,写时重定向)。

对于基于SSD构建起来的闪存系统,ROW已经深深嵌入了其灵魂深处。如果先将底层的SSD打散以实现块级虚拟化,并在此基础上实现基于查表而不是基于计算的LUN映射,那么将会给闪存系统带来无尽的好处:

1、 可以支持Thin Provisioning,部分克服SSD较贵所带来的初始投资过高的问题。

2、 可以支持ROW的快照,实现快照不影响源LUN的性能,而且快照和克隆完全归一。

3、 可以支持全局磨损均衡,以减少单块SSD失效对阵列带来的影响。

4、 可以支持在线重删,尽量减少对闪存的擦写,以使用延长寿命,同时还可以引入价格低廉的消费级SSD来支撑企业级应用。

其中,支持Thin Provisioning(自动精简配置)和De-Dupe(在线重删)对于闪存系统来说意义重大。

虽然闪存在容量价格比上正在朝着15k转速SAS逼近,但客观来说,这两者之间还是存在着一定的差距。闪存盘的单盘容量和单盘价格目前来说还不适合大规模、全数据中心的部署,如果具有Thin Provisioning(自动精简配置)技术,就能够以少量的闪存盘支撑更多的用户和应用需求,并随着闪存盘价格的下滑与单盘容量的上升,陆续以更低的成本购买并扩充闪存盘的规模。

De-Dupe(在线重删)则是有效降低闪存系统读写摩擦损耗,提升闪存系统容量的关键技术,正如上文所说,通过重复数据删除技术,将重复的数据进行删除,显然将降低对闪存的读取和写入工作量,也正是在这项指标上,许多现在市场上主要的“闪存系统”难以称得上名副其实,它们中的绝大部分都不支持在线重删技术。

闪存融入数据中心:考量供应商的端到端能力

回顾上文对闪存盘的取舍与前一部分对闪存系统的评价标准不难看出,“将在SSD系统领域的成功的系统和工程设计经验与面向主存储应用的技术相融合”,构建端到端的——从真正企业级的闪存盘到企业级的闪存阵列技术支撑——的闪存系统系统,是实现企业在应用闪存技术时获得性能、成本、寿命全面均衡水准的关键因素。

我们可以举个简单的例子,来说明端到端——从闪存盘到阵列——的管控对闪存系统有多么重要:在单个闪存盘上进行磨损均衡,其所起到的作用仅限于单个盘的写入均衡,对于包含了几十甚至上百块闪存盘的存储系统来说,其盘片之间无法形成磨损均衡的平衡,而如果能够实现全局磨损均衡与全局坏块管理,闪存盘磨损均衡的分布水平将更加广泛,其寿命也能够变得更长——这一切的基础,是闪存系统的供应商能够对闪存与阵列同时拥有管控与协调的能力,如果没有对单块盘磨损均衡的对接与控制,又如何做到整个闪存系统的全局磨损均衡呢?

因此,闪存系统的设计要点实际上并不仅仅在于面向闪存设计存储系统,更重要的一点“附加值”是能够完全掌握与熟悉闪存盘的特性,并实现端到端的、闪存盘技术特性与闪存阵列技术特性相互融会贯通的闪存系统。

“首先,围绕着闪存特点来设计,充分发挥闪存高IOPS、低时延的优势、规避闪存擦写次数有限的劣势,让SSD与系统真正融合;同时,聚焦主存储系统的应用特点,构筑在闪存基础上的丰富的软件功能(如Scale-out、数据保护、应用集成等)以满足数据中心的不同需求。通过“融合”的设计,为客户提供容量、性能的线性扩展,同时依靠稳定的低时延能够支撑不同业务(OLTP、OLAP、Email、Sharepoint等)的集中部署,极大简化数据中心的基础架构。”正如前不久在华为存储媒体沟通会上,华为方面的专家所说:“闪存系统的设计,并不简单。”

洋洋洒洒五千余字,我们讨论了闪存时代两个基础的问题:如何去选择闪存盘与闪存系统,但在这两点之外,还有一个核心问题亟待我们去探寻答案:闪存进入数据中心的路线图是什么?

在此前的文章《数据中心存储奔向何方?》中我们已经谈到,闪存是优化数据中心成本效益,改变数据中心应用体验的重要技术,但任何的技术进入数据中心、进入企业的IT基础架构,都需要一张路线图——这会是一个逐步的、平滑的、自然演进的和人为推进结合的过程,而不是生硬的变革或是彻底的颠覆。

在下面一篇文章中,我们将回答这个问题:“为应对数据中心与企业IT基础架构的进化与优化需求,CIO们需要什么样的闪存产品,以及闪存产品、闪存系统以什么样的路线图演进方式,进入到企业的IT基础架构中去?”而同样在这篇文章中,我们将从供应商与客户的两个角度来回答这个问题。