Skybiubiu

1.CPU虚拟化

CPU虚拟化需要解决的两个问题:

  • 如何模拟CPU指令(所有敏感指令)?

    • 敏感指令:可以读写系统关键资源的指令
    • 特权指令:绝大多数的敏感指令是特权指令,特权指令只可以在内核态执行

    CPU虚拟化漏洞:x86架构存在19条敏感指令

  • 如何让多个虚拟机共享CPU?

    • 利用与Native操作系统类似的机制—通过定时器中断,在中断触发时陷入VMM,从而根据调度机制进行调度。

CPU虚拟化类型:

  • 硬件辅助的虚拟化

  • 全虚拟化

  • 半虚拟化

    FusionCompute使用的是硬件辅助的全虚拟化

CPU与vCPU的对应关系:vCPU数 = 总线程数(路数*内核数*2)- 预留CPU数

2.内存虚拟化

内存虚拟化的问题:

  • Native操作系统对内存的认识与管理达成以下共识

    • 内存都是从物理地址0开始的
    • 内存都是连续的
  • 内存虚拟化需要解决的两个问题:

    • 从物理地址0开始的:物理地址0只有一个,无法同时满足所有客户机从0开始的要求
    • 地址连续:虽然可以分配连续的物理地址,但是内存使用效率不高,缺乏灵活性

内存虚拟化:把物理机的真实内存统一管理,包装成多个虚拟机的内存给若干虚拟机使用。KVM通过内存虚拟化共享物理系统内存,动态分配给虚拟机。

映射关系:HPA ←→ HVA ←→ GPA ←→ GVA (宿主机与虚拟机之前的物理内存/虚拟内存之间的映射页)

3.I/O虚拟化

I/O虚拟化:做好隔离减轻虚拟化带来的I/O开销。

  1. 全虚拟化-无需安装特定驱动(使用的原生驱动),性能差

  2. 半虚拟化-需要安装特定驱动,性能好

    FC 6.3.1+的版本,使用的都是半虚拟化,所以没装驱动=没有对应设备

4.虚拟化的功能特性

CPU-内存

  • 预留:资源留给特定虚拟机,其他虚拟机无法使用
  • 限制:设置特定虚拟机可使用的资源量
  • 份额:当资源不够用的时候,按比例分配

内存复用(三种方式)

  • 内存共享,写时复制:共享一个空的内存页,要写的时候做复制

  • 内存置换:长时间不用的放到数据存储

  • 内存气泡:通过气泡进程将VM1的空闲内存给VM2用

    通过内存复用,可以使得主机内存超额分配。

虚拟机HA(高可用)

  • 虚拟机热迁移是后续动态资源调度和分布式电源管理技术的基础

  • 支持主机、虚拟平台、虚拟机内部多种故障场景的检测和虚拟机恢复

  • 支持集中控制HA和集群自治HA两种机制,可自选

  • 可设置HA心跳消息的网络平面,降低网络压力

  • 多种故障判断机制,避免漏判、误判故障

  • 支持共享存储与本地存储虚拟机HA

虚拟机热迁移

  • 特点:虚拟机磁盘数据位置不变,只更改映射关系
  • 适用场景:可容忍短时间终端,但是需要快速恢复业务(例如轻量级数据库/桌面云业务)

动态资源调度 DRS

  • 特点:

    • 同一集群内,VM由系统根据策略自动负载均衡
    • 负载均衡算法优化,避免VM无效迁移
  • 适用场景

    • 负载均衡确保业务性能
    • 削峰填谷,避免高峰期的拥塞

NUMA亲和性调度

  • 系统会根据虚拟机配置、NUMA高级参数以及物理主机NUMA配置自动计算虚拟机NUMA拓扑结构并设置虚拟机NUMA与物理NUMA亲和性,使虚拟机内存访问性能达到最优

DPM分布式电源管理

  • 特点:迁移低负载CNA到高负载CNA,下电

  • 适用场景

    • 夜间低负载,自动迁移,下电空闲主机
    • 日间业务上升,自动上电,迁移虚拟机到新上电的主机

IMC

  • 设置集群的IMC策略,使虚拟机可以在不同CPU类型的主机之间进行迁移。

  • IMC可以确保集群内的主机向虚拟机提供相同的CPU功能集,即使这些主机的实际CPU不同,也不会因CPU不兼容而导致迁移虚拟机失败。

  • 设置集群IMC策略时,如果集群中有主机或虚拟机,则必须满足下面的条件:

    • 集群下主机的CPU功能集必须等于或高于设置的目标基准功能集。
    • 集群下运行或休眠状态的虚拟机CPU功能集必须等于或低于目标基准功能集。如果存在不满足条件的虚拟机,需要将该虚拟机关机或迁移出该集群后设置。

规则组

  • 特点:设定规则组可以控制虚拟机与虚拟机、虚拟机与主机之间的位置关系,以满足不同应用场景的需求

  • 类型

    • 聚集虚拟机:列出的虚拟机必须在同一主机上运行
    • 互斥虚拟机:列出的虚拟机必须在不同主机上运行
    • 虚拟机到主机:虚拟机组的成员是否能在特定主机组的成员上运行

分类:

技术点:

相关文章: