论文部分内容阅读
当今社会信息化程度日益提高,数据已经成为我们日常工作和生活的重要资源。人们早已进入一个数据爆炸的时代,全球数据总量正在以惊人的速度增长。据统计,2018年全球产生的数据总量为33ZB,而到2025年该数值预计将达到175ZB。随着数据规模的不断增大,海量数据的存储成为迫切的需求。另一方面,海量数据存储所带来的高能耗问题也越来越凸显。据统计,2017年中国数据中心总耗电量达到了 1300亿千瓦时,该数值远超过当年三峡大坝全年发电总量976亿千瓦时。在数据中心能源消耗中,存储设备能耗所占的比例为25-35%。此外,存储设备运行过程中产生的热量会加重机房制冷系统的负担,从而这又进一步提高了数据中心的能源开销。因此,合理降低存储系统的能源开销对实现数据中心节能环保具有十分重要的意义。在数据中心,通常只有10~15%的数据处于被频繁访问的状态,而剩余部分数据则被称为冷数据。对于冷数据存储节点而言,其没有较高的计算能力需求,而传统的存储系统通常采用单一的高性能存储方案,因此会产生硬件成本高、系统功耗高等问题。特别是当存储规模逐步扩大时,硬件成本和能耗开销将显著攀升。本文对大规模冷数据的高效存储相关技术展开研究,以实现冷数据的低成本和低功耗存储,同时该存储系统还兼具高可靠、高容错能力和较高的性能。本文的主要研究内容和创新点有如下几个方面:(1)基于处理器的指令级并行和线程级并行分别提出了多数据流并行CRC算法和多线程并行CRC算法。大规模存储系统通常包含了大量复杂的软件和硬件,数据发生损坏的可能性随着系统复杂度的增加而提高。而其中未能检测到的数据损坏(即静默数据损坏)通常难以发现,其能够产生不可预期的错误,从而严重威胁数据的可靠性。数据校验能够有效地检测静默数据损坏以保证存储系统的可靠性。循环冗余校验(Cyclic Redundancy Check,CRC)作为常见的数据校验方法有较高的校验效率。为了提升存储系统数据校验的性能,本文对CRC开展进一步研究并提出了两种并行CRC算法。其中,多数据流并行CRC算法能够将CRC计算流程拆分成多条数据流,各个数据流的计算过程能以交织的方式执行,从而使得处理器的指令级并行能力得到充分发挥;多线程并行CRC算法能够利用处理器线程级并行能力并行计算数据各部分的CRC校验值,并将数据各部分的CRC校验值合并从而获得整体数据的CRC校验值。目前,Slicing-by-4和Slicing-by-8作为高效的CRC算法得到了广泛的应用。实验结果表明,基于多数据流方式实现的并行Slicing-by-4和并行Slicing-by-8算法的计算速率分别相当于原有算法的三倍和两倍;对于并行度为P的多线程并行CRC算法,其能够将现有CRC算法效率提升约P倍。(2)基于Intel的SSE和AVX2指令集提出了硬件加速Reed-Solomon编码效率的算法。为了提高存储系统的可靠性及容错能力,增加数据冗余是一种有效的方案。当存储系统中部分数据发生损坏时,其可以通过冗余数据来恢复原始数据。然而,数据冗余在提高存储系统可靠性的同时也增加了存储负担,系统需要额外的存储空间来保存冗余数据,从而导致硬件成本和能耗开销增加。因此,在保证数据可靠性的条件下,降低冗余数据所占的比例对构建低功耗存储系统具有十分重要的意义。目前,复制备份是较常见的数据冗余方案,其能够有效提高数据可靠性。复制备份技术实现简单,但是该方案存储效率较低。编码冗余方式能够同时兼顾存储效率和数据可靠性,然而其计算过程复杂。本文对Reed-Solomon编码展开研究,从处理器硬件指令角度来提升编码的运行效率。Reed-Solomon编码过程需要在有限域上进行大量的乘法运算,本文提出的RSSSE和RSAVX2算法能够充分利用Intel处理器的SSE和AVX2指令集实现有限域乘法的并行计算,从而使得Reed-Solomon编码性能有大幅度的提升。在常见的纠删码开源库中,Jerasure编码库具有较高的编码效率,其广泛应用于分布式存储系统中。实验结果表明,RSSSE和RSAVX2算法的编码效率分别为Jerasure编码库的1.2倍和1.9倍。(3)从硬盘SMART历史数据出发,提出了一种基于长短期记忆网络的硬盘健康状态预测方法。随着存储系统数据规模不断扩大,硬盘故障不再是小概率事件,海量数据的存储安全问题日益凸显。有效地预测硬盘故障事件的发生能有利于更加合理地制定硬盘规划和管理方案,其对于存储系统的数据可靠性而言具有十分重要的意义。目前主流的硬盘都支持SMART技术,其能够监控硬盘工作状态的相关指标。与常见故障预测模型不同的是,本文将硬盘SMART历史时序数据引入到预测模型的结构中,提出了一种基于长短期记忆网络的机器学习方法来预测硬盘的健康状态,并且该模型根据硬盘的剩余使用寿命将其健康状态划分为不同的级别来进行预测。由于硬盘在从正常工作到发生故障的时间内,其健康状态是一个连续逐渐变化的过程,多级别健康状态的划分能够更加细致地刻画这个过程。此外,本文提出的预测模型能够通过迁移学习来提升在训练数据集规模较小时模型的预测性能。实验结果表明,与现有的基于随机森林和循环神经网络的预测模型相比,本文提出的预测模型在宏平均和微平均指标上均能够取得更高的预测性能。(4)针对冷数据的存储特点,本文设计和实现了大规模低功耗存储系统。目前,常见的存储系统均采用单一的高性能件配置方案,从而导致硬件成本和能耗偏高。对于冷数据存储而言,这样的硬件配置导致资源过剩。本文设计和实现了适用于冷数据存储的大规模低功耗存储系统。存储系统由不同角色的节点组成。其中,元数据节点负责维护存储系统元数据信息,传输节点负责数据编码和缓存。这两类节点需要较高的计算性能,因此被部署在通用服务器上。而存储节点只负责数据的存储,无需过高的计算性能,因此采用定制的服务器方案。存储节点所配置的服务器具有高存储密度,并采用低功耗处理器以降低能耗开销。存储节点还配备SCSI箱体服务控制器,使得处于非活动状态的硬盘能够进入断电状态,从而最大限度地降低整体系统能耗。此外,为了提高元数据的可靠性和性能,本文基于分布式数据库设计了元数据管理方案,提出了文件目录结构和存储空间管理相关算法。在实验中,我们构建了一个存储容量为1.5PB的系统原型。实验结果表明该存储系统在文件存放、读取和修复方面均有较高的性能。值得注意的是,系统能够支持高达93.75%的硬盘处于断电状态,从而大幅度降低电能消耗。在正常工作状态下,存储系统中每TB数据的平均耗电量为0.92~1.09W。