有很多文章在写存储的发展趋势,其中包括云存储、软件定义存储,当然笔者听到最多的还是闪存。作为存储的最为基本的单元,闪存较磁盘有更高的IOPS,特别是在大量随机读写小文件的系统中,闪存有着磁盘无法达到的性能。当前最为常见的闪存方案是将闪存卡或者固态硬盘加到服务器中做为一个高速缓存层,存储热数据并应对前端应用大量的读写需求。但是全闪存阵列现在发展的远没有磁盘阵列那样成熟,这篇文章则从全闪存阵列以及市场上新旧两大闪存阵营来阐述全闪存阵列。
全闪存就是插满SSD?
是不是传统的存储阵列在插满SSD就可以称之为全闪存阵列?这显然不是。磁盘阵列的根本依然是基于硬盘的,硬盘的特点就是存在寻道的延迟,所以非常不擅长处理随机I/O,因为过多的seek影响性能。因此,对于基于硬盘的阵列,设计者一开始的想法就是尽可能的让阵列处理连续I/O。而SSD的优势就是延迟低,另一方面SSD的存储单元在经过数千次擦写之后就会磨损不能再使用,所以从存储介质的层面来看,全闪存阵列的设计应该尽量避免对SSD进行多次擦写以保证寿命,而不是想尽办法让阵列处理连续I/O请求。
简单的用SSD替换磁盘是不能发挥闪存的性能的。犹如一辆汽车不能单纯的加上飞机的引擎来提高时速一样。
从控制的角度看,传统的磁盘阵列性能瓶颈在磁盘,保证磁盘不过载的前提下,磁盘不足以榨干CPU的性能,但是将传统的磁盘阵列的硬盘替换为SSD之后,SSD的IOPS性能非常高,不等SSD性能充分发挥,CPU就会崩溃了。
简单来说为了适应SSD的优势,延长SSD寿命,不论是硬件还是软件架构全闪存阵列都需要重新设计。另一方面性能只是全闪存阵列需要重新设计的一个重要的因素却非全部,全闪存阵列还需要考虑快照、克隆、精简配置和重复数据删除等功能的实现,虽然这些功能在传统磁盘阵列中应用非常成熟,但是都是基于底层磁盘管理引擎所构建的,采用同样的规则和限制,并不适用于全闪存的架构。