这周一参加了在小米公司举办的China Linux Storage and File system workshop会议。该会议主要探讨Linux中的相关存储技术,例如文件系统和RAID等技术,交流的比较多的还是文件系统技术。在这个会议上我代表memblaze做了一个来自产业界的技术交流,主要针对全闪阵列的需求,提出了对Linux中的一些优化需求。应朋友的要求,在此对所做报告作一个简单的介绍,起到一点抛砖引玉的作用。

 

说到全闪阵列,这是一个革命性的产品和未来的主流发展趋势。我们有理由相信,未来的存储产品的主要一个形态就是全闪阵列。说起全闪阵列不得不提传统的磁盘阵列。传统的磁盘阵列是目前的主要存储产品形态,但是,由于行业需求的变化、新技术的迭代,使得传统磁盘阵列的问题变得日益突出,不能很好的满足应用需求。而全闪阵列恰好可以解决传统磁盘阵列的问题,满足未来数据日益增长和应用日益复杂的需求。

 

简单列举一下,全闪阵列主要具有如下技术优势:


Linux为何需要为全闪阵列做特殊优化?_第1张图片


全闪阵列的技术是十分复杂的。如果将传统磁盘阵列中的磁盘简单替换成闪存盘,那么这种“所谓的全闪阵列”不是一个真正意义上的全闪阵列。这是因为传统磁盘阵列中的软件是面向磁盘进行设计的,包括文件系统和RAID。而面向磁盘设计的软件将会考虑到磁盘本身的一些问题,例如如何避免磁盘抖动,使得存储性能达到更佳?传统磁盘阵列软件中所考虑的很多的问题在闪存上都不存在,而一些闪存中存在的问题却没有在传统的存储软件中进行考虑。因此,如果简单的将传统磁盘替换成闪存盘,那么整个系统将会面临很多的问题,不能使得SSD/闪存的性能达到最佳。所以,一个真正的全闪存阵列将是一个面向SSD/闪存进行优化设计的系统,主要涉及到的一些技术包括:


Linux为何需要为全闪阵列做特殊优化?_第2张图片


其中,在全闪存阵列研发的过程中,Linux系统的优化就是一个非常关键和重要的步骤。在学习计算机体系结构的时候,我们都知道存在一个“剪刀差”。这个“剪刀差”就是CPU性能和IO性能之间的差距。随着半导体工艺的不断发展,CPU性能在急剧的提升,但是,IO性能却增长非常的缓慢,从而导致CPUIO之间的性能差距越来越大。

 

IO性能的瓶颈在于磁盘。主要是由于磁盘是一种机械部件,所以,性能很难得到大幅度提升。非易失性半导体存储器件的出现使得这种现象得到了好转。特别是闪存技术的发展,使得后端存储不再是一个瓶颈点。整体性能的瓶颈已经从IO转向了CPU和前端网络,这是一个非常重大的变化。真因为这个变化,使得我们在研发全闪阵列的时候,需要更多的考虑CPU和前端网络的性能瓶颈优化问题。

 

另一个问题是操作系统。在传统存储系统中,操作系统根本不是一个问题。传统存储主要考虑是如何优化IO的顺序,使得磁盘的抖动达到最低,从而提升IO性能。并且在传统存储中,主要优化的都是带宽和IOPS,对于Latency是很难做到低延迟的。在闪存存储中,操作系统的优化变得非常关键,由于闪存存储不仅优化带宽和IOPS,而且需要优化延迟。因此,Linux操作系统中的很多部分都需要进行特殊优化,从而降低延迟抖动。

 

Linux为何需要为全闪阵列做特殊优化?_第3张图片


全闪存阵列技术的发展将会对Linux操作系统本身做出重大调整和优化,特别在低延迟IO技术方面。无论是从技术挑战,还是技术价值来看,对于研发来说,这都是一件非常有意义的事情。在这次的Linux存储技术会议上,memblaze还在现场进行了一次招聘。


Linux为何需要为全闪阵列做特殊优化?_第4张图片


未来的社会依赖大数据;存储系统是数据的家;闪存是构建未来存储系统的砖。整个产业链已经联动起来,包括硬件、存储软件以及OS,紧密围绕在闪存存储的周围,一同构造明天的“数据”家园。