云存储中软件RAID的性能优化

2013-09-17 10:31吴苑
微型电脑应用 2013年9期
关键词:磁盘阵列哈希校验

吴苑

0 引言

对公司和企业来说,用于服务和保存数据的存储系统变得越来越重要。磁盘冗余阵列(RAID)被应用于存储市场以提供冗余、提高性能并降低成本。RAID可以通过操作系统上层的软件仿真或者专用的硬件磁盘阵列来实现计算机系统对磁盘阵列相应的数据流管理。

过去,由于硬件磁盘阵列卡拥有专门的电路来处理所有磁盘阵列驱动器的数据计算,而不需要处理器并且可以提供优越的性能,专门的硬件磁盘阵列卡被广泛使用。与此同时,硬件磁盘阵列卡的高成本以及其对BIOS兼容性的要求成为了主要瓶颈。

为了解决这种问题,更多人把目光投向了软件磁盘阵列。软件RAID是在操作系统上层利用软件仿真的。在软件仿真RAID中,需要占用普通计算环境中的处理器计算周期来专门处理RIAD接口的必要任务。与硬件RAID相比,软件RAID很快发展成为一种具有成本效益和灵活性的解决方案。在云存储成为存储市场的新概念时,软件RAID由于其低成本及高可扩展性将在存储市场得到更广泛的应用。

尽管软件RAID有很多优势,其最关键的问题是系统性能的下降。随着处理器、内存、磁盘驱动器以及RAID级别的不同,它在任何环节都可能发生并损失5%甚至更高的性能。由于软件RAID通常建立在性能一般价格便宜的磁盘上,数据保护和完整性非常重要。软件RAID会记录数据的校验和并在每次读取数据时进行验证。当发现错误时,软件RAID会修正校验和。由于软件RAID是建立在操作系统核心上并且依赖于处理器来进行这些计算,处理器成为了软件RAID的潜在性能瓶颈,同样也为使用新一代CPU来提升软件RAID的性能提供了机会。

Zettabyte文件系统(ZFS)是一种开源的文件系统,采用新的软件RAID模式RAID-Z。RAID-Z和RAID-5类似,但采用了可变条带宽带来消除RAID-5的写入漏洞。RAID-Z全部是全条带写入,没有读-修改-写入的损失,没有写入漏洞,也不需要硬件的非易失性随机访问存储器(NVRAM)。ZFS还支持校验功能以确保数据完整性。由于ZFS拥有上述优势,本文选择ZFS作为软件RAID性能优化的对象。

1 算法和设计

1.1 ZFS校验和终端对终端校验是ZFS强大的功能之一,使得ZFS可以发现并修正很多种其他产品不能发现或修真的错误。在文件系统级别启用校验,可以降低在应用程序级别启用校验的需要。ZFS提供了多种校验算法,如fletcher2,fletcher4和SHA256.

fletcher2是ZFS上默认的校验算法。然而,它的算法非常简单,只是并行运行两个8位的fletcher校验。每一个校验操作从间隔的64字符数据中读取,再将产生的4个64位的数量连接在一起形成了256位的结果。数据源中的单个位错误会影响最多128位的校验和。然而这种校验算法的可靠性不是很高,存在缺陷。例如,只有50%的机会捕捉到一个磁盘块上任意64比特字中最重要的比特中的一个单比特的错误或任何连续的单比特错误。Fletcher2可以提供的数据冲突可能性是2-8。

SHA256是一个安全的哈希散列算法。它使用256比特的块大小作为输出,为每个数据块的数据和元数据技术哈希值,并将其作为校验和存储。当相关数据被读取时,ZFS会比较校验和来确保数据完整性。由于SHA256使用了256比特块大小的哈希值,它可以提供的数据冲突可能性是2-256。它与fletcher2相比更加安全可靠。

然而,由于SHA256会占据过多的处理器周期来进行计算并导致系统性能的大幅度下降,ZFS使用了fletcher2作为系统默认的校验算法。尽管SHA256对数据更加安全,由于性能较差,现阶段很难实现用SHA256进行数据校验。

1.2 瓶颈分析

本文使用filebench作为性能基准测试工具,并用dtrace来分析性能和寻找瓶颈。

下表是使用英特尔nehalem处理器在ZFS上启用不同校验算法得到的性能测试结果,如表1所示:

从表中可以看出,当启用SHA256进行数据校验时,系统延时有非常大的增加。

使用dtrace进行分析的报告,如表2所示:

表2 dtrace性能分析报告

从中可以看出SHA256占据了100%的处理器并使得系统性能迅速下降。从分析结果中可以看出,由于SHA256占据了过多的处理器周期来进行SHA256转换块计算,处理器成为在ZFS上启用SHA256进行校验的性能瓶颈。

1.3 测试方法

本文使用英特尔core i5 650处理器,在ZFS上使用不同校验算法对顺序读取的性能包括带宽、延时等进行了测试。该处理器是英特尔Westmere处理器并且发布了最新的AES(Advanced Encryption Standard)指令集。

英特尔发布的不同代处理器比较,如表3所示:

表3 测试中使用的不同代英特尔处理器比较

从表中可以看出core i7到core i5没有结构上的变化,甚至core i7由于具有更多的核和缓存会有更好的特性。Core i5最明显的改善在于AES指令集的启用。

尽管该指令集是针对AES而不是直接对SHA256, 它同样可以加快部分的哈希计算。由于SHA256是一种哈希散列算法,它在英特尔启用了AES指令集的Westmere处理器上同样可以获得性能提升。

1.4 存在的问题

在使用Westmere处理器进行性能测试时,首先得到的结果中SHA256与其他校验算法有类似的延迟。在评估根本原因的过程中,发现当使用SATA硬盘进行测试时,硬盘的输入、输出性能取代处理器成为了瓶颈。因此,我们改用了固态硬盘(SSD)来继续测试处理器改善带来的性能提升。

然而,当使用fletcher2或者fletcher4进行数据校验时,硬盘仍然是性能瓶颈,因为这两种校验方法只是使用简单的数列和计算而并不需要如此的依赖处理器进行计算。

2 结果及分析

在使用英特尔不同代处理器及启用不同校验算法进行性能测试之后,可以得出如下结论:

(1)当启用SHA256进行数据校验,使用英特尔最新Westmere处理器,相比酷睿2系统可以获得28%的带宽提升,相比迅驰(Nehalem)可以获得11%的带宽提升。

(2)与fletcher2获得的性能提升相比,SHA256获得的提升仍然不足够。这是由于Westmere处理器的AES指令集只能加速SHA256的部分哈希散列运算。

从测试结果可以看出,如图1-图4所示:

图1 不同代处理器的性能测试结果 –带宽

图2 不同代处理器的性能测试结果 –延时

图3 不同代处理器的性能测试结果 –处理器百分比

图4 不同代处理器的性能测试结果 –处理器时间/操作

这里我们只测试了使用SHA256作为校验算法的ZFS的性能改善,并与前几代如迅驰和酷睿2处理器进行对比。由于不同的处理器有不同数量的多核,我们禁用了迅驰处理器上的两个核以便在双核的基础上进行性能比较。除此之外,由于在使用fletcher进行校验时处理器使用率并不高,性能的瓶颈在于硬盘而非处理器。这也导致了最终测试结果中,当使用fletcher进行校验,在迅驰处理器上带宽和延时性能较好于Westmere处理器。

SHA256同样能在ZFS的去除冗余功能中使用。当然这会占据更多的处理器和内存资源来进行数据计算。我们可能会在ZFS的去除冗余功能中看到更多的性能提升。

数据去除冗余对存储的优化来说非常重要。它可以消除大量占据磁盘空间的冗余数据以节省磁盘空间。此外,由于只有一个数据副本,它也可能会提高系统性能。系统将不需要在多个磁盘上搜索特定的数据块。

但是ZFS上的去除冗余还有许多性能问题。例如,当启用去除冗余来删除较大的文件或文件夹时,可能会造成服务器挂起。使用Westmere处理器对SHA256的性能提升有可能会帮助解决去除数据冗余上这种性能问题并使它更快成为一种产品。

3 结论

由于我们使用了一款较为低端的Westmere处理器,Westmere上的性能测试结果并不尽如人意。尽管如此,基于现在对ZFS上启用SHA256得到的性能测试结果,可以证明我们的想法是可以实现的。

(1)使用SHA256进行校验,在Westmere处理器上可以获得迅驰处理器上1.1倍的带宽和90%的延时。英特尔的Westmere处理器可以帮助提高SHA256校验的性能并提升软件RAID的性能。

(2)在Westmere处理器中,使用SHA256可以获得默认校验算法fletcher2的70%的带宽以及1.4倍的延时。SHA256的性能仍然没有好到可以作为默认的选项。

(3)如果处理器的设计可以特别为SHA256提供指令集,SHA256可能会获得更多的性能提升。

[1]http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide#Tuning_ZFS_Checksums[OL]

[2]Yu Sasaki,Lei Wang,and Kazumaro Aoki,Preimage Attacks on 41-Step SHA-256 and 46-Step SHA-512,[M]accessed 3 Jan 2010

[3]Intel®Advanced Encryption Standard(AES)[C]Instructions Set.

[4]Benadjila,R.Billet1,O.Gueron,S.and M.J.B.Robshaw.The Intel AES[C]Instructions Set and the SHA-3 Candidates

猜你喜欢
磁盘阵列哈希校验
哈希值处理 功能全面更易用
文件哈希值处理一条龙
更换磁盘阵列磁盘
炉温均匀性校验在铸锻企业的应用
LSIRAIDBIOS实现磁盘阵列重建
结合抓包实例分析校验和的计算
分析校验和的错误原因
基于OpenCV与均值哈希算法的人脸相似识别系统
巧用哈希数值传递文件
浅谈微电子故障校验