[电工&电子] 渐进式解读——服务器虚拟化技术之CPU虚拟化及超分机制

[复制链接]
查看205 | 回复0 | 2024-6-14 19:34:52 | 显示全部楼层 |阅读模式
>


虚拟化技术的定义

在计算机技术中,虚拟化技术是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来,并可供分割、组合为一个或多个电脑配置环境。由此,打破实体物理结构间的不可切割的障碍,使用户可以通过更灵活的配置方式来应用这些电脑硬件资源。
虚拟化本质是指资源的抽象化,要想资源充分利用,必须把资源最小单位化(池化),这样上层应用才能按需使用资源,虚拟化不但解放了操作系统,也解放了物理硬件,大大提高了资源的利用率。

服务器虚拟化

服务器虚拟化是指将一台硬件计算机虚拟为多台逻辑计算机,在一台计算机上可同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统OS,每套操作系统OS上运行各种类型应用程序APP,各个操作系统上的应用程序在相互独立的空间内运行且互不影响,从而显著提高服务器利用率。


Hypervisor架构

Hypervisor也叫虚拟机监视器VMM(Virtual Machine Monitor),是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机。

Hypervisor是所有虚拟化技术的核心,非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统。

VMM对物理资源的虚拟可以划分为三个部分:CPU虚拟化、内存虚拟化和I/0设备虚拟化,其中以CPU的虚拟化最为关键。


物理CPU(pCPU)

CPU的英文全称是Central Processing Unit,翻译成中文就是中央处理器。其作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,有着处理指令、执行操作、控制时间、处理数据等作用,cpu就像我们的大脑,帮我们完成各种各样的生理活动。


CPU内核

内核又称为核心,是CPU最重要的组成部分。CPU中心隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接受/存储命令、处理数据都由核心执行。CPU的核数指的就是一个CPU由多少个核心组成,双核就是指包括2个独立的CPU核心单元组,四核就是指包括4个独立的CPU核心单元组,是处理各种数据的中心计算单元,多核心的处理器能够有效加强CPU的多任务处理能力,或者说减少CPU的占用率,提高计算效率。

在操作系统上安装了多个程序,这在单核CPU中,每一时刻只能执行某一道程序,处理多个程序时,这些程序是在分时的交替运行,只不过由于分时交替运行的时间非常短,给使用者的感觉是在同时运行;而在多核CPU中,一颗芯片里集成了多个CPU运算核心,相当于多个单核CPU同时工作。因此,多核处理器可以同时处理多个程序,而不用等上一个程序完成。核数越多,并行处理的程序越多,能大大的提高计算机运行的效率。

OS进程

进程是应用程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。通俗来说,进程就是程序的一次执行过程,程序是静态的,它作为系统中的一种资源是永远存在的;而进程是动态的,它是动态的产生、变化和消亡的,拥有其自己的生命周期。


OS线程

线程是系统进行运算调度的最小单位,也被称为轻量级进程,它包含在进程之中,是进程的实际运作单位,进程想要执行任务就需要依赖线程。进程中可以包含多个线程,并且一个进程中至少有一个线程。每个线程是进程中单一顺序的控制流,可以并行执行不同的任务。


多线程技术

多线程技术是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,所有线程会交替执行,后面的线程不用等待前面的线程处理完毕,进而提升整体处理性能。


超线程技术

超线程技术是一种计算机处理器技术,其能够帮助计算机提升物理处理器的资源使用效率,将一个物理处理器变成两个虚拟处理器,保证处理器一直处于繁忙状态,以便完成更多工作。

一般一个内核对应了一个线程,而超线程技术允许在每个内核上运行多个线程,更多的线程意味着可以并行完成更多的工作。当超线程技术处于激活状态时,CPU会在每个物理内核上公开两个执行上下文,这意味着,一个物理内核现在就像两个“逻辑内核”一样,可以处理不同的软件线程,较之传统的单线程内核,两个逻辑内核可以更有效地完成任务。


超线程技术实现原理

由于传统物理服务器核心在同一时间只能处理一项任务,所有负载都需要使用处理器的指令通道,但是通常指令通道的使用率并不会达到100%或者一直处于繁忙状态,造成这种现象的部分原因在于应用程序的编码和运行方式不同,此外,由于现代处理器的运行速度越来越快,已经完全超出许多应用程序的需求,因此被浪费的处理器周期越来越多。超线程技术就是充分利用了内核在等待其他任务完成时的空闲时间提高了CPU吞吐量。

超线程技术在处理器核心中添加了新的电路,能够提供额外的指令通道来共享物理处理器的执行资源,比如内存总线、处理器缓存以及处理器的执行引擎。增加的超线程电路能够将物理核心分割成两个逻辑核心,在启用超线程技术之后,每个逻辑处理器都相互独立,中断、停止和操作都独立于另外一个共享相同物理核心的虚拟处理器。当某个逻辑核心空闲时,另外一个逻辑核心将会得到更多的执行资源。

值得注意的是,在相同物理核心上启用第二个逻辑处理器并不会使得处理器的性能提升一倍,这是因为处理器的执行资源是共享的,并没有翻倍。超线程技术允许处理器在特定时间内处理更多的任务或者指令线程,但是仍然需要使用原有的物理资源完成这些任务,这是超线程架构和多核处理器(比如双核或者四核)的最大区别,多核技术拥有多个物理处理器。

利用超线程技术,能够极大提升处理器核心的指令队列工作效率,从而提高处理器的整体性能表现,此外虚拟化技术也能够受益于这种技术,这种技术允许Hypervisor为虚拟机提供之前两倍的虚拟处理器数量。


CPU虚拟化机制(vCPU)

在虚拟化技术中,对虚拟机来说,不直接感知pCPU,虚拟机的计算单元通过vCPU对象来呈现,虚拟机只看到VMM呈现给它的vCPU。在VMM中,每个vCPU对应一个VMCS结构(Virtual Machine Control Structure,虚拟机控制结构),VMCS是保存在内存中的数据结构,其包含了vCPU的相关寄存器内容及相关控制信息。当vCPU被从pCPU上切换下来的时候,其运行上下文会被保存在其对应的VMCS结构中;当vCPU被切换到pCPU上运行时,其运行上下文会从对应的VMCS结构中导入到pCPU上。通过这种方式,实现各vCPU之间的独立运行。

多核环境下虚拟机系统的两级调度框架

从虚拟机系统的结构与功能划分可以看出,客户操作系统OS与虚拟机监视器VMM共同构成了虚拟机系统的两级调度框架,虚拟机监视器VMM负责第一级调度,即vCPU在物理处理单元上的调度;客户虚拟机上的操作系统负责第二级调度,即线程或进程在vCPU上的调度 (将核心线程映射到相应的vCPU上),两级调度的调度策略和机制不存在依赖关系。vCPU调度器负责物理CPU资源在各个虚拟机之间的分配与调度,本质上是把各个虚拟机中的vCPU按照一定的策略和机制调度在物理处理单元上,可以采用任意的策略来分配物理CPU资源,满足虚拟机的不同需求。同时,vCPU可以调度在一个或多个物理处理单元执行(分时复用或空间复用物理处理单元),也可以与物理处理单元建立一对一固定的映射关系(限制访问指定的物理处理单元)。


CPU超分原理

"超分"是云计算虚拟化技术的一个必然现象,超分也是虚拟化平台的优势,它能够将可分配给客户的vCPU总数大于实际可用的物理CPU总数。因为物理机中的客户虚机不可能都处于高负荷的状态,所以适当的超分有助于资源的充分利用。但当有些持续高CPU计算场景(如渲染)平台用户量过多时,CPU超分率数值过大会严重影响物理机性能,导致业务性能卡顿,影响服务体验。

超分,就是控制处理器最大分配的vCPU资源数,比如物理资源总核数为10核,不管是在1:2还是1:3的超分情况下,当处理器已经分配的vCPU资源小于10核时,基本上虚拟机会独立占用物理CPU的时间片,性能和独享CPU性能基本一致;当处理器分配的vCPU资源是20核时,且全部都在运行,此时不管是1:2的超分还是1:3的超分,都是2个vCPU共同使用一个物理CPU的时间片,当设置的超分越高,可开出的最大虚拟机数量就越多,那么当vCPU资源分配的比较多时,就会存在物理CPU的时间片竞争,导致性能下降。如果在资源基本都分配满的情况下,过高的超分,会导致CPU调度时延的增加,CPU调度时延和CPU复用比增长对应关系是非线性的,超分太大,会导致CPU自身在多个时间片的调度消耗增加,而留给虚拟机本身的算力会大大降低,造成系统卡死或者蓝屏,因此,建议参考业务系统关键程度和负载程度,合理进行CPU的超分。(建议单台服务器上所有虚拟机vCPU核数不超过服务器物理CPU总线程的二倍)

如上图所示,假设当前物理CPU按照1:3进行vCPU的超分,某一时刻,vCPU1承载业务正常运行,vCPU2处于空闲状态,则此刻vCPU3运行需要等待一个时间片。


威努特超融合虚拟化

威努特超融合系统是一套以虚拟化技术为核心,可横向扩展的IT基础架构云操作系统,由计算虚拟化、存储虚拟化、网络虚拟化等关键组件组成,同时依托统一管理平台组件,进一步提供基础运维能力和高级网络功能。

威努特超融合采用软件定义数据中心架构,将硬件资源抽象化和池化成虚拟资源,并动态分配给云主机或云容器中运行的业务,具备软硬件解耦、应用优化、数据安全、资源弹性扩展、混合业务负载等特点,为用户提供高性能、高可用、高效率、易运维的IT基础设施平台,加速用户上云进程,为用户数据中心建设提供完整的一站式生态解决方案。

威努特简介

北京威努特技术有限公司(简称:威努特)是国内工控安全行业领军者,是中国国有资本风险投资基金旗下企业。凭借卓越的技术创新能力成为全球六家荣获国际自动化协会ISASecure 认证企业之一和首批国家级专精特新“小巨人”企业。

威努特依托率先独创的工业网络“白环境”核心技术理念,以自主研发的全系列工控安全产品为基础,为电力、轨道交通、石油石化、市政、烟草、智能制造、军工等国家重要行业用户提供全生命周期纵深防御解决方案和专业化的安全服务,迄今已为国内及“一带一路”沿线国家的4000多家行业客户实现了业务安全合规运行。

作为中国工控安全国家队,威努特积极推动产业集群建设构建生态圈发展,牵头和参与工控安全领域国家、行业标准制定和重大活动网络安全保障工作,始终以保护我国关键信息基础设施安全为己任,致力成为建设网络强国的中坚力量!

渠道合作咨询   田先生 15611262709

稿件合作  微信:shushu12121


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则