存储系统性能对于访问大量数据的应用至关重要。性能测试有助于确定影响存储系统性能的关键因素,从而可以有针对性地进行分析和改进。存储系统性能测试主要涉及两个技术挑战创建真实的存储系统状态,生成有代表性的访问负载。虽然存储系统设计取得很大进步,但存储系统性能测试技术的发展却非常滞后。主要表现在一些关键技术问题依然悬而未决,例如如何在B系统上重放从A系统采集的trace而又保持负载模式;如何保证分布式播放时整体负载的行为特征;如何快速构建大规模存储系统的真实状态。针对现有大规模存储系统性能测试技术的不足,本项目提出了大规模存储系统性能测试方法与技术研究,面向大规模存储系统性能测试的两大技术挑战,主要研究访问trace的高效收集与合理重放技术;可扩展的有代表性人工负载生成方法;大规模存储系统真实状态的快速构建技术。最终目标是构建可重复、可扩展、易配置、可信赖的存储系统性能评测体系。
storage system;performance evaluation;trace replay;synthetic workload;system rebuilding
本项目顺利完成了研究计划中的全部内容,初步构建了高效率、可重复、可扩展的存储系统性能评测体系。主要学术进展包括 ① 研究了分级存储系统性能测试技术并实现了测试工具DMStone,它使用文件系统快照生成某一时刻的系统状态,并根据后续的相邻快照的差异分析出后续访问负载的宏观特征,进而生成后续对文件系统的数据访问。DMStone能够提供某一时刻完整的文件系统状态,涵盖了近期访问过的和长期不用的所有文件,而且它能够保证后续文件访问的局部性与真实应用场景相符合。 ② 设计了一个块级别存储系统性能测试工具IOmark,它根据来自真实存储系统的I/O 记录生成相同的I/O 请求负载,以模拟运行环境的真实负载变化。使用Linux内核态异步I/O 实现对块级别存储系统的访问;通过跟踪生成的I/O 请求的状态和I/O 记录中的请求时间来控制I/O 请求的发送时间,并筛选I/O 记录中的盘号来控制负载轻重,从而实现精确地重放I/O 负载的功能。 ③ 按照TPC-C标准设计并实现了一套符合标准的TPC-C评测程序,并对多套存储系统进行了测试。对TPC-C评测程序的负载特征进行量化分析,从底层磁盘阵列控制器和上层数据库系统两个方面分别对TPC-C程序的数据访问模式、数据块大小分布、读写频率,读写混合比例等进行分析。针对TPC-C评测程序的负载特征,提出一系列系统级优化方法。完成对多套服务器的TPC-C评测,其中,在4路英特尔至强服务器上TPMC值达到101.8万。 ④ 本项目研究提出了一系列大规模存储系统性能测试方法与技术,在Linux系统中设计并实现了块级别、文件级别存储系统性能测试工具。这些方法和工具帮助我们理解存储系统内在特征和应用I/O负载模式,为存储阵列、云存储系统、大数据计算等相关技术研究提供了有力支撑,加速了相关成果的提出、实现和优化。主要学术成绩包括发表学术论文16篇,其中5篇发表在系统领域国际顶尖期刊ACM Transactions on Storage、IEEE Transactions on Computers、IEEE Transactions on Parallel and Distributed Systems上,SCI 检索8 篇,EI 检索13 篇。获得发明专利授权1 项,申请发明专利1 项。课题负责人郑纬民教授获得2015年度国家技术发明奖二等奖1项。