IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Fusion Compute计算虚拟化 -> 正文阅读

[系统运维]Fusion Compute计算虚拟化

FusionCpapute的架构灵活:分为两部分,一个是管理使用的主键叫VRM,一个是负责虚拟化的主键叫CNA存储独立,当主机故障时,虚机的磁盘在后端的存储中,虚机还是可以被找回来。

什么是虚拟化

虚拟化是一种在软件中仿真硬件的技术,将多个物理设备通过软件定义的方式抽象成一个逻辑设备,在抽象成多个逻辑设备,实现精细化管理资源,虚拟化是一个抽象层,打破物理硬件和操作系统之间的硬性连接,实现上层操作系统和底层硬件解耦,操作系统的资源来源于资源池。

虚拟化本质

  1. 分区:虚拟化层具备每一个虚拟机划分独立的虚拟资源的能力,每个虚拟机可以运行一个单独的操作系统,操作系统之能看到虚拟化层提供的虚拟硬件。

    • 解决问题:

      1. 防止资源的超额分配

      2. 每个虚拟机是独立的操作系统,互不影响,让操作系统以为自己运行再专用的服务器上。

  2. 隔离:通过分区所建立起来的逻辑隔离措施,防止互相影响。(先有分区,才有隔离)

    • 解决问题:一个虚拟机故障,不会导致其他虚拟机故障。

  3. 封装:意味着整个虚拟机(硬件配置、BIOS、设置、磁盘、CPU、内存等等)都存储在文件或文件夹中,只需要复制文件即可复制虚拟机。

  4. 相对于硬件独立:虚拟机应为封装的原因,变成了文件和文件夹。 虚拟机迁移只需要复制配置文件和磁盘文件到另外一个主机即可。不需要关系你底层硬件是否兼容,底层硬件的差异性被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开始的要求;

    • 地址连续:虽然可以分配连续的物理地址,但是内存使用效率不高,缺乏灵活性。

物理机的物理内存

  1. 物理机的物理内存:H(物理机)P(物理内存)A(内存)

  2. 物理机的虚拟内存:H(物理机)V(虚拟内存)A(内存)

  3. 虚拟机的物理内存:G(虚拟机)P(物理内存)A(内存)

  4. 虚拟机的虚拟内存:G(虚拟机)V(虚拟内存)A(内存)

影子页表

缺陷:

  1. 实现难度大

  2. 虚拟机越多对应的页表越多。影子页表太多会导致物理开销大。

简介:

  • 由于宿主机MMU不能直接装载客户机的页表来进行内存访问,所以当客户机访问宿主机物理内存时,需要经过多次地址转换。也即首先根据客户机页表把客户机虚拟地址(GVA)转换成客户机物理地址(GPA),然后再通过客户机物理地址(GPA)到宿主机虚拟地址(HVA)之间的映射转换成宿主机虚拟地址,最后再根据宿主机页表把宿主机虚拟地址(HVA)转换成宿主机物理地址(HPA)而通过影子页表,则可以实现客户机虚拟地址到宿主机物理地址的直接转换。

技术:

  • 原本通过软件的方式生成一个影子页表,使用影子列表转换会占用内存。

  • Intel的CPU提供了EPT(Extended Page Tables,扩展页表)技术,直接再硬件上支持GVA->GPA->HPA的地址转换,从而降低内存虚拟化实现的复杂度,也进一步提升内存虚拟化性能。

I/O虚拟化(Inpwt/owtpwt)

什么是I/O虚拟化?

  • I/O虚拟化可以被看做是位于服务器组件的系统和各种可用I/O处理单元之间的硬件中间件层,使得多个guest可以复用有限的外设资源

  • 设备虚拟化(I/O虚拟化)的过程,就是模拟设备的这些寄存器和内存,截获GuestOS对I/O端口和寄存器的访问,通过软件的方式来模拟设备行为。

  • 再QEMU/KVM中,客户机可以使用的设备大致可分为三类:

    • 模拟设备:完全由QEMU纯软件模拟的设备

    • Virtio设备:实现VIRTIOAPI的半虚拟化设备

    • PCI设备直接分配(PCI device assignment)

I/O虚拟化需要解决两个问题

  • 设备发现:

    • 需要控制各虚拟机能够访问的设备

  • 访问截获

    • 通过I/O端口或者MMIO对设备的访问;

    • 设备通过DMA与内存进行数据交换

I/O虚拟化-全模拟

通过中间一个设备来模拟鼠标动作

  • 用软件完全模拟一个特定的设备

    • 保持一样的软件接口,如:PIO、MMIO、DMA、中断等

    • 可以模拟出跟系统中的物理设备不一样的虚拟设备

  • 每次I/O操作需要多次上下文切换

    • VM<->Hypervisor

    • Qemu<->Hypervisor

  • 软件模拟的设备对不影响虚拟机中的软件栈

    • 原生驱动

I/O虚拟化-virtio

Tods使用的是virtio方式,所以安装完虚拟机后需要挂载Tods才会有网卡。

  • 虚拟出特殊的 设备

    • 特殊的设备驱动,包括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、内存、网卡

CPU在线调整需要避开window系统,window系统不支持CPU在线调整

技术原理:vRAM,vCPU不仅支持离线添加/删除,支持在线添加

技术特点:平台支持在虚拟机运行情况下调整CPU和内存条规格,虚拟机不需要重启即可生效

适用场景:根据业务需要,灵活调整虚拟机的CPU、内存数量配置

应用价值:

  • 根据虚拟机的需求,灵活调整其配置

  • 纵向扩展有效保证单个虚拟机QoS

  • 与横向扩展有机结合,保证集群QoS

内存复用(内存复用时,虚拟机无感知)

  • 内存共享:虚拟机之间共享统一物理内存空间,此时虚拟机仅对内存做只读操作

  • 写时复制:当虚拟机需要对内存进行写操作时,开辟另一内存空间,并修改映射

  • 内存置换:虚拟机长时间未访问的内存内容被置换到存储中,并建立映射,当虚拟机再次访问该内存内容时再置换回来

  • 内存气泡:Hypervisor通过内存气泡将较为空闲的虚拟机内存释放给内存使用率较高的虚拟机,从而提升内存利用率

  • 技术特点:华为虚拟化平台,通过只能复用以上三种技术将内存复用比提升至150%,领先C等友商

  • 应用价值:同等内存资源条件下,虚拟机密度提升150%,降低50%的硬件(内存)采购成本

内存复用的占用比为120%--150%在资源不争抢的时候,这个范围内的占用比都为正常的

NUMA亲和性调度

使CPU和内存来自同一个Node节点,这样可以提高虚拟机的读写性能以及运行效率。一个CPU加上6个内存条称为一个Node

虚拟机HA

当物理主机的CMA节点发生故障时,这台物理主机上的虚拟机可以迁移到其他的物理节点上。

虚拟机的热迁移

虚拟机处于开机状态时,从某一个物理主机中迁移到另一个物理主机中,同时业务不中断

技术特点:

  • 基于内存压缩技术,虚拟机热迁移效率提升1倍。

  • 虚拟机磁盘数据位置不变,只更改映射关系

适用场景

  • 可容忍短时间中断,但必须快速恢复业务,比如轻量级数据库业务,桌面云业务。

动态资源调度

  • 技术特点:

    • 同一集群内,VM由系统根据策略自动负载均衡。

    • 负载均衡算法优化,避免VM无效迁移

  • 适用场景

    • 负载均衡确保业务性能。

    • 削峰填谷,避免高峰期的拥塞

DPM分布式电源管理

(对比上图少了两台虚拟机,此操作称为下电操作)?

  • 技术特点:

    • 系统自动选择合适的物理机上下电,减小迁移VM数量。

    • 保证小部分物理机处于休眠状态,以快速满足新增业务所需的资源

  • 适用场景

    • 夜间低负载,自动迁移虚拟机,下电空闲主机。

    • 日夜业务需求上升,自动上电主机,迁移虚拟机到新上电主机。

IMC

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

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

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

    • 集群下主机的CPU功能集必须等于或高于设置的目标基准功能集。

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

DRS规则组:

  • 聚集虚拟机:列出的虚拟机必须再同一主机上运行。

  • 互斥虚拟机:列出的虚拟机必须在不同主机上运行。

  • 虚拟机到主机:虚拟机组的成员是否能在特定主机组的成员上运行。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 13:09:20  更:2022-05-09 13:12:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:58:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码