APP下载

国产化混合云平台建设与性能优化的研究

2024-02-29尚真真赵宇帆

计算机测量与控制 2024年2期
关键词:交换机内存虚拟化

徐 扬,张 静,尚真真,赵宇帆

(中国电子科技集团有限公司 第15研究所,北京 100083)

0 引言

混合云平台搭建实践的目的有两个:1)适配验证使用全桟国产化软硬件产品构建混合云平台的可行性;2)验证时敏性业务迁移到国产化混合云平台的可行性,研究针对4种混合云模式,即“物理机”“物理机+容器”“物理机+虚拟机”“物理机+虚拟机+容器”,探索并综合使用多种调优技术,以达到提高云平台实时性的目的[1-2]。目前,使用全桟国产化软硬件产品搭建混合云平台比较普遍,但是鉴于迁移工作量大、难度高,严格将业务运行在国产化虚拟机操作系统,或者经容器服务化后仍旧运行在国产化操作系统上便具有较大的挑战性,加之满足时敏性业务的高吞吐、低延时的指标要求,与同类研究相比,验证过程积累的针对提高国产化云平台实时性的实战经验与成果更具突破性和借鉴意义[3-5]。

1 混合云平台的结构及原理

云平台可以解释为云计算平台,是可以提供计算服务、网络服务和存储服务的平台。与传统的计算机系统平台不同,云平台将数据中心中的计算资源、网络资源、存储资源先进行池化,然后再以服务的方式提供给最终用户[6]。云平台不仅融合异构服务器、异构网络设备和异构磁盘阵列,还打破地域的限制使得最终用户可以在全球各地,使用各种终端,借助多种网络通信技术,随时访问自己想要的信息。而混合云平台则在此基础上,融合多种资源池化技术形成的云,例如:“物理云”“虚拟云”“容器云”,灵活部署在一个云平台上,统一向用户提供云服务[7-8]。混合云平台使用多种池化技术的目的,是为了提高云服务的能力,不同云适用于不同类型的应用,比如并发量高类型、复杂分析类型和综合类型。其中综合类型应用是本次搭建云平台进行迁移上云的验证对象,这种类型应用既要求非常高的实时性,又有较大的数据吞吐量负载[9-11]。

本次实验搭建的云平台技术架构如图1所示。

云平台技术架构由“云计算基础设施”层和 “云计算操作系统”层组成,前者实现硬件资源的池化,后者实现池化后虚拟资源的管理,并为迁移至混合云平台的应用提供“云操作系统”。这两层也是在本实验中国产化的关键技术攻关重点[12]。

在搭建国产化混合云平台时,服务器选用基于进阶精简指令集(ARM,advanced risk machine)技术的处理器,资源虚拟化选用基于内核的虚拟机(KVM,kernel-based virtual machine)和OpenStack的云平台,应用服务化选用基于Docker和Kubernetes的容器云平台、“云操作系统”及宿主机操作系统均选用基于Linux内核的服务器版等使用国内主流软硬件开源技术研制的产品,且为较成熟、有一定市场占有率的国产品牌[13-14]。

为提升基于国产化混合云平台数据实时传输性能,解决时统应用要求延时不大于8 ms,组播应用丢包率(含数据包乱序情况)要求不大于10-6个/s的不达标问题,提出了一种基于混合云平台的数据实时处理方法。主要从以下3个方面考虑:

1)实时性。在虚拟机和容器中综合使用了基于直接内存访问(DMA,direct memory access)和系统内存管理单元(SMMU,system memory management unit)的内存地址映射透传技术,实现网卡和时统卡等外部设备不通过处理器而直接与虚拟机或者容器内的系统内存交换数据,从而缩短网口传输数据的等待时间和时统卡延时,提高数据访问实时性。

2)稳定性。在虚拟机和容器的云资源管理平台上,使用绑核技术,即时敏性业务所在的虚拟机或者容器可以独占处理器(CPU,computer processor unit)资源,实现核调度策略的自主可控,优化云资源管理的调度机制,提高时敏性等关键业务的稳定性[15-16]。

3)高带宽。首先在网卡上应用单根虚拟化(SR-IOV,single root-input/output virtualization)技术,实现网卡虚拟化由物理网卡自行实现,而不是依赖其他虚拟化技术实现。SR-IOV通过让每个虚拟网口都具有固化在网卡上的独立数据缓存空间、中断、内存直接访问数据流,且不需要虚拟化管理程序(比如虚拟化技术的中间层)的协调干预,实现大幅提升网络吞吐性能。其次应用MAC虚拟网卡(MACVLAN,MAC virtualization)技术,实现当在同一块以太网卡虚拟出来的虚拟网口之间进行数据传输时,不需要先将数据经由这块物理以太网卡传输到外部的交换机,再由交换机传回到这块物理以太网卡才能送至指定的目标虚拟网口,而是在这块物理以太网卡内部完成数据的传送。SR-IOV明显提高同一个物理机内,不同虚拟机或者容器之间的数据传输速度,达到缩短延迟的目的[17-18]。

2 混合云平台硬件设计

2.1 混合云平台硬件环境架构

2.1.1 硬件环境

1)服务器A:7台,64颗飞腾2000+,256 GB内存,10 G光纤网卡;

2)服务器B:5台,64颗飞腾2000+,256 GB内存,1 000 MBaseT网卡;

3)交换机:千兆交换机4台和万兆交换机1台。

网络设备、服务器和访问终端部署如图2所示。

图2 云平台硬件环境结构图

其中:

1)“汇聚交换机”实现跨网段访问;

2)“终端接入交换机”提供外接终端访问后端服务器的网段192.168.2X.X;

3)“核心/业务交换机”提供万兆业务网段192.168.4X.X;

4)“管理交换机”提供管理网段192.168.2Y.X;

5)“业务01交换机”通过VLAN功能提供业务网段192.168.3X.X和192.168.4X.X;

6)“服务器A万兆”分别与“核心/业务交换机”“管理交换机”相连,实现测控业务运行在万兆192.168.4X.X网段,日常管理运行在192.168.2Y.X网段;

7)“服务器B千兆”分别与“业务01交换机”“管理交换机”相连,实现测控业务运行在192.168.3X.X网段,日常管理运行在192.168.2Y.X网段;

8)“服务器C千兆”分别与“业务01交换机”“管理交换机”相连,实现测控业务运行在192.168.4X.X网段,日常管理运行在192.168.2Y.X网段;

9)“访问终端”通过192.168.2X.X网段,经由“终端接入交换机”“核心/业务交换机”和“汇聚交换机”访问接入各个网段的后端服务器。

2.1.2 操作系统

目前4种模型在使用不同的优化措施的前提下,全部通过适配验证。每种模型的操作系统配置如下:

1)“物理机”:LINUX实时操作系统;

2)其他3种模型“物理机+虚拟机”“物理机+容器”和“物理机+虚拟机+容器”,LINUX非实时操作系统。

4种模型的软件版本为:

1)固件:最新版本;

2)操作系统:LINUX非实时服务器版操作系统,“物理机”模型使用实时服务器版操作系统,虚拟云专用服务器版操作系统(部署虚拟机的宿主机)。

2.2 混合云平台性能硬件调优技术

验证前针对在混合云平台上部署组播、时统这类时敏性应用做了大量的调研工作,经过讨论,将实时性性能指标定为时统应用延时不大于8 ms,组播应用丢包率(含数据包乱序数量)不大于10-6个/s,在硬件层面主要应用以下两种关键技术:

1)外部设备透传技术,即物理机和虚拟机分别支持DMA和SMMU技术。

外部设备透传技术是指输入/输出设备(如网卡、时统卡)与总线之间的地址转换桥,实现直接内存存取。基于国产化处理器飞腾是ARM服务器架构不同于基于英特尔X86架构的服务器,在虚拟机中的网口和时统卡应用DMA时,服务器必须嵌入系统内存管理单元SMMU,并且需要上层的虚拟化技术(如KVM)支持才能提高虚拟机中虚拟网卡传输速度以及缩短时统卡的延时。DMA与SMMU协同工作的原理描述如下:

(1)DMA提供网卡和时统卡等外部设备不通过CPU干预而直接与系统内存交换数据的接口。外设可以通过调用DMA接口,将数据批量直接保存到内存的指定地址,然后再发送一个中断通知CPU读取并处理。整个传输存储过程不占用CPU时间片,不但可以及时启动数据传输过程,而且减少CPU为了等待数据传输而产生的空闲时间,提高了CPU使用率[19]。

(2)在虚拟化场景中(如图3所示),所有的虚拟机都运行在中间层上,每个虚拟机访问的内存地址是虚拟机内存的物理地址,并非实际的物理地址(即宿主机的内存物理地址),导致虚拟机无法正常地将连续的物理地址分给外部设备使用。

图3 虚拟化场景

因此,引入了系统内存管理单元SMMU解决上述问题,支持基于ARM架构的飞腾处理器实现虚拟化扩展。它提供3种阶段的内存地址转换:阶段1是转换虚拟地址到物理内存地址,阶段2是转换虚拟内存地址到中间内存物理地址,或者(阶段1+阶段2)转换虚拟内存地址到中间内存物理地址再到物理内存地址[20-21]。

2)外部设备支持SR-IOV技术:SR-IOV技术是一种基于硬件的虚拟化解决方案,可以提高性能和伸缩性。SR-IOV标准将一个快速外设组件互连(PCIe,peripheral component interconnect express)的网络控制器虚拟化成多个PCIe设备,并且每个虚拟化设备可以直接分配给一个虚拟机,允许在虚拟机之间高效共享一个PCIe设备。由于这个虚拟化过程是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。根据该标准创建的新设备可允许将虚拟机直接连接到 I/O 设备,越过了虚拟化(KVM)的中间层和虚拟交换机层,带来低延迟和接近线缆的速度,非常适用于对延迟敏感的组播应用。单个PCIe 资源启用SR-IOV后可供许多虚拟机共享,每个虚拟化后的设备为所属虚拟机提供独立的内存空间、中断以及DMA流,并且还使用共享的通用资源(例如以太网端口)。这样,每个虚拟机都可访问唯一的资源,不需要虚拟化管理程序(比如虚拟化技术KVM的中间层或者容器化技术的Docker等)的协调干预,从而大幅提升网络吞吐性能。

使用SR-IOV需要满足以下条件:

1)处理器需要支持系统内存管理单元;

2)固件需要支持系统内存管理单元;

3)处理器根桥需要支持访问控制服务或者等价特性;

4)PCIe设备需要支持访问控制服务或者等价特性,否则只能分配给1台虚机。

在实践验证过程中,为了应用上述两项技术,除了在硬件层中选用支持DMA和SMMU的CPU飞腾2000+,遵循SR-IOV标准的网卡和时统卡;在软件层对服务器固件、操作系统和虚拟化云平台相关参数进行调试,并改进时统卡驱动程序以实现其中断越过KVM中间层直达虚拟机。因此外部设备透传技术和SR-IOV技术尽管隶属于硬件技术,也需要软件配合才能成功启用,达到云计算基础设施层降低延时、提高吞吐量的目的。

3 混合云平台软件设计

3.1 混合云平台软件配置

实践验证的混合云平台软件配置如下:

1)虚拟化平台:基于KVM开源虚拟化技术框架;

2)容器云平台:基于Docker开源服务化技术框架;

3)验证工具以及应用:“物理机”“物理机+虚拟机”“物理机+容器”和“物理机+虚拟机+容器”4种模型支持实时业务运行的验证环境,运用业务组提供的时统测试程序和组播测试程序作为验证工具模拟真实应用场景、实时监控执行状态、采集测试数据形成验证报告。

3.2 混合云平台软件性能调优技术

经过反复实践验证,软件层面主要应用以下3种关键技术:

1)虚拟机绑核,即物理处理器与虚拟处理器固定绑核:虚拟机绑核基于KVM虚拟化技术,当虚拟机中对单颗CPU进行虚拟化形成的逻辑处理器(vCPU,virtualizedCPU)数量不是很多时,可以通过将vCPU与指定的CPU绑定的方式提高虚拟机性能。基于KVM虚拟出来的虚拟机不仅运行在指定的单个或者多个vCPU上,并且独占指定的CPU资源,规避了与其他虚拟机共享CPU计算资源,减少KVM调度CPU时间片带来的时间耗费,达到提高虚拟机性能的目的。因此,虚拟机绑核技术是操作系统级的性能调优技术。

2)MACVLAN技术:MACVLAN提供了网卡链路层的虚拟化抽象,与SR-IOV和容器技术结合后,可以明显提高使用同一块以太网卡虚拟出来的虚拟网口的虚拟机或者容器之间数据传输的速度,适用于提高组播应用的性能。

基于这种技术虚拟化形成的网口拥有4种模式:桥接模式、虚拟以太网口聚合模式、私有模式和透传模式。

容器云采用的是桥接模式如图4所示,实现了当在同一块以太网卡虚拟出来的虚拟网口之间进行数据传输时,不需要先将数据经由这块物理以太网卡传输到外部的交换机,再由交换机传回到这块物理以太网卡才能送至指定的目标虚拟网口,而是在这块物理以太网卡内部完成数据从源虚拟网口到目标虚拟网口的传送,达到缩短延迟的目的。

图4 MACVLAN桥接模式

3)容器资源绑定技术,即容器与CPU、内存固定绑定:容器资源绑定技术与虚拟机的绑核技术类似,将容器与CPU、内存资源进行捆绑,容器被设置运行在指定的CPU或vCPU上、使用指定的内存空间,避免与其他多个容器竞争计算资源。为了充分发挥基于ARM架构的处理器性能,通常使用非均匀内存访问(NUMA,none-uniform memory access)架构加快CPU访问内存的速度。在NUMA架构中,CPU访问本地内存的速度比非本地内存(即通过NUMA总线,跳转到其他CPU的本地内存)明显快一些。NUMA架构通常采用环形总线,鉴于同一时刻只能一颗CPU占用总线,CPU需要得到Token令牌才允许占用总线传输数据,数据传输结束后释放Token。在频繁访问非本地内存的情况下,CPU会因等待Token令牌而造成内存读写延时。通过容器化技术,将CPU与本地内存固定捆绑,形成相对独立的运行环境,为实时性业务提供独占的计算资源。容器资源绑定技术相对虚拟机绑核而言,是进程级调优技术。

4 实验结果与分析

4.1 实验步骤和方法

支撑实时业务的混合云平台测试目标应满足以下指标要求:

1)时统业务延时<8 ms,并持续运行48 h;

2)组播业务丢包率<10-6个/s,并持续运行48 h;

3)云平台在硬件层面具备普适性,即两个品牌的服务器均支持;

4)云平台在软件层面具备版本一致性,即固件、操作系统(含内核)版本统一。

实验按照从低到高分层适配的原则,采取递进式测试方法推进。从低到高的层级为:硬件、操作系统、虚拟机、容器和业务应用,性能优化技术在每个层级上的验证路径如图5所示。实验步骤如下:

图5 混合云平台性能优化技术路径

1)排查硬件故障,保证主机、交换机、网线等硬件要素的正常工作;

2)在两个品牌服务器上分别按照“物理机”“物理机+虚拟机”“物理机+容器”和“物理机+虚拟机+容器”顺序搭建混合云平台模式;

3)在每个混合云平台模式上单独测试组播业务模拟程序和时统业务模拟程序;

4)在每个混合云平台模式上组合测试组播业务模拟程序和时统业务模拟程序。

按照上述步骤开展实验可以提高排查效率,快速锁定故障点所在的层级,进而对该层级的调优技术执行有针对性的修正。

实验模拟实时业务场景如图6所示,部署3个业务节点A、B和C。节点A模拟组播发包业务,节点B模拟组播同时接收与发送业务,节点C配置时统卡模拟时统和组播接收业务。组播吞吐量为单路680 Mbps,验证时模拟组播业务峰值情况,即节点A并发30路,节点B接收30路的同时发送30路,节点C接收30路。

图6 模拟实时业务场景

在测试过程中对上述场景测试了多个用例,这些用例覆盖了两个品牌服务器,4个混合云模式,共8个混合云测试模型,其关键软硬件配置描述如表1所示。

表1 8个混合云测试模型关键软硬件配置

4.2 实验数据

经过应用上述5种软硬件调优技术,8个混合云模型的测试结果均满足指标要求,监测结果示例如图7所示。

图7 监测结果示例

实验数据总结如表2所示。

表2 实验数据总结

4.3 实验结果与分析

可以看出“物理机”和“物理机+容器”两种模式的测试结果优于其他两种模式,而且4种模式都满足实时性能指标要求且优于指标要求,得出时敏性业务可以迁移上国产化混合云平台的结论。

通过分析得出4个混合云模型的优劣势如表3所示。

表3 混合云模型优劣势

5 结束语

综上所述,实践共验证8个混合云测试模型。这些场景为了达到用户业务实时性的要求,多多少少都需要优化,比如:调整系统参数,CPU的绑核,容器的绑核、時统卡驱动的优化等,对原有云平台的功能会有以下影响:

1)造成了虚拟云的集群高可靠性使用受限。例如:经过CPU绑核后,虚拟机无法迁移而只能依赖容器的集群实现高可用。当一个容器发生故障时,容器集群会在另外一个指定的虚机上启动这个容器。承载这个容器的目标虚拟机必须预先绑核而且绑核的数量需与源虚拟机一致,才能在保证性能的前提下实现高可用;

2)对业务应用开发的影响。由于飞腾FT2000+不支持时统卡的中断透传到虚拟层,导致时统业务应用在虚拟机里运行的性能无法达到时延要求。经改进该卡的驱动后虽然满足了性能要求,但是在一个虚拟机中只能运行一个时统业务进程,因此需要软件研发人员做相应调整。

3)对云平台稳定性的影响。目前参加验证的固件、内核的版本,除了“物理机”模型,其他模型的操作系统,如LINUX和虚拟化专用操作系统,均为内测版,固件也是为此验证实践而专门研发的非工程化版本。

4)若需要将实验验证中的性能调优技术大规模推广,需要产品定制化程序。实验中优化相关的步骤大部分是专家现场调配,并未经过反复重现与定型,暂未形成体系化标准化的操作手册或者可发布产品版本。如果实施大规模统一部署,需要服务器厂商进一步固化版本,生成补丁。

猜你喜欢

交换机内存虚拟化
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
“春夏秋冬”的内存
基于OpenStack虚拟化网络管理平台的设计与实现
修复损坏的交换机NOS
对基于Docker的虚拟化技术的几点探讨
虚拟化技术在计算机技术创造中的应用
使用链路聚合进行交换机互联
存储虚拟化还有优势吗?
PoE交换机雷击浪涌防护设计
罗克韦尔自动化交换机Allen-Bradley ArmorStratix 5700