华为OceanStor 9000大数据存储系统在标准性能评估机构SPEC的SPECsfs2008基准测试中再次刷新记录, 领先友商产品3倍多,成为存储业界性能新的领导者。这也是华为存储产品继2009 年、2011年、2012年三次获得最高测试结果后,又一次领跑SPECsfs2008测试,创造新的SPEC记录。
1测试前的争议
虽然有了前三次SPEC性能测试的经验,但是面对这次500万OPS性能极限的冲刺,华为内部测试团队也有了很大的争议。“已经有了业界领先的评测数据为什么还要进行更高的性能测试?测试需要投入大量的人力、物力,这次更高性能的测试有什么意义?”类似的问题一直被提及。我们也一直问自己,“我们的测试能够为客户带来什么?”项目负责人龙茵回顾起测试启动初期不断与周边团队沟通的历程也是感慨万千。
“以客户为中心”——华为的立足之本,在不同的场合,不同的产品领域被提及,连客户看不到的一个测试项目的启动也不例外。“客户的满意度,不仅仅是产品的功能满足,还有产品交付质量以及后续产品的维护、服务质量,甚至产品升级、扩容等都需要围绕着客户进行全生命周期的管理” ,在产品研发、客户交付一线工作多年的项目专家徐忠反复提到:“500万OPS意味着一秒钟可同时浏览60万张商品图片,或是一秒钟完成高分辨率的卫星影像30景,覆盖8万平方公里,相当于葡萄牙的国土面积,多个行业对存储设备都有极限性能的需求。所以,这次大规模的测试是为500万OPS 需求的客户进行的项目交付,从物料供应到交付安装,每一环节都是真实的客户需求”。如果说前三次的SPEC测试是业界的比拼、追赶,那么这第四次测试——以500万OPS为目标的测试,更像是华为“自我批判”的精神实践——不断的自我否定,不断的的自我超越。
2第一个吃螃蟹,吃出新花样
在SPEC测试标准中只定义了最基本的测试项目,但具体厂商采用什么方法测试,采用多少的数据量进行测试并没有统一的指导书。针对500万OPS 的极限性能更没有现成的测试方案可以照搬,华为测试小组通过前三次的测试积累,逆向倒推出一个基本的测试方案,其中从数据量、文件大小、文件操作及可靠性、部署简易程度等多方面梳理出测试准备项。
表一 测试需求项简表
同时, 根据梳理的测试需求项整理了测试的硬件环境。硬件需求分为客户压力测试机、OceanStor 9000节点及交换机配置。具体包含客户测试机的选型、配置及OceanStor每节点的硬件配置,如,每节点内存&NVDIMM、网卡、SSD、SAS磁盘需求、交换机型号和接口数。
3化整为零,步步为营
大规模硬件设备互联、软件快速部署、系统性能调优等问题都是业界难以突破500万OPS基准测试的重要因素。华为测试项目组决定:初始使用小规模集群,做小规模测试,随后增加测试节点,最终完成系统500万OPS测试目标。
3.1 小试牛刀
小规模集群验证中,实证选定客户机及内存、网卡配置可满足测试需求,且按照线性扩展原则,20台客户机即可满足测试终极测试目标需要。
并且OceanStor 9000在10、20、40节点规模的测试环境下,取得50万OPS,100万、200万OPS时延都低于2ms的结果,达到了小规模测试要求,取得了阶段性的胜利。
图1 10节点测试结果
图2 20节点测试结果
图3 40节点测试结果
3.1一步一脚印,再出发
通过了小规模的阶段测试,项目组没有时间进行庆贺,马不停蹄向500万OPS目标前进。随着节点的增多,产品交付中的细小、低概率问题被无数倍的放大,成为华为质量里不可接受的问题。
»»质量一致性
根据测试验证进度计划,华为供应链采用多批次供货策略。在进行100节点集群验证时,发现在软件、系统配置相同情况下,其中一台设备性能与其他设备相差10倍以上。经过分析,发现该设备在相同操作系统配置,相同启动选项条件下,设备时钟源与其他设备不一样。针对这个问题进一步分析,最终判定是该台设备的一个硬件器件参数异常,造成时钟源选择错误。通过增加物料参数检查、调整该参数使用,在确保可靠的条件下,容忍更大的偏差等硬、软多个手段解决该问题。
»»大规模集群部署和监控
使用单节点修改配置、顺序启动等传统的部署方案不能够满足大规模集群部署。OceanStor 9000设计了方便易用的部署和监控方式,在小规模集群验证中,只要导入配置表单,系统即能自动完成部署,完成文件系统装载,20节点约半小时。经优化系统最大文件句柄数,协调各节点之间TCP链接、监控链接。100节点部署时间大约在1 小时左右,系统部署性能得到大幅提升。
»»大规模系统参数调优
系统中有大量的可调参数用于优化性能,如何快速的找到最有效的参数,并调整到合适的值对于测试小组来说是个巨大的挑战。调优小组将参数分为操作系统参数和巫山文件系统参数两大类;操作系统参数又分为协议栈相关和硬件驱动相关两类。
文件系统调优主要集中在各子系统对系统资源的分配,使用iostat、systemtap、perf、sar等系统工具以及自研延时分析统计工具,详细分析网络IO地图、磁盘IO地图,内存使用比例关系,流程耗时,线程及接口CPU占用情况,逐步调整出各子系统最佳线程配比,最佳内存分配比例,最佳CPU绑定策略。
通过观察网络独立压力测试的情况,分别对BIOSMaxPayload、中断均衡脚本、TCP buffer等参数进行调整,使得网卡延时缩短,吞吐量增大,最终网络独立压力测试获得最好效果。
最后将操作系统和文件系统整合到一起,确定调整参数有效,对有冲突或者还有明显瓶颈的位置,再次综合分析原因。
»»并行的开发和性能调优版本管理
为了应对并行的功能开发与性能调优,每个模块、接口、独立流程开发时即保证功能正确、异常处理完善、代码无冗余、系统资源使用合理。每日自动构建集成的LLT测试及时发现独立单元可能的问题,并且得出这些单元的性能情况。每次构建若发现单元性能差异,与发现问题一样及时得到解决。
迭代模块交付后,在自动化测试中集成性能测试,监控每个版本性能基线,出现性能倒退或者与理论分析不符,及时分析可能原因作出优化。以下为性能优化迭代流程图。
所有优化均落入版本发布流程落入交付版本,保证客户能够获得高质量高性能产品。
测试过程中碰到的问题有大、有小,有预计之中,也有意料之外的难题,测试项目组齐心协力,解决了一个又一个的难题。随着测试数据的步步达成,终极目标近在咫尺。
4一直在路上
100节点测试结果
OceanStor 9000产品提交四种集群规模(10、20、40、100节点)SPECsfs2008性能测试结果,并一次性通过SPEC认证。其中100节点规模的系统OPS可达到5,030,264,时延也低至1.63ms,在SPECsfs2008性能测试结果中遥遥领先。从四种规模测试结果可以很容易看出,OPS 性能与节点数量成正比,并且时延曲线趋势一致(时延都在2ms以下),完全满足系统大规模扩展时容量与性能的双重需求,同时,最终的100节点部署时间在1小时左右,加快了实际项目交付的进度。真实的测试环境、第三方认证的测试数据,大大消除了客户对产品的疑虑,这些行动的出发点不仅是因为华为人对产品质量的信心,更是华为人“以客户为中心”核心价值的体现。
“有时候会碰到客户对产品性能参数的质疑,我们会婉转的给客户看华为存储产品经过第三方认证的测试结果。华为存储产品的规格、性能参数不是空洞洞的写在产品彩页中的,而是实实在在通过真实测试环境测出来的,并是获得第三方的认证的规格。同样,在客户侧的测试中,我们的测试结果令客户非常满意,产品获得了客户的高度认可。”海量存储产品总经理袁远描述了客户从质疑到信服的心理变化。
面对产品获得的荣誉,测试项目组却一刻不能停歇,OceanStor 9000极限容量的测试目标已经确定, 项目组成员又开始忙碌起来……
SPECsfs2008基准小百科
SPEC(Standard Performance Evaluation Corporation)标准性能评估机构是全球系统应用性能评测的权威机构之一(SPEC 组织官网:http://www.spec.org/)。 EMC、Netapp、IBM等60个IT主流厂家都是SPEC机构成员,均参与标准的制定并且通过该标准认证机构发布产品性能数据。
SPECsfs2008是文件服务应用的核心测评基准(http://www.spec.org/sfs2008/ )是将典型文件服务器应用进行抽象,把真实的业务压力转化为可测试、可衡量的参数值:通过文件访问的吞吐量和响应时间评估文件服务器性能,同时保证存储数据可靠性、一致性,并遵守接入一致性原则。
在SPEC 官网上,通过测试的产品名单每季度刷新,最新的2013年第四季度通过测试的产品名单,可参阅:http://www.spec.org/sfs2008/results/res2013q4/。