12月11日,DOIT在北京朝阳悠唐皇冠假日酒店举行“数据造化 智见未来 ”为主题的2013中国存储峰会。此次峰会得到了中国软件行业协会、中国计算机学会存储技术专业委员会、武汉国家光电实验室和国防科技大学计算机学院的大力支持。此次峰会里,共有10位第三方专家和23位业界领袖/专家出席峰会,并发表了25场极具前瞻性的主题演讲,给大家带来了丰盛的存储盛宴,再次引领中国存储产业发展的深度思考。
下午的“闪存行业分论坛” 中,DOIT邀请关注闪存行业的厂商代表、技术专家、分析师等共同探讨 闪存行业的现状和未来发展。其中,来自铁道出版社信息中心主任刘波,带来《固态硬盘测试情况与应用策略》的主题演讲。
铁道出版社信息中心主任 刘波
在演讲里,刘波表示,无论是读操作还是写操作,对于连续传输传输率与随机存取传输率的性能差异,PCIe固态盘都比RAID5光纤盘的性能落差都有所收窄,并且这种性能落差的收窄幅度是与数据块大小成负相关。即数据块越小,相对于RAID5光纤盘而言,PCIe固态盘的性能提升越明显。对于4K数据块读操作,性能提升最高达到27倍。
以下是刘波精彩演讲的内容:
众所周知,数据库往往是许多计算机应用系统的重要支撑,对于交易采购、ERP等结构化数据类型应用讲,数据库的访问性能往往构成了整个系统中较难解决的性能瓶颈。数据库性能的提高将会显著提高整个系统的处理能力。提高数据库的访问性能一般是从硬件与软件2个方向进行,硬件方面侧重于尽量提供足够高的传输率,包括连续传输率和随机传输率,软件方面则侧重于尽量充分利用给定的传输率。基于温彻斯特磁盘的阵列式硬件解决方案存在着结构复杂、性能提升缓慢、运营开销大,以及成本高昂的不足。随着数据存储技术的不断发展,2010年代以后以flash芯片为存储介质的固态硬盘数据存储技术应用逐渐由消费领域深入到企业级应用。
中国铁道出版社的生产系统是全社、图书、音像及电子出版物从编辑策划、加工生产、仓储物流到营销策划的平台。随着业务的扩展,目前产生了存储扩展的需。主要需要是在保护现有投资的基础上进行容量扩充和性能扩展两方面。在对性能扩展方面的考察中,从2010年起产生了使用flash技术提升存储性能的想法。进行了技术跟踪。并在当时条件下在PC平台做了一些实验。今年上半年了解到国内出了一种PCle接口的固态硬盘卡,因此就使用该产品进行了测试。
近期我单位在既有设备上进行了增加PCIe接口固态硬盘提升存储性能的测试试用,探讨了使用PCIe接口固态硬盘作为存储介质,提高SQL Server数据库性能的途径。
今年上半年我们了解到国内出现了PCIe接口的硬盘,就是国产的,我们对产品进行了测试。这是测试目的,扩容,提升性能和保护投资。第一项和第三项是测试的内容,连续读写传输率,随机传写传输率和不同格式化单元的传输率。第二对数据库单元的监测。包括IO,CPU占用率和备份还原。为排除操作系统缓存干扰,我们关闭了操作系统写缓存。
这是测试环境,主要是戴尔R900的服务器。今年上半年用的对比测试用的是Q520固态硬盘,这是测试环境。这是测试的情况连续读写传输率,左边是光纤硬盘的,右边是固态硬盘的。左边是读,直白是205,PCLE是1147。写的PCLE和RAID5是647和224。读和写的比率,固态硬盘比光纤盘速率提升,读可以到5倍多,写是2-3倍。PCLE的固态硬盘比RAID5的连续率提升。
这是随机读写传输率的比较。这是4K的测试。光纤盘和固态盘的比较情况。固态盘比光纤盘的随机存取传输率有大幅提升。我们也做了读写差异性比较。硬盘读和写有一个落差,这方面也做了一个比较。把连续传输率和随机传输率做一个比较,比率分别是这样的,一个是3.7比1.2,这个是2.3比1.0,跟4K比较起来差距就更大了,一个是216:44,一个是17.6:7.8。512K和512K的比较也有差距,512的是57.8:37.1和7.6:7.7。
这是印象,无论对读操作还是对写操作,对于连续传输率与随机船去传输率的性能差异,固态硬盘和光纤盘的性能落差都有收窄,而且跟数据块大小成负相关,数据块越小,对固态提升越明显。我们关注两个指标,一个是连续的,一个是随机的。这两个指标落差比较大,我们做完这个比较以后,总体有一个印象。随着存储介质发生改变了,性能总体有了提升,提升幅度比较大。
这是我们在实际运行当中监测的情况,因为有一些相同情况就不介绍了,这是不同的,左边是我们做相同操作的时候情况。左边是光纤盘的,这两边都是锯齿形状的,不同的地方,这个锯齿的齿差异是比较大的。左边光纤盘来讲,读写率最高平均是2M的比较,我们可以把它理解成随机的操作,峰值可以到2M,右边这块峰值到了60M,锯齿长了,说明它的传输率提高了,在运行过程中是比较明显的。我们使用机械盘的时候,没有看到这么大幅度的锯齿的幅度。这是CPU占用率的比较。左边光纤盘CPU是6%,右边是7%,差异不是特别大,这是我们的印象。在不同格式化单元里面,我们也做了测试。不同格式化单元条件下,这两种盘表现的性能基本上是接近的,差不了太多。
这是备份还原的,它主要表现连续传输率的情况。我的备份还原都是在同样的硬盘下操作的,分两个区,一个盘放数据库,一个盘放文件。这个比率和连续传输率比较接近,基本上5倍,6倍之间的。我们考察性能的时候,关注带宽就行了。作为固态硬盘来说比较均衡,我们主要考察带宽就行,对带宽的利用率和使用性能就可以评测固态硬盘本身的性能怎么样?我们可以做出一个评价。这是我们在测试欢迎中的印象。
这就是一个结论了。第一在连续传输率和随机传输率两个指标,固态硬盘比光纤盘有大幅度的提高,各项指标性能更加的均衡,加装固态硬盘能提升既有存储的性能。第二相对传统机械硬盘小块的随机传输率提升特别明显,小块传输率的提升,能大幅提高传输系统IOPS,而IOPS是任何数据库重要指标之一。对于传统硬盘来讲,这个指标的提高,是线性的,如果大幅度提升的话,代价也比较大。对于我们现有既有的存储来讲,最大容量是120块,我们可以把120块硬盘并行做,最后达到性可能跟现有的还是有差距的。除了本身的盘的并行以外还有通道的问题。
我们测试的时候,我们用的是既有的光纤存储的性能,通道是4G的带宽。有人说,这个指标测试完了以后有疑问,你们本身测试的标准就不一样。谁好谁坏,不同起跑线,实际上我们想的目的,并不是比较谁的性能好,谁的性能坏,实际上我们测试的目的,你要判断一下作为固态硬盘,性能提升幅度到底有多大。能不能在既有的保护的投资基础上增加提高系统的性能。第三是这样的,第四吞吐量的提升缩短数据库备份还原的时间,提高系统的在线服务能力。
这是我们需要待验证的。第一写数据的预测性。我们写一个数据,一定会100%的写到里面去,而且100%的正确写到里面去。对于传统也盘来说,这是没有问题的,对于介质发生变化以后,是不是这条规律还存在?一般我们想从小单元来说一般是这样的,是可能存在的。毕竟属于一个微观的东西,不是靠磁的方式来做的,是靠电阻状态来做的,它的可靠性到底有多高,我们不能控制。
这种问题存在于flash硬盘来讲,对于传统硬盘来讲,也经过这样验证的过程。传统硬盘已经用了几十年的时间了,在几十年的验证过程当中,实际上也有这样的验证的过程存在的。到现在我们大家相信,只要介质不发生变化或者损坏,一般来说,比例是比较高的,这个有需要验证一下。从操作系统层级,我们写入数据以后,我读出来,是不是这个数?得需要验证一下。现在进入了21世纪以后,现在大家已经把这个过程淡忘了。一般大家认为写进去的都没有太大的问题,这需要时间验证一下。
第二数据的可修复性。我们从在线应用的角度来讲,作为传统盘来讲,这块盘快了,我们可以通过read方式修复。第二如果盘坏了,我们通过手段把盘片读出来了。固态盘出了问题,我们怎么修复它?固态盘存储密度相对于其他的盘密度大,对于它来讲,它修复的代价和修复的时间,这是我们需要考虑的问题。所谓的连续性要求比较高的情况下,这是需要考虑的问题。但是并不能说,一定会怎么样。因为目前我们从资料上看,还没有人能修复物理损坏。
第三应用连续性。第四寿命。寿命怎么样考虑呢?也是一个问题。现在的寿命有两种算法,两种评判的指标,第一可以用度写次数判定,比如说Q5H这块硬盘来讲,这块卡最终的寿命是多少次?你可以通过监测你使用的次数推算出它的寿命。我们有这样的数据。我监测了22天的数据,这22天一共读写了11T的数据,读、写、格式化的方式做测试,有22天读写产生11T的数据,相对于读写数据来讲,读、写两项加起来大概是2×10的9次方次,相对于它的寿命来讲,给了一个比例。我们11个T的使用寿命?相当于它的寿命的0.1%,大家可以算我这块可以使用多长时间。现在在市面上也有另外一种方式,我可以算出它的可靠性时间,就像硬盘一样,盘的可靠性有多少,PCIE卡,我的可靠性是多少。时间还是由次数决定,归根结底还是由次数定的。我们并不否认硬盘本身怎么样,我觉得这方面需要验证一下,条件具备的时候,我们要做这方面的测试。
前面讲的是我们测试和实用的情况。下面我们测试和实用以后,我们有一个应用策略的考虑,到底怎么搭配,怎么测试,怎么用?这个就涉及到了我们对存储定位的问题,它是干什么用的。因为存储来讲,还是属于IO的范畴,目前我们感知到的,能够得到的应用场景是两个,第一个协助运算,第二保存信息。对这两个应用场景的要求是不一样的。对协助运算来讲,主要强调跟CPU的匹配性是怎么样的?这是我们要考虑的重点的问题,容量都是我们共同考虑的问题之一了。第一要侧重匹配性。对于保存信息来讲,我们侧重于保存的可靠性、持久性,这是我们重点考察的问题,包括存储成本的问题。
从选择系统的维度来讲就是5个,第一是速度,第二是容量,第三可靠性,第四能耗,第五经济性,就是成本。从5个维度来说,在现有的条件下,我们有5种选择,基本上就是这5种选择。第一CPU缓存,第二内存,第三固态硬盘,第四机械硬盘,第五磁带机。以前只有四个数据,出现固态盘之后,我们认为可以作为内存和机械盘中间新增了一个层级就是5个层级了。从内到外,从速度快与慢,从距离CPU的远近来讲,从近到远的层次化的结构,这是层级的关系。
从选择系统的速度,我们考虑存储的时候,考虑的就是三个五,一个是应用维度,一个是应用层级,一个是应用的选择,基本上就是三个五。在选择的时候大家可以参照这个表可以做一个平衡。上面列基本上是维度,左边是我们考虑的速度的问题。CPU缓存基本上是纳秒级别的,容量是多少KB到M,可能性定义为永久,现在还没有听到说哪个是因为CPU出现毛病的,单节点能耗是80W,也是一个估算值,这是我们从CPU的标的功耗取下来的,基本上是几十W的水平。经济性是我们折算出来的。CPU缓存是集成的,价钱也不会单标,不会说话2万单买一个缓存,我把这个作为代用的,不是特别的准确。缓存分三级,CPU增加了,换这么多代,缓存增加级别上,第三级缓存有了不同级别的缓存是不一样的,但是对于二级缓存或者一级缓存来讲,实际上都是在KB级别的。目前现在的CPU缓存,不管是哪个档次的CPU,我看到的都是256K,这里面也是有一些问题的。综合考虑容量基本上就是KB-M的层级。从速度来说基本上差10倍,从十几ns到几十ns。容量范围基本上是GB,PC是8GB对服务器来讲64,128或者256的,再大的就不是我们讨论的范畴了。
可靠性比CPU可靠性小一点,我们认为是半永久,单节点能耗2GB,加一条内存就是增加4W左右的水平,一条多少大家也都知道了。
对固态盘和机械盘来讲,为什么我说它是在内存和机械盘之间一个比较合适的层级呢?无论从存储时间,容量,可靠性,能耗,都是比较合适的。它比内存慢10倍,比机械硬盘也差10倍多一些,因为这是一个单的情况,总体来讲,从内存到硬盘差距就比较大了,有一个固态硬盘会更协调一些,容量比较大,多少的都有,刚才我看有一些产品是3T的,能耗也是比较小的,从5-26W,经济性也是很经济性的。
后来加N是什么意思?N指的是控制器的价格。对于固态硬盘来说没有控制器直接插卡的,这里面N就是0的,如果对其他接口的固态硬盘来讲,如果使用外接存储还需要有外接存储的设备,还会有这个的成本开销,所以后面要加一个N。下面的机械硬盘速度是这样的。刚才要提的,可靠性大家比较公认的就是一块盘3-5万小时,单节点能耗是5-16W+N。如果我们还是用机械硬盘的方式来做,它的成本开销会比较大。现在提的比较少了,我们觉得在某些情况要关注到,你的容量到了这个层级的时候,你应该考虑作为一个选项,磁带机作为归档系统来说,作为大数据来讲,还是有一些意义的,这是我希望提醒大家的,不要忘记磁带机。
应用领域,CPU缓存,内存也可以参与运算,更准确的说,它可以协调运算。我们根据不同的应用角度和应用的层级和用途来讲,我们做了一个对号入座。前面讲的我们是对存储系统架构的问题,后面就是对固态盘选择的问题,在接口上怎么选。这里面考虑选用固态盘接口考虑的因素。SATA、SAS,FC,PCLE接口的。SATA是150,SAS一开始就是600,PCLE就是三个层级,FC是这样的。内置,外置的情况。SAS还有外置的情况。距离也分长短。PCLE是这样的,从PCLE接口规范来讲,它是能够进行热插拔的。目前我们看到的PCLE接口的硬盘卡,没有见到有谁能支持热插拔的,所以我们暂时列为否,是这样的情况。
最后我们对固态盘应用的策略。使用三条,第一条使用固态盘能显著提升既有存储的性能。第二从应用来讲,我们建议可以从边缘应用向核心应用逐步推进,第三混合应用是平滑的选择。
对于固态盘来讲,我们怎么用?通过实践和一些测算有五条应用。第一条将tempdb放在PCLE加速卡当中,第二将用户数据库的数据文件置于PCLE固态硬盘当中。第三对于大型数据库而言,将该数据库当中的IO最密度部件放在硬盘加速卡当中,前面是对大型数据来讲,如果你测的数据比较小,可以全放到固态硬盘上就行了。试运行的时候,我们的数据库运行的数据是比较小的,基本上是30G的,连tempdb数据带数据库都放在里面了。对于操作系统来讲,我们可以将虚拟内存放在硬盘加速卡当中,有助于提高操作系统的性能。这是我们对应用的几条建议。
最后对于硬盘加速卡来说,我们希望是混合应用,等于混合动力,是这样的概念。这就是我对混合硬盘最终的印象,谢谢大家。