全SSD高性能服务器在分布式文件系统中的应用技术研究论文_王小刚1,周侠2,桂美坤3

(南京南瑞集团公司(国网电力科学研究院) 江苏南京 210000)

摘要:随着数据的高速增长,企业和用户对存储领域的需求呈现爆炸式增长。当前数据已经成为企业的核心资源,因此对数据存储的安全性和可靠性也提出了更高要求。这些技术从软件或硬件等不同层面共同推动了存储领域的发展,也对传统的存储体系结构形成了冲击,从而为相关的研究提供了广阔的空间。为了满足数据密集型海量存储系统的应用需求,进一步提高存储系统的带宽,随着海量数据存储和I/O密集型应用的发展,I/O越发成为了分布式存储系统的性能瓶颈,传统的HDD硬盘读写速度慢,难以胜任分布式文件系统中的工作,因此使用全SSD突破系统的IO瓶颈,提升分布式文件系统的性能。

关键词:IO;分布式;全SSD;性能;分布式文件系统

Abstract:with the rapid growth of data,enterprises and users of the storage area of the demand for explosive growth.The current data has become the core resources of the enterprise,so the security and reliability of data storage is also put forward higher requirements.These technologies,such as software or hardware,promote the development of the storage area,and also impact on the traditional storage architecture,thus providing a broad space for the related research.In order to meet the application requirements of data intensive mass storage system,and further improve the bandwidth of the storage system,with the development of mass data storage and I / O intensive applications,I / O increasingly becomes the performance bottleneck of distributed storage system,conventional HDD Hard disk read and write speed is slow,difficult to qualify for work in a distributed file system.Therefore,the use of the SSD break through the bottleneck of the system.IO,enhance the performance of the distributed file system.

Key words:IO,distributed,all SSD,performance,distributed file system

1.引言

本研究目的是在分布式文件存储系统中用全部用固态硬盘(SSD)介质代替传统硬盘(HDD),全SSD闪存存储整列用于取代所有传统的硬盘存储阵列。在获得全闪存存储阵列的高性能的同时,从成本来说,虽然最初的投资会高很多,但是从整个项目的整个周期来看,费用并不会比传统的硬盘存储阵列多。通过这个项目达到很高的性能和成本平衡的性价比。

分布式文件系统采用全闪存阵列作为基础架构将大大提高IOPS性能指标。全SSD闪存存储阵列的研究,为满足高性能低延迟数据存储需求,解决节点存储性能瓶颈问题,提供分层、高效分布式文件系统服务,为优化IT基础架构数据存储层提供技术支撑。

元数据的访问性能影响着分布式文件系统的性能,在分布式文件系统中,元数据的访问很频繁,而元数据文件通常又很小,这样对大量小文件的访问,会对系统性能造成冲击。在闪存阵列架构下的分布式文件系统中,问题更加凸显。针对闪存阵列的元数据管理,研究适合的缓存算法,成为闪存阵列分布式文件系统I/O的重要方向。

基于块存储存储的分布式文件系统的设计不但要应对超大规模文件的聚合带宽I/O要求,还要满足在真实的应用程序中,小文件频繁I/O 操作对整个分布式文件系统性能的巨大影响,而是整个 I/O 过程中掺杂着相当大比例的小文件操作。为了充分发挥分布式文件系统的特点,必须优化其应对不同种类频度的的文件服务性能,使文件系统在真实应用环境中的 I/O 带宽能够接近理论上的最大带宽。

针对块操作的分布式文件系统I/O 特点,通过高效块映射机制、自适应均衡数据分布算法以及存储节点并行IO优化技术,减少文件 I/O 操作时的开销,凸显分布式文件系统并行IO性能优势。研究基于块存储的分布式文件系统对深度优化文件系统普适性能,挑战分布式文件系统性能极致。

2.闪存阵列设计

2.1SSD闪存阵列技术

研究内容是全SSD全闪存磁盘阵列在分布式文件存储中的应用。全SSD闪存阵列是完全由固态存储介质(通常是NAND闪存)构成的独立的存储阵列或设备,在全闪存阵列之前,最初的做法往往是通过在传统阵列中加入闪存盘,也就是所谓的混合阵列。相较于传统的全部基于磁盘的阵列,混合阵列能够提供更好的性能,但其实混合阵列并没有将闪存的能力最大化的体现。传统磁盘阵列存储系统的设计,通过缓存和智能算法来获得旋转磁盘的各类指征,而全闪存阵列从设计上就是为闪存盘服务的。闪存介质的威力通过一组数据可以看得非常清晰,通过在普通存储阵列中增加一个薄片的闪存,如占总容量2%到5%的比例,那么平均的IOPS值就可以加倍,读延迟可以从10毫秒减少到3到5毫秒。虽然闪存介质价格不菲,但10%到20%的价格增加换来两倍的性能提升,还是有赚翻了的感觉。对于现在的很多应用而言,就算是3到5微秒的延迟也会造成很大的业务影响。全闪存阵列的亚毫秒级读延迟将是QoS的一个最好的保障。从长远来看,全闪存的应用将把读延迟降到0.5微秒,相对传统的HDD阵列,这将是20倍的性能提升,对于一些应用和场景是合适的选择。

2.2针对闪存阵列的分布式文件系统I/O、网络调优技术研究

2.2.1针对闪存阵列的文件系统元数据管理技术

与传统大规模存储类似,I/O 性能的优化仍然是闪存阵列的一个挑战。减轻I/O 性能瓶颈目前提高系统性能主要有两种思路:一种是建立一个高速 POSIX兼容的文件系统,它汇集各节点磁盘带宽,提供极高的聚合 I/O 能力,实现高性能可伸缩的存储服务;另一种是方案从任务着手,通过划分原来计算任务,将任务分散各个节点去执行来减少对 I/O 集中需求,最终将中间计算结果进行归并得到最终结果。这两种方案目前都有较好的发展,第一种方案比较接近传统文件系统,很多传统应用程序不需要修改就可以顺利的迁移到分布式文件系统中,主要应用于大型集群的科学计算;第二种方案需要对原有程序重新设计编写,主要工作是实现任务的划分,当以其低成本的优势在互联网领域得到广泛的使用。

2.2.2网络优化技术

闪存阵列解决了分布式系统的关键瓶颈,即磁盘性能。于是,更多的压力放在了网络上。传统的千兆网络在全SSD分布式文件系统中,已经无法满足服务器的高吞吐量需求。于是,对于网络硬件与软件的调优,都成为了研究的重点内容,它对于服务器的整体性能有着至关重要的作用。

2.2.3针对闪存阵列的负载均衡技术

根据负载意义的不同可以将云计算环境下的负载均衡算法分为两类:基于资源调度的负载均衡算法和基于任务调度的负载均衡算法。从基于任务调度的角度又可以将负载均衡算法分为:静态负载均衡算法和动态负载均衡算法。静态负载均衡算法不考虑各个结点运行时刻的工作状态、承载能力以及任务的复杂程度,而只是根据事先设定好的方案将新产生的请求任务分配到各个结点上。动态负载均衡算法则是根据服务器结点的负载状态动态的做出请求分配的决定,将一个新到达的请求分发到适合它的服务器结点上去处理,优化系统的整体性能,充分发挥各个服务器节点的处理能力,提高集群系统吞吐量。

3.固态盘raid设计

3.1RAID算法设计

在基于SSD的存储阵列中,基于闪存SSD为上层RAID控制器提供标准的访问接口。闪存本身的特性被SSD控制器屏蔽,与基于磁盘构建的存储阵列有很好的兼容性,相关的开发工具都能直接加以利用。因此,利用SSD构建存储阵列简便可行。但是底层的闪存特性被屏蔽,不利于闪存优势的充分发挥。而且闪存擦写次数有限,若直接采用传统的RAID机制,容易造成SSD设备磨损过快。所以利用SSD构建存储阵列过程中,必须重新设计RAID算法。

带校验码的RAID机制在性能和可靠性方面的突出表现使得现有的基于SSD的存储阵列基本上都是在带校验码的RAID机制上构建的。我们在RAID5的机制上提出了动态校验块RAID5机制。该机制与传统RAID5机制的区别在于,校验块并不是固定均匀分布在各个SSD中,而是根据每个校验块的损耗程度,在SSD设备间动态分配。该策略通过构建一个位表,记录每个校验块的更新次数。每当某个校验块更新时,都要检查该校验块对应的位表,若已经超过某个设定的阀值,则通过贪心算法找到损耗较小的校验块,并交换这两个校验块的位置,从而达到SSD间的损耗均衡,延长存储系统中的SSD的使用寿命,增强存储系统的可靠性。但是,由于该机制在交换两个校验块位置时会改变条带的布局,因此,需要更多的资源维持条带的完整。

基于动态校验块的思想,提出了CSWL-RAID机制。CSWL-RAID机制并不像RAID5—样,将校验码平均分配到每个盘中,而是根据损耗程度,动态调整校验码的分布。该机制用每个SSD设备内部的平均擦写次数代表该设备的损耗程度,并将校验信息按损耗程度的倒数来进行分配,使得每个SSD设备的损耗趋向一致,延长存储系统的寿命。CSWL-RAID机制与动态校验块RAID5机制区别在于,动态校验块RAID5是根据每个校验块的损耗程度,通过交换校验块的位置动态调整校验块布局,每个盘设备加速损耗,直至损耗程度到达一定阀值后,使根据每个SSD设备的损耗程度来决定每个盘的校验信息比例。

3.2基于I/O栈调整与重构的存储性能优化

硬件接口直接使用DMA在闪存与闪存之间传输数据,从而避免SAS/SATA HBA与RAID等模块的处理延迟。新存储器件访问延迟的降低使得传统基于中断的软硬件通知机制开销增大,在传统方式中,数据读写命令发送给设备之后,可由DMA进行数据传输,主机可继续执行指令,而不必等待数据的完成,设备完成数据传输之后,通过中断指令通知主机CPU以进行后续处理,上下文切换的代价也超出循环等待的代价,在新型存储系统中I/O完成采用轮询方式会优于中断方式,I/O请求也采用同步完成的机制,以避免频繁中断带来高昂的上下文切换代价。

在块设备层中,现有的I/O调度策略都是基于磁盘存取顺序性等问题,因而在固态盘的使用中,提出不进行I/O的调度,闪存访问也有独特的特征,读写性能不对称会导致读操作会被写操作引入很大的延迟,而且读写请求不能充分利用闪存设备内部的并发特性将导致带宽浪费。在闪存设备上的IOPS调度算法,该算法通过选取合适的时间片,并分离读写之间的干扰,既利用了闪存的并发特性,也保证了访问请求的公平性。

在文件系统层,文件系统利用VSL管理闪存存储空间的功能,从而避免了文件系统空间管理与闪存设备FTL管理的冗余管理开销。通过文件系统与闪存设备间新的软件程序接口的方式,由闪存设备自主选择数据写的物理地址,然后通知文件系统进行地址的更新记录。

3.3负载均衡层的访问与维护

本地 MDS 周期性统计访问情况,在每个更新周期的起点清空 PSL,并用 LRU策略将这个周期内收到的访问请求填入 PSL,在更新周期结尾统计出该段时间内本地访问最频文件,并根据 MLBA 上记录的上个时段内 MDS 集群各节点的负载情况,按照一定的迁移算法,将元数据打包生成 EMM,通过广播的方式发送给集群中的各个 MDS,其他 MDS 根据收到的 EMM 更新本地的 MLBA 与 IMP。EMM的发送以轮转的方式进行,MDS 集群中的每个节点按照编号依次广播发出更新了的EMM,在一个更新周期内,各 MDS 均发出一次 EMM,MLBA 完成一次整体更新,过程如图所示。

图1

3.4闪存阵列的元数据更新方案

元数据的更新,包括元数据的添加、删除和修改,这些操作相比元数据的查询要少得多,但是却可能影响元数据在 MDS 集群上的分布情况,因此要求 LBL 在更新中间层内部元数据的同时,能够透明的将元数据更新操作传递到下层 MDS 上,使其按照 MDS 原有元数据管理方式进行更新,尽量减少 LBL 对元数据更新的影响。使用Cache是一个较为可行的方案。

Cache技术广泛应用于存储系统的各个领域,比如CPU L1/L2 Cache、文件系统、分布式存储系统等。Cache技术主要通过空间换时间的策略,利用数据访问的时间和空间局部性,尽量提高数据访问的缓存命中率,从而提高系统的性能。存储系统中的Cache位于最低层存储介质之上,其中缓存了应用程序需要的数据子集。对子集中的数据的读写先在Cache中异步进行,然后异步存储到低层稳定的介质上。Cache技术通过这种异步的数据I/O模式来解决程序中的计算速度和数据存储速度不匹配的鸿沟,减少了访问底层存储介质的次数,使存储系统的性能大大提高。

3.5闪存阵列下的高性能网络架构

当一个应用执行RDMA读或写请求时,不执行任何数据复制。在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地NIC(网卡),然后经过网络传送到远程NIC。请求完成既可以完全在用户空间中处理(通过轮询用户级完成排列),或者在应用一直睡眠到请求完成时的情况下通过内核内存处理。RDMA操作使应用可以从一个远程应用的内存中读数据或向这个内存写数据。用于操作的远程虚拟内存地址包含在RDMA信息中。

图2

RDMA是Infiniband的基础。Infiniband是一种较为成熟的高速网络技术,其传输过程相比较以太网的TCP/IP传输协议更加简单。在使用Infiniband连接之前需要先建立Infiniband网络,这个网络的建立包括在本机和目的机器开辟内存空间,建立会话等操作。网络建立完成后,所有的使用Infiniband网络的应用程序都需要先将它自己的数据放入IB已经预先分配好的内存,这可以认为是Infiniband数据区。然后Infiniband数据区会将其中包含的数据全部push给网卡,由网卡中的RDMA模块通过Infiniband网络发送到目的机器。目的机器的RDMA模块在接受这个数据后,将会把这个数据放入Infiniband数据区,这个数据区也是预先在这台目的主机上申请好的。Infiniband数据区获取到之后,就可以供应用程序使用了。

4.结论与展望

全SSD高性能服务器在分布式文件系统的应用,实现了高效、高安全、支持多种访问类型的分布式存储接口,有效提升分布式文件系统存储I/O性能,消除大规模数据服务请求下的系统性能瓶颈;实现了高效的数据分布算法,降低数据迁移开销,减少系统总I/O次数。信息化的建设要求分布式存储产品具有高吞吐量、高并发的特点,当前各个产品中,全SSD高性能服务器是性能方面能够达到极限的一类服务器,其在分布式文件系统中的应用尤为重要。

参考文献:

[1]杜溢墨,肖侬,刘芳,陈志广,欧洋.MuLe-RAID:面向大容量高性能SSD的层次化RAID.计算机研究与发展.2012(S1)。

[2]谢长生,姜国松,刘瑞芳.RAID控制器中多级Cache的研究.计算机工程与科学.2004(12)。

[3]罗冰然.高可靠性高性能NAND Flash SSD的原理设计和算法研究.华南理工大学 2013。

[4]朱浩.SSD文件系统优化技术的研究与实现.国防科学技术大学 2010。

[5]涂丹辉.固态盘的闪存转换层设计与优化.华中科技大学 2013。

论文作者:王小刚1,周侠2,桂美坤3

论文发表刊物:《电力设备》2016年第16期

论文发表时间:2016/11/10

标签:;  ;  ;  ;  ;  ;  ;  ;  

全SSD高性能服务器在分布式文件系统中的应用技术研究论文_王小刚1,周侠2,桂美坤3
下载Doc文档

猜你喜欢