X5架构创新之二:高性能eXFlash固态盘系统
服务器技术与性能正在迅速的发展与提高,而这其中主要的推动力,毫无疑问就是CPU,许多周边设备的技术发展与进步是与CPU密切相关的,比如内存、网络I/O以及存储设备等。而在当前,处理器的多核化已经不可阻挡,这又将给周边的数据设备带来新的挑战。
由于处理器内核的增加,也必将加剧对服务器资源的争夺,这里包括了内存容量、内存带宽、网络带宽以及存储I/O带宽等等。现在去衡量一个采用多核处理器的服务器的基本能力时,一个基本的指标就是每核所分配的到资源,如果资源不够,每个核心的性能也将不能充分的发挥。而且,随着服务器虚拟化的不断普及,在单台服务器上承载多个应用虚拟机已经趋于常态,而这种显而易见的多任务的压力也就分摊在相应的I/O设备上了。
为此,厂商在不断的给内存增加通道数量,提高内存的传输率,网络I/O也从Mbps向10Gbps级迈进,这些基本都是可以通过电子电路设计的改进来实现,因此慢慢的,人们就感觉到最终的性能瓶颈开始向存储集中,即传统的硬盘(或称磁盘)系统。
硬盘(全称硬盘驱动器,HDD——Hard Disk Drive)已经有了很悠久的历史了,最早可以追溯到50多年前,所以发展至今已经千锤百炼,在技术上已经相当的成熟,伴随着垂直磁记录等技术的普及与发展,硬盘现在容量已经发展到TB的级别,每GB的成本不过几毛钱,这在当前的服务器系统中的优势无可比拟,但是由于硬盘的原理性限制,它的劣势在CPU性能突飞猛进的今天也就越发明显。
我们知道硬盘的存储是基于旋转的磁盘,在工作时有一个磁头臂带着磁头在旋转的磁盘上做径向的寻址,然后再读写数据,这里就存在着较大的访问延迟。由于磁头在开始读写数据前要先找到相应的磁道,再找到相应的扇区,所以其平均寻址时间由平均寻道时间+平均潜伏期得来,以当前最高性能的15000RPM(每分钟15000转)的传统硬盘产品为例,其平均寻道时间为3.2ms,平均潜伏期(盘片旋转半圈的时间)为2ms,两者相加为5.2ms,这就意味着它对寻址命令的平均响应能力是192IOPS,IOPS就是指硬盘在每秒里可执行的I/O操作数,由于必须先找到地址才能进行I/O操作,所以IOPS也基本可以理解为对寻址命令的响应能力,这对于CPU的事务处理非常关键,尤其是非常常见的随机访问操作(如数据库)。
虽然现在有较为成熟的命令排队技术来优化硬盘的寻址操作,但理论的上它的实际性能很难超过单一的平均潜伏期的水平,比如平均潜伏期为2ms,那么IOPS的最大值就在500左右,这就是传统硬盘传统硬盘的最理想的水平,而实际测试成绩一般在200至300之间。在传统的单核服务器上,这样的IOPS表现似乎问题不大,但如果是在多路多核的系统上,尤其是多虚拟机环境下,这无疑将成为最明显的性能瓶颈。可是,基于机械的硬盘在这方面是力不从心的,因为转速很难再提升,所以它的响应速度最终就落在ms(毫秒)的级别。
另一方面,由于是在旋转的磁盘上进行数据的读写,所以其数据传输率将随磁道的位置产生变化,最外圈的磁道数据传输率最高,但越往里数据传输率越低,这从其数据传输曲线图上就能看出来,它是一个呈阶梯状的从高向低的曲线,也就是说硬盘无法做到数据传输的恒定,这也对其有效带宽造成了致命影响。
传统15000rpm企业级硬盘的测试图,数据传输率也因为内外圈的设计,而有所不同,内圈的数据传输率基本上只有外圈的66.7% 为此,IBM在最新的eX5服务器所采用了eXFlash SSD(IBM称之为“极速存储套件”)来解决存储I/O瓶颈问题。
SSD是一种基于闪存技术的存储设备,而闪存(Flash Memory)是一种非易失性的半导体存储器(NVRAM),这里就有两个特点,第一它是非易失的,可以像硬盘那样永久的保存数据,第二它是半导体存储器,就意味着更快的访问速度。 当前主流的存储用闪存就是NAND闪存,若算上页面寄存器的数据传输时间,基本是20us(微秒)左右,理论的IOPS可达50000,是传统硬盘传统硬盘的100倍,这就是当前SSD相对于硬盘的领先水平,而如此高的响应能力再加上可通过多通道设计来成倍提高I/O带宽的能力, 使得SSD迅速成为了高性能服务器的首选。而且,SSD的数据由于是类似于内存的平行传输,不存在硬盘的外圈与内圈的问题,所以可以做到恒定保持在最高的数据传输率上。 从SSD的传输曲线图中可以看出,基本处在同一水平线上,没有硬盘的内外圈之分,在全容量范围内都可获得最高的传输速率 IBM eX5服务器中的3850 X5采用了8块2.5英寸规格的eXFlash SSD(3690X5也可采用,而x3950X5数据库优化版则是标配eXFlash),而该服务器具备4个英特尔最先进的8核心处理器,共32个核心,此时每个核心所能分配到的IOPS性能达到了近12500,如果按一个典型的数据库容量为100GB,IOPS平均需求为15000计算,这8块eXFlash SSD就能支持30个这样的数据库的运行,而用传统的硬盘,至少需要800块(还是理论上的理想情况),这800块硬盘无疑就意味着更高的电源消耗、更多的容量浪费(因为为了增加IOPS所带来的新增加的硬盘容量并不是必须的),更多的运维成本(800块硬盘不可能放在服务器里,所以需要额外的阵列占用机房空间,并需要专门的维护)。事实上,经过IBM的试验表明,以这种平均45万IOPS的访问规模运行3年后,eXFlash SSD所节省的电力与运维成本就将近230万美元,而它仅以硬盘阵列3%的成本就可实现同等的IOPS性能,能耗只有硬盘阵列的1%。 IBM以一个大中型企业的IT应用为例,共用30个数据库(比如ERP、CRM、HR等数据库),每个数据库规格100GB,如果要满足每个数据库15000IOPS的访问负载,则需要巨大的存储系统予以支撑,而它所占用的成本也是巨大的 8块eXFlash SSD相当于800块传统硬盘的IOPS响应能力,而成本则节约了97%,功耗只有后者的1%,优势明显,而借助后端的专业存储系统,则可以更合理的分配存储资源,而不必为了满足IOPS而低效率的添加硬盘 从某种角度上讲,eXFlash并不像MAX5那样具有创新性,然而从中也能看出SSD在服务器中的地位也将越来越重要,在很多应用中,对容量的需求远没有对性能的需求强烈,而当新一代高性能处理器推出之后,这种反差也将更加强烈,因此eXFlash也完全是顺应潮流之举。 IBM表示,eXFlash包括了SSD与控制器两大部分,SSD采用了高寿命的SLC型产品,而控制器也进行了算法的优化,以最大限度的在保证高性能的同时保证eXFlash系统的可用性和可靠性。 目前的eXFlash SSD的容量为50GB,IBM计划在不久的将来推出200GB容量的eXFlash SSD。 IBM专门为eXFlash而开发的6Gbps SAS控制器,它不能接驳传统的硬盘,而只有采用它与eXFlash SSD结合才能发挥最大的效能 |