FusionCpapute灵活的结构:分为两部分,一部分一个是。,当主机出现故障时,虚拟磁盘可以在后端存储中找到。
虚拟化是什么?
虚拟化是软件中模拟硬件的一种技术,通过软件定义将多个物理设备抽象成逻辑设备,抽象成多个逻辑设备,实现精细管理资源,虚拟化是一个抽象层,打破物理硬件与操作系统之间的硬连接,实现上操作系统和底硬件解耦,操作系统资源来自资源池。
虚拟化本质
-
分区:虚拟化层具有划分每个虚拟机独立虚拟资源的能力。每个虚拟机可以运行一个单独的操作系统,可以看到虚拟化层提供的虚拟硬件。
-
解决问题:
-
防止资源过度分配
-
每台虚拟机都是独立的操作系统,不相互影响,使操作系统认为自己在服务器上运行。
-
-
-
隔离:通过分区建立的逻辑隔离措施,防止相互影响。(隔离前有分区)
-
解决问题:虚拟机故障不会导致其他虚拟机故障。
-
-
封装:意味着整个虚拟机(硬件配置、BIOS、设置,磁盘,CPU、内存等)都存储在文件或文件夹中,只需复制文件即可复制虚拟机。
-
与硬件独立性相比:由于包装的原因,虚拟机变成了文件和文件夹。 虚拟机迁移只需将配置文件和磁盘文件复制到另一个主机。不管你的底部硬件是否兼容,底部硬件之间的差异都是Hypervisor给屏蔽了,只需要知道目的的主机是否存在相同的Hypervisor
计算虚拟化技术的分类
分类标准 | 分类型 | 步骤详解 |
---|---|---|
虚拟化对象 | CPU虚拟化 | 目标是虚拟机上的指令可以正常执行,效率接近物理机 |
虚拟化对象 | 内存虚拟化 | 目标是隔离虚拟机内存空间,让每个虚拟机都认为自己拥有整个内存地址,效率可以接近物理机 |
虚拟化对象 | I/O虚拟化 | 目标不仅是让虚拟机访问它们所需要的I/O资源,做好他们之间的隔离,更重要的是减少虚拟化带来的费用 |
虚拟化过程 | 全虚拟化 | 使用VMM实现CPU、内存、设备I/O虚拟化,而Guest OS额外的计算机费用 |
虚拟化过程 | 半虚拟化 | 使用VMM实现CPU内存虚拟化,设备I/O虚拟化由Guest OS实现。需要修改Guest OS,使其能够与VMM协同工作。这种方法兼容性差,但性能好 |
虚拟化过程 | 硬件辅助虚拟化 | 在硬件(主要使处理器)的支持下,实现高效的全虚拟化。这种方法不需要修改Guest OS,该技术将逐步消除软件虚拟化技术之间的差异,成为未来的发展趋势。 |
CPU虚拟化原理-虚拟化问题
-
CPU虚拟化需要解决两个问题
-
如何模拟CPU指令(所有敏感指令)
-
敏感指令:可读写系统关键资源的指令称为敏感指令
-
特权指令:绝大多数是特权指令、特权指令、特权指令只能在处理器的最高特权级别(内核状态)执行
-
如何让多个VM共享CPU
-
利用与Native类似的操作系统机制通过定时器中断,中断触发时陷入VMM,根据调度机制进行调度。
-
-
-
CPU虚拟化
-
FUsion Compute计算虚拟化技术采用KVM技术。KVM的CPU虚拟化就是居住CPU辅助全虚拟化方案需要CPU支持虚拟化特性
虚拟机共享CPU
-
虚拟机VM共享CPU
-
在中断触发时,使用类似于原始操作系统的机制——通过定时器中断VMM,根据调度机制进行调度
-
内存虚拟化问题
-
Native操作系统对内存的理解和管理达到以下两点:
-
内存从物理地址0开始
-
内存是连续的
-
-
内存虚拟化需要解决两个问题:
-
从物理地址0开始:只有一个物理地址0,不能同时满足所有客户机从0开始的要求;
-
连续地址:虽然连续物理地址可以分配,但内存使用效率低,缺乏灵活性。
-
物理机器的物理内存
-
物理机器的物理内存:H(物理机)P(物理内存)A(内存)
-
物理机器的虚拟内存:H(物理机)V(虚拟内存)A(内存)
-
虚拟机的物理内存:G(虚拟机)P(物理内存)A(内存)
-
虚拟内存:G(虚拟机)V(虚拟内存)A(内存)
影子页表
缺陷:
-
实现难度大
-
虚拟机对应的页表越多。过多的影子页表会导致物理成本高。
简介:
-
由于宿主机MMU内存访问不能直接装载客户机页表,因此客户机访问宿主机物理内存时,需要多次地址转换。也就是说,客户机虚拟地址首先根据客户机页表进行(GVA)转换为客户机物理地址(GPA),然后再通过客户机物理地址(GPA)到宿主机虚拟地址(HVA)它们之间的映射转换为宿主机的虚拟地址,最后根据宿主机的页面表将宿主机的虚拟地址(HVA)转换成宿主机物理地址(HPA)通过影子页表,则可以实现客户机虚拟地址到宿主机物理地址的直接转换。
技术:
-
影子页表最初是通过软件生成的,用影子列表转换会占用内存。
-
Intel的CPU提供了EPT(Extended Page Tables,扩展页表)技术,直接支持硬件GVA->GPA->HPA地址转换降低了内存虚拟化的复杂性,进一步提高了内存虚拟化的性能。
I/O虚拟化(Inpwt/owtpwt)
-
I/O虚拟化可视为位于服务器组件的系统和各种可用性I/O处理单元之间的硬件中间件层使多个guest有限的外设资源可以重用
-
设备虚拟化(I/O虚拟化)的过程是模拟这些寄存器和内存的设备GuestOS对I/O通过软件模拟设备行为访问端口和寄存器。
-
再QEMU/KVM可用于客户机的设备大致可分为三类:
-
模拟设备:完全由QEMU纯软件模拟设备
-
Virtio设备:实现VIRTIOAPI半虚拟化设备
-
PCI直接分配设备(PCI device assignment)
-
-
设备发现:
-
需要控制虚拟机可访问的设备
-
-
访问截获
-
通过I/O端口或者MMIO访问设备;
-
设备通过DMA与内存进行数据交换
-
I/O虚拟化-全模拟
-
使用软件完全模拟特定设备
-
保持一样的软件接口,如:PIO、MMIO、DMA、中断等
-
可以模拟出跟系统中的物理设备不一样的虚拟设备
-
-
每次I/O操作需要多次上下文切换
-
VM<->Hypervisor
-
Qemu<->Hypervisor
-
-
软件模拟的设备对不影响虚拟机中的软件栈
-
原生驱动
-
I/O虚拟化-virtio
-
虚拟出特殊的 设备
-
特殊的设备驱动,包括VM中的Front-end驱动和主机上的Back-end驱动
-
Front-end和Back-end驱动之间的高效通信
-
-
减少VM和主机的数据传输开销
-
共享内存(Virt RING)
-
Batched I/O
-
异步事件通知Eventfd轻量级进程间“等待/通知”机制
-
I/O虚拟化
-
I/O虚拟化可以被看作是位于服务器组件的系统和各种可用I/O处理单元之间的硬件中间件曾公,使得多个Guest可以复用有限的外设资源
-
设备虚拟化(I/O虚拟化)的过程,就是模拟设备的这些寄存器和内存,截获GuestOS对IO端口和寄存器的访问,通过软件的方式来模拟设备行为。
-
再QEMU/KVM中,客户机可以使用的设备大致可分为三类:
-
模拟设备:完全由QEMU纯软件模拟的设备
-
Virtio设备:实现VIRTIO API的半虚拟化设备
-
PCI设备直接分配i(PCI device assignment)
-
灵活管理架构
技术特点与价值
-
每个逻辑群支持128物理机,适用于高性能、大规模业务群部署,江都冗余物理机比例
-
每逻辑集群支持800台虚拟机,使用桌面云等规模大、任务要求不高业务部署
-
高可用性设计,VRM(虚拟化部署或物理部署)主备部署,保证系统可用性。也可以单节点部署
-
支持GPU虚拟化,GPU直通
-
应用场景:
-
适用于虚拟化环境下运行的工程制图(ProE\Catia\AutoCAD)、媒体制作、3D游戏、GIS等应用
-
工业设计、多媒体编辑,能源行业、金融服务与贸易,医疗成像系统,教育行业的最佳实践
-
提高虚拟化环境下高性能图形图像应用体验
-
-
关键技术&价值特性
-
物理GPU再硬件支持虚拟机通过绑定GPU直接访问物理GPU的部分硬件资源
-
基于NVIDIA GRID 卡提供GPU虚拟化,提升图形应用体验
-
支持的多媒体编程接口:OpenGL、DiretX
-
支持AERO特效、多显示器、DXVA视屏加速
-
-
兼容行业也特殊操作系统
-
兼容一个新的操作系统,需要厂商提供胚胎的PV驱动程序(指tools工具),华为具备PV驱动开发能力。Fusion Compute除了兼容主流的Windows、Linux操作系统之外,还兼容国产中标的操作系统(特定的版本可能需要定制驱动)
支持在线调整CPU、内存、网卡
技术原理:vRAM,vCPU不仅支持离线添加/删除,支持在线添加
技术特点:平台支持在虚拟机运行情况下调整CPU和内存条规格,虚拟机不需要重启即可生效
适用场景:根据业务需要,灵活调整虚拟机的CPU、内存数量配置
应用价值:
-
根据虚拟机的需求,灵活调整其配置
-
纵向扩展有效保证单个虚拟机QoS
-
与横向扩展有机结合,保证集群QoS
内存复用(内存复用时,虚拟机无感知)
-
内存共享:虚拟机之间共享统一物理内存空间,此时虚拟机仅对内存做只读操作
-
写时复制:当虚拟机需要对内存进行写操作时,开辟另一内存空间,并修改映射
-
内存置换:虚拟机长时间未访问的内存内容被置换到存储中,并建立映射,当虚拟机再次访问该内存内容时再置换回来
-
内存气泡:Hypervisor通过内存气泡将较为空闲的虚拟机内存释放给内存使用率较高的虚拟机,从而提升内存利用率
-
技术特点:华为虚拟化平台,通过只能复用以上三种技术将内存复用比提升至150%,领先C等友商
-
应用价值:同等内存资源条件下,虚拟机密度提升150%,降低50%的硬件(内存)采购成本
内存复用的占用比为120%--150%,这个范围内的占用比都为正常的
NUMA亲和性调度
虚拟机HA
当物理主机的CMA节点发生故障时,这台物理主机上的虚拟机可以迁移到其他的物理节点上。
虚拟机的热迁移
虚拟机处于开机状态时,从某一个物理主机中迁移到另一个物理主机中,同时业务不中断
技术特点:
-
基于内存压缩技术,虚拟机热迁移效率提升1倍。
-
虚拟机磁盘数据位置不变,只更改映射关系
适用场景
-
可容忍短时间中断,但必须快速恢复业务,比如轻量级数据库业务,桌面云业务。
动态资源调度
-
技术特点:
-
同一集群内,VM由系统根据策略自动负载均衡。
-
负载均衡算法优化,避免VM无效迁移
-
-
适用场景
-
负载均衡确保业务性能。
-
削峰填谷,避免高峰期的拥塞
-
DPM分布式电源管理
(对比上图少了两台虚拟机,此操作称为下电操作)
-
技术特点:
-
系统自动选择合适的物理机上下电,减小迁移VM数量。
-
保证小部分物理机处于休眠状态,以快速满足新增业务所需的资源
-
-
适用场景
-
夜间低负载,自动迁移虚拟机,下电空闲主机。
-
日夜业务需求上升,自动上电主机,迁移虚拟机到新上电主机。
-
IMC
-
设置集群的IMC策略,使虚拟机可以再不同CPU类型的主机之间进行迁移。
-
IMC可以确保集群内的主机向虚拟机提供相同的CPU功能集,即使这些主机的实际CPU不同,也不会因CPU不兼容而导致迁移虚拟机失败。
-
设置集群IMC策略时,如果集群中有主机或虚拟机,则必须满足下面的条件:
-
集群下主机的CPU功能集必须等于或高于设置的目标基准功能集。
-
集群下运行或休眠状态的虚拟机CPU功能集必须等于或低于目标基准功能集。如果存在不满足条件的虚拟机,需要将该虚拟机关机或迁移出该集群后设置。
-
-
聚集虚拟机:列出的虚拟机必须再同一主机上运行。
-
互斥虚拟机:列出的虚拟机必须在不同主机上运行。
-
虚拟机到主机:虚拟机组的成员是否能在特定主机组的成员上运行。