王竞争
摘 要:随着国家网络信息体系的不断建设,云计算及相关领域的技术发展迅速。通过虚拟化技术将计算、存储、网络等资源抽象成计算资源池、网络资源池和存储资源池,并将这些资源池进行统一划分和管理,为用户提供虚拟资源及虚拟服务能力。在X86体系架构中云平台已较为普及,基于国产申威架构的云计算资源管理技术目前还未出现,本文通过适配优化了基于申威架构的国产化设备与操作系统,成功研发了基于申威架构的云资源管理平台,并在此平台上进行了大规模应用测试,验证了本技术方案的可行性。
关键词:申威架构;虚拟化;云计算资源管理
中图分类号:TP311.52 文献标识码:A 文章编号:1001-5922(2021)04-0082-05
Abstract:With the continuous construction of the national network information system, cloud computing and related fields have developed rapidly. Through virtualization technology, computing, storage, network resources are abstracted into computing resource pool, network resource pool and storage resource pool. These resource pools are divided and managed uniformly to provide users with virtual resources and virtual service capabilities. In x86 architecture, cloud platform has become more popular, and cloud computing resource management technology based on domestic Shenwei architecture has not yet appeared. In this paper, we optimized the domestic equipment and operating system based on Shenwei architecture, successfully developed the cloud resource management platform based on Shenwei architecture, and carried out large-scale application test on this platform to verify the feasibility of the technical scheme.
Key words:Shenwei architecture; virtualization; cloud computing resource management
近年来,国产CPU架构服务器蓬勃发展,出现了基于ARM架构、MIPS架构、ALPHA架构等多种架构、多种型号的服务器。而且,国产服务器的性能也在不断提升,逐渐能够满足复杂的应用模式,大规模业务服务迁移到国产服务器成为了可能。另一方面,基于国产服务器的应用生态也不断完善,从操作系统、数据库、消息中间件到web中间件,已经初步具备业务部署的基础环境。国内涌现了大量的厂商在支持基于国产服务器的生态建设,如深度、普华、达梦、金仓、金蝶等。与此同时,云计算技术改变了传统的应用部署模式,云的模式不仅大大提高了资源的利用率,还给业务系统带来了弹性和高可用能力,业务系统的抗毁能力和自动运维的能力大大增强,传统应用逐渐从云下迁移到云上。自主性和安全性逐渐被认可为云计算平台的两大核心能力,基于國产服务器的云平台能够很好的满足这两个核心能力,目前对安全要求较高的业务应用逐渐迁移到国产云上。因此,本研究尝试将构建基于国产申威服务器的云计算资源管理平台,并对该平台进行详细设计与测试。
1 关键技术
1.1 申威架构简介
申威处理器的研制受到国家重大专项支持,采用自主Alpha指令集,且具有完全的自主知识产权。以形成包含嵌入式、桌面处理器、计算处理器等在内的多种产品线。申威在超算领域成绩优异。申威26010处理器的浮点性能可达3.168TFLOPS,性能和英特尔的14nm工艺72核XeonPhi2(2015年年末Intel新推出的版本)类似。2016年6月,在第47届世界超级计算机大会上公布的最新TOP500排名中,中国国产“神威·太湖之光”超级计算机成为新的世界冠军并连续4届蝉联冠军,“神威·太湖之光”超级计算机使用的处理器正是申威26010。2018年6月,美国凭借IBM、NVIDIA联合研发的Summit超算成功夺回TOP500超算第一。目前国内有三套百亿亿次超算——天河3号、神威E级及中科曙光,其中神威E级的原型机今年已经安装在济南超算中心并通过验收,使用的处理器是新一代申威26010+,是申威26010的升级版。在超算上取得成功后,SW开始把服务器作为发力的方向,2019年会有SW3231问世,2020年SW3232会问世,比PPT上的规划时间晚一年。就单核性能来说,SW3232采用14/16nm工艺,并且有极大概率单核性能达到25分(SPECint2006),多核性能600+是起步水平,实际性能会明显高于这个水平。SW3232在单核与多核性能上着实不俗,申威用实践证明,独立自主与CPU高性能可以兼得,没必要一定依附于X86和ARM,中国人自主定义指令集完全走的通。
1.2 云计算资源管理技术
云计算是一种按需使用资源的模式,可以通过简单的配置或自助服务就可以便捷的获取到计算、存储、网络资源。如何将计算、存储、网络资源池化,如何动态的调度用户的资源需求,如何提供稳定高效的服务是云计算平台要解决的关键问题。其中涉及到大量的技术栈,从底层到上层分别是服务器整机、CPU、RAID、操作系统、内核、虚拟化软件、管理调度软件等。
云计算资源管理技术通过认证管理、计算资源管理、网络资源管理、镜像管理、存储资源管理等组件实现对基础虚拟资源的统一调度管理。认证管理组件为其他组件提供认证服务,保障集群的认证管理功能;计算资源管理组件提供部署和计算能力;网络资源管理组件保障云平台内的网络功能;镜像管理组件提供镜像服务;存储资源管理组件为虚拟机提供云硬盘存储功能,保障云平台存储功能。通过云计算资源管理技术,实现对物理资源虚拟化并合理调度管理虚拟资源的能力。
2 基于申威处理器的云计算资源管理平台设计
2.1 CPU架构差异处理
申威服务器采用Alpha架构,指令集体系结构、内部寄存器、地址空间布局、中断和异常处理机制等,均与X86存在较大差异。为解决该设计问题,采用云平台标准化协议,打通操作系统和服务器以及云平台直接的接口关系,对指令调用场景进行了深度定制,使得内核支持申威CPU架构,并把这些CPU架构的区别屏蔽在操作系统底层,使内核其他部分及应用程序在申威架构的CPU上都能成功执行,确保操作系统中硬件无关部分能够通过统一的接口访问不同硬件平台提供的资源和服务,确保用户使用的透明性。针对CPU架构相关的内核模块代码,将申威架构独立的内核模块放在独立的内核目录下,该目录下不存在其他架构的代码,其他架构的内核编译时不会编译该目录下的代码模块。针对CPU架构无关内核模块(其中有些代码可能由于CPU架构的不同而存在不同的实现方式)的CPU架构相关代码,相关CPU架构的代码必须用该CPU架构特定的内核编译选项进行编译预处理,以使当编译其他架构的代码时不会编译本CPU架构的特定代码,以此实现申威CPU架构内核模块处理的特殊处理,并且为以后不同架构统一内核提供便利。
2.2 平台整体架构设计
基于国产申威处理器上实现的云计算资源管理平台包括认证管理服务、云计算资源管理控制服务、计算资源调度服务、网络资源调度服务、存储资源调度服务、镜像资源调度服务等部分。认证管理服务为云计算资源管理平台的组件提供用户认证、权限控制和访问策略服务;云计算资源管理控制服务是云计算资源管理平台的调度控制角色,主要处理消息认证、资源管理和资源调度任务,为计算、存储、网络、镜像等资源提供控制服务;计算资源调度服务提供裸金属、虚拟机生命周期管理;网络资源调度服务提供虚拟资源的网络全生命周期管理能力;存储资源调度服务提供云硬盘全生命周期管理能力;镜像资源调度服务提供虚拟机镜像全生命周期管理能力。具体结构如图1所示。
3 各步骤具体实现设计
3.1 资源认证
用户发出资源请求通过接口向认证管理服务获取认证信息,认证管理服务通过用户请求认证信息,并生成令牌返回给对应的认证请求,用户访问携带令牌便可向云计算资源管理控制服务发送资源调度请求,云计算资源管理控制服务接受请求后向认证管理服务发送认证请求,验证令牌有效性,通过认证后在云计算资源管理控制服务进行数据库通讯,查询资源并获取调度资源信息发送到消息队列进行申威处理器上的资源调度工作。
3.2 资源调度
计算资源调度服务通过消息队列拿到令牌和资源调度信息便会发送资源调度请求到镜像资源调度服务、存储资源调度服务、网络资源调度服务等部分,镜像、存储、网络资源调度服务各自调度可用资源返回到计算资源调度服务。针对申威CPU编写资源调度服务组件源码,开发驱动,封装打包安装文件、注册数据库并创建配置文件,代码层面识别申威架构信息,根据申威虚拟化特性进行对应的特殊化处理,以满足申威虚擬化实现逻辑。在这个过程中需要针对申威处理器对底层计算资源调度服务组件做专门处理,面向提供硬件辅助虚拟化能力的申威CPU,借助KVM虚拟化监视器进行管控,KVM虚拟化监视器是内核级虚拟机技术的核心,运行在操作系统内核层,拥有最高的特权级。在提供硬件辅助虚拟化能力的国产CPU平台上,通过改造并复用操作系统内核的任务调度、内存管理、中断管理、时钟管理等模块,使虚拟机监视器控制、管理、隔离运行在操作系统用户空间的虚拟机进程。
3.3 资源创建
各资源调度服务根据用户请求调用的资源配置信息通过虚拟化驱动进行资源创建,要在国产申威处理器上运行计算服务创建资源需要对接底层内核上的libvirt组件,通过libvirt再调用KVM实现虚拟化。KVM虚拟机libvirt组件是一系列库函数,提供给其他技术架构调用,帮助管理机器上的虚拟机。libvirt采用面向驱动的架构设计,提供多种语言的编程接口,可调用libvirt提供的对外接口实现虚拟机操作。申威KVM虚拟机是一款国产全功能虚拟机,在宿主机的支持下可运行独立的操作系统,具备虚拟磁盘、虚拟网络、虚拟显示和直连部分PCI设备的能力,但由于基于申威的KVM实现方式及相应的组件针对CPU架构有特殊的参数配置,需要对计算资源管理组件中创建虚拟机相关的网络、磁盘等驱动调用命令参数配置进行匹配,宿主机内核需要加入KVM相关功能,同时对KVM模块针对申威系列CPU进行适配,主要匹配硬件相关代码,对应申威处理器中PCI-E接口部件和集中控制部件的配置。以此在申威平台之上实现KVM虚拟化运行环境。另外申威KVM虚拟机本身缺少云计算资源管理平台组件中的部分虚拟化能力,本文针对计算、存储、网络调度服务所涉及的相关内核模块通过反复试验验证提出内核模块增强和优化的解决方案,以便基于申威CPU定制虚拟化内核,支持云计算资源管理平台的云计算服务能力。
3.4 资源管理
申威处理器上的云计算资源管理同样需要通过虚拟化驱动实现,针对申威处理器上的虚拟化驱动组件,适配依赖包、内核模块、业务逻辑等内容以识别申威架构,使得计算资源调度服务、存储资源调度服务、网络资源调度服务、镜像资源调度服务等服务正常运行,支持裸金属服务器创建、删除、启动、关闭、重启等,支持虚拟机的创建、编辑、创建快照、启动、关闭、挂起、恢复、暂停、恢复暂停、重启、绑定公网IP、解绑公网IP、连接网络、断开网络、编辑安全组、监控等,支持网络的创建、删除、编辑、创建子网、编辑子网、删除子网等,支持云硬盘创建、删除、编辑等,支持镜像的创建、删除、编辑等。
4 实验验证
基于申威架构的国产云平台计算资源管理、网络资源管理和存储资源管理等功能,能够正常工作,通过国产云平台自助申请虚拟机,对虚拟机测试结果如下:
4.1 CPU测试
SpecCPU2006主要用于测量和对比浮点性能。本文通过该测试工具,得到表1不同场景应用下的处理器性能测试结果。
4.2 内存测试
STREAM是一套综合性能测试程序集,通过fortran和C两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率,使得STREAM测试例程可以充分发挥出内存的能力。STREAM测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值。虚拟机的内存速度相比宿主机,性能损失情况见表2所示。
4.3 硬盘测试
iozone是一個文件系统的基准程序,可以用来模拟多种不同的硬盘访问模式。IOzone的配置非常丰富,所以可以比较准确的模拟特定负载。通过使用不同的块大小,IOzone可以写一个或多个不同大小的文件。单线程(数据单位为kBytes/sec)测试结果如下:
4.4 综合测试
UnixBench是linux、unix平台测试系统基准性能的经典工具,可以根据多项参数最后给你一个最后得分。UnixBench测试系统CPU运算能力,包含了系统调用、读写、进程、2D、3D、管道、运算、C库等系统基准性能,它的优点在于提供了对系统性能的一种评价体系,为系统评分,方便对系统作对比测试。虚拟机的Unixbench综合情况相比宿主机,情况如下:
从以上测试结果分析,基于申威的虚拟机和物理机相比,CPU平均性能下降约为20%。虚拟机的内存性能与宿主机基本一致,磁盘读的性能基本与物理机一致,写的性能较差。
5 结语
综合来看,首次实现国产申威架构处理器上云计算资源管理技术的应用,针对申威架构的特殊性通过源码定制、配置优化、虚拟化指令适配等关键技术实现了申威处理器虚拟化的技术突破,成功对接特权指令固件、kvm虚拟化内核、虚拟机管理工具、客户端管理界面等底层虚拟化核心组件,实现云计算资源管理技术在国产申威平台上的应用,自主可控率可达100%,促进了云平台技术在国产架构的发展,为国产云平台生态建设奠定基础。
参考文献
[1]洪文杰. 基于申威处理器的PETSc异构并行算法设计和研究[D].长沙:湖南大学,2018.
[2]贾迅,胡向东,尹飞.申威处理器硬件数据预取技术的实现[J].计算机工程与科学,2015,37(11):2013-2017.
[3]池亚平,李欣,王艳,等.基于KVM的可信虚拟化平台设计与实现[J].计算机工程与设计,2016,37(06):1451-1455.
[4]刘芳芳,杨超,袁欣辉,等.面向国产申威26010众核处理器的SpMV实现与优化[J].软件学报,2018,29(12):3921-3932.
[5]王武,王舒扬,姜金荣,等.快速多极子方法在申威众核处理器上的实现和优化[J].计算机工程与科学,2019,41(07):1161-1167.
[6]刘侃,王欣亮,许平,等.申威众核处理器上的三对角并行求解器[J].计算机科学与探索,2019,13(10):1654-1663.
[7]张江,贾玉洁,张晓宇.云计算环境下的内核虚拟机技术安全研究[J].计算机与网络,2017,43(04):72-75.
[8]赵美婷,刘轶,刘锐,等.基于申威众核处理器的HOG特征提取算法并行加速[J].计算机工程与科学,2017,39(04):611-618.
[9]高岩,林军,云龙,等.云计算主机内核虚拟化技术框架及其性能分析[J].计算机系统应用,2017,26(08):278-283.
[10]李舟军,沈东,苏晓菁,等.基于ARM虚拟化扩展的安全防护技术[J].软件学报,2017,28(09):2229-2247.
[11]刘垚,郑琳,郑凯,等.基于申威众核处理器的NSGA-Ⅱ并行和优化方法[J].计算机应用研究,2020,37(01):96-101.