论文部分内容阅读
网络存储系统被广泛应用在数据中心的构建中,为在云计算、大数据平台上部署丰富的应用提供便利的基础条件。而随着互联网隐私日益受到重视,用户要求网络存储的数据是加密保护的,但是加密数据会影响网络存储传输效率。如何同时满足用户对安全性和效率的需求,是个很重要的问题。然而,网络存储系统中的I/O路径过长,任何一个环节没有充分优化都会导致存储系统不能满足用户需求。多核网络处理器由于具有多核并行、协处理器加速等优点,能够提高网络数据包处理和加密的效率,成为一种可行的网络存储硬件方案。为了解决上述问题,本文基于多核处理器对安全网络存储优化技术进行探究和创新,从安全性、高效性和可靠性方面进行研究。研究内容涉及I/O路径的多个层次,包括网络存储数据加密、存储路径多核核间通信、存储端缓存机制以及I/O调度等方面。主要研究成果和贡献如下: 1.iSCSI(Internet Small Computer System Interface)安全网络存储框架:本文提出了一种实时加密iSCSI安全存储系统,解决网络存储数据安全问题。此系统在iSCSI目标端引入加密机制,发起端不会感知加密操作。实现一个双层iSCSI目标端架构,构建一个可以灵活扩展的网络存储系统;为iSCSI目标端控制器设计软硬件加速的加解密读写机制,向用户提供透明的加解密服务并且相对原系统独立。实验结果显示,此安全网络存储系统能达到较高的吞吐,同时保证存储设备上的静态数据安全。 2.存储路径多核核间通讯优化:针对存储路径的流水线,为了减少核间通讯需实现一个快速的共享缓存队列,本文提出了一种cache友好的并发无锁队列调度算法CFCLF,从cache级别优化,最小化核间通讯开销。使用了二维矩阵代替传统的一维数组来实现共享队列结构,使得队列有良好的cache行为。算法充分利用cache局部性来避免cache无效问题、伪共享问题和cache一致性问题。此外,算法通过批处理策略来提高吞吐性能,并且提出一种节省时间、空间的方法避免死锁问题。本文通过推导算法的安全性和线性一致性来证明CFCLF的正确性。Intel XEON和Cavium OCTEON上的实验和真实应用测试表明,此算法比目前最好的软件方法性能提升25.5%,并且更稳定。 3.网络存储缓存优化:为了进一步提高存储区域网的整体性能,在iSCSI目标端软件中引入了一种基于闪存的融合缓存机制FusionCache,解决网络存储缓存效率问题。FusionCache利用闪存和内存DRAM组成统一的融合缓存架构,闪存充当DRAM的扩展空间,DRAM分为缓存块元数据区和前端缓存区。元数据区基于基数树管理缓存块元数据,用于加速缓存块的查找;前端缓存区基于回归拟合统计并预测缓存块访问热度,只允许热点数据进入闪存。闪存采用改进的LRU(Least Recently Used)算法对缓存块进行替换,并且在写回过程中考虑iSCSI会话状态。实验结果表明,与只采用DRAM的缓存机制以及原生iSCSI目标端相比,FusionCache的IO访问延时分别降低了33%和60%,吞吐分别提高了25%和54%。 4.网络存储I/O调度优化:(1)在软件定义存储的iSCSI存储区域网中,本文为不同需求的应用提供差异化的服务,确保I/O服务质量。在iSCSI目标端控制器中集成一种QoS(Quality of Service)感知的调度策略,根据预估的延时值来动态的调整请求的优先级,以此调度所有的I/O请求,从而使延时敏感型应用满足截止时间需求并保证QoS。实验结果表明本方法能够把时延需求的满意度提高46.6%。(2)针对网络存储新型介质SSD(Solid State Drive),提出一种公平高效的I/O调度器。该调度器结合Linux中CFQ公平性和NOOP简单高效的优点,并且引入元数据请求队列以加速读写过程,为每个进程维护两个FIFO请求队列。实验结果表明,该调度器比NOOP的公平性提高了28%,比CFQ的延时降低了55%。