全闪存阵列,顾名思义,就是全部采用SSD盘构成阵列。但从磁盘阵列,到全闪存阵列,并不仅仅是用SSD盘替换磁盘这么简单。
全闪存架构需要从新设计
SSD与磁盘相比,最大的优势就在于I/O的读取速度。从数据上看,普通硬盘读取速度大概是100M/S左右,相比固态硬盘是250M/S;但不意味着SSD盘读取速度只是磁盘的2.5倍,因为的读取速度是指连续数据的读取速度,鉴于硬盘有寻道时间开销,SSD没有,因此综合考虑,SSD读取速度要达到普通硬盘7~8倍以上。
从盘上升到阵列,不是SSD替换磁盘这么简单。
磁盘阵列的基础是磁盘,由于磁盘存在寻道时间开销,所以非常不擅长处理随机I/O,因为过多寻道势必影响阵列的性能。所以,磁盘阵列设计的核心就是尽可能处理连续I/O。
与之相比,SSD的优势是延迟低,但SSD不耐擦写,经过数千次擦写之后,就不能再使用。扬长避短,全闪存阵列设计要尽量避免对SSD多次擦,而不是想尽办法让阵列处理连续数据的I/O请求。
用SSD对磁盘进行简单替换,对于全闪存阵列来说,无异于削足适履。对此,需要用户提高认识。性能只是全闪存阵列重新设计的一个重要因素,除此之外,还需要考虑快照、克隆(复制)、精简配置和重复数据删除等功能的实现,虽然这些在磁盘阵列中已经非常成熟,但同样的规则和限制并不适用于全闪存的架构。
鉴别全闪存阵列的关键指标
弄明白了全闪存阵列设计的关键,对于全闪存阵列的选择就会局限在单纯IOPS的性能指标了。与该数据指标相比,全闪存阵列的数据存储方式、重复数据删除能力以及数据保护方法都是用户需要认真了解的性能指标。在此不妨以EMC 10月15日最新发布的 XtremIO全闪存横向扩展阵列为例加以说明。
XtremIO最多由4个X-Brick(X砖块)构成。其中,第一个X -Brick(X砖块)为6U高度,配有25个400GB SSD,阵列总容量为10TB容量,其中,用户可用磁盘容量为7.5TB。其余X –Brick为5U高度。X –Brick之间通过Infiniband交换机连接。XtremIO的最基本单位是一个X –Brick,可以横向扩展4个。总计21U高度,占半个机柜。据透露,EMC会在明年发布20TB的X –Brick,届时,其存储容量可以从10TB~40TB,提高到20TB~80TB。
XtremIO最多由4个X-Brick(X砖块)构成
40TB也好,80TB也好,与磁盘阵列相比,全闪存阵列的容量偏小,实际上,用户实际使用容量还不到40TB,大概只有30TB,如此小的容量,会不会限制全闪存阵列的推广和应用呢?这就会涉及全闪存阵列数据存储和重复数据删除的方式。
在此仍以X-Brick为例,它采用所谓双阶原数据引擎技术,也就是首先将数据按照4KB大小区分为一个个数据块,采用哈希算法形成数据指纹。第二步将这些数据指纹映射到内部物理地址存储。如此就彻底打破了原有按逻辑地址管理数据的方式,按照4KB,数据彻底打乱,百分之百碎片化。这样做的好处在于可以进行在线重复数据删除。据EMC提供的数据,单个XtremIO集群配置经过数据消重,可以实现超过250TB有效容量,从而减少应用对存储容量的需求。
全闪存阵列数据存储方式
与之相比,磁盘阵列绝大多数会按照逻辑地址次序,排放数据在内部的磁盘上,因为顺序操作性能对于磁盘而言都是最好的,因此没必要打乱这个次序,如果某些操作会打乱次序,形成数据碎片,就会存储性能造成很大损耗,这也是传统磁盘阵列很难实现线内去重的重要原因。
全闪存阵列数据保护
数据保护也是磁盘阵列需要重点考虑的内容,会采用RAID技术、快照技术等保护数据。以常用的RAID 5、RAID6为例,RAID5一个前端写操作,会导致后端有两个读操作一个写操作,其写放大是200%; RAID6前端一个写操作,会导致后端的3个读操作和一个写操作,其放大率是300%,这非但是性能的损耗,同时对闪存寿命也会有损耗,因此传统的针对磁盘的RAID技术不适用于全闪存阵列,必须采用新的数据保护技术。
XtremIO采用了独特的XDP数据保护方式,这是一种基于闪存的专用算法,一来应对可能出现的SSD故障故障,同时让用户可以100%使用XtremIO的容量,不损失性能。这是传统磁盘阵列以及某些全闪存阵列都做不到的事情。前面说过,一个10TB X –Brick,其可用容量只有7.5TB,其余2.5TB容量被系统使用,一部分用于存放元数据(指纹),据EMC提供的数据,存储7.5TB数据,元数据量约为100GB左右,并不占用多少存储空间。其余容量被XDP用于数据保护,当有SSD盘损坏时,XDP恢复数据并重新进行恢复。据EMC发布的数据,有用户测试,接连拔了5块SSD盘(不能够同时),系统数据不丢失,性能不受影响。
对于XtremIO而言,系统性能不受数据存储容量影响,可以确保系统性能的一致性。此外,XtremIO全闪存阵列还有一个独特的特性——共享内存原数据,很多软件功能,如拷贝等,就可以在系统内存的原数据操作实现,不需要读写闪存盘。该特性,非常适用于桌面虚拟化等VDI应用。但与此同时,内存中保存原数据,尽管会按照一定时间间隔写入SSD,但仍存在部分损失元数据的危险,因此需要对阵列进行保护。通过加装UPS,确保不出现任何闪失。
系统性能一致性是全闪存阵列重要衡量指标
全闪存阵列应用
桌面虚拟化至今没有广泛推广的重要原因还在于成本,600美元/桌面的优势并不明显。但采用XtremIO,可以做到3500个桌面支持(3500是Link Clone,Full Clone是2500)。每个桌面可以实现Windows 7企业版(32位或64位),Office等企业办公软件,40GB SSD存储配置,其成本可以控制在50美元左右,从而大大增加了桌面虚拟化的吸引力。
对于全闪存阵列而言,基于共享内存原数据服务,由于不需要读写闪存盘,就使得桌面拷贝变得非常简单,拷贝操作完全在内存中,以原数据操作的方式去解决,其速度非常快,不是20%~30%的性能提升,是几十倍的提升,从大大简化了桌面虚拟机的部署。
数据库联机事物处理是全闪存阵列另外一个适用的领域。对于数据库应用而言,传统读写操作平均延迟在5毫秒左右;采用全闪存阵列,其延迟可以降到1毫秒甚至半毫秒,对于数据库应用而言,这是一个巨大的性能提升。采用全闪存阵列可以大幅度改善对外的服务质量。
对于数据库应用而言,CPU利用率往往不高,很多维持在30% 左右,其核心就在于CPU等待IO延迟,IO拖累了系统的性能表现。因此,采用全闪存阵列可以充分释放CPU的处理能力。
全闪存阵列在线重复数据删除技术,也可以应对其容量偏小的不足。因此,数据库应用可以充分发挥全闪存阵列的优势,也是非常适合全闪存阵列的行业应用。可以预计,受成本因素影响,全闪存阵列还主要应用在一些高IOPS的应用场合,但随着密度的不断提高,SSD价格也会持续走低,据透露24TB容量SSD盘也在研制中,届时,全闪存阵列会迎来真正的爆发,从而掀起存储市场新一轮技术革命,这都是可以期待的!