当前位置: 首页 > news >正文

(云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍

1. 虚拟化资源

1.1 虚拟化对象

  • CPU虚拟化:

    目标是使虚拟机上的指令能被正常执行,且效率接近物理机

  • 内存虚拟化:

    目标是能做好虚拟机内存空间之 间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,且效率页能接近物理机。

  • I/O虚拟化:

    目标使不仅让虚拟机访问到他们所需 要的I/O资源,而且要做好它们之间的隔离工作,更重要的是减轻由于虚拟化所带来的开销。

1.2 虚拟化过程

  • 全虚拟化:

    使用VMM实现CPU、内存、设备I/O的虚拟化,而Guest OS和计算机系统硬件都不需要进行修改。

优点缺点
不需要修改guest os虚拟化层的开销大
  • 半虚拟化:

    使用VMM实现CPU和内存虚拟化,设备I/O虚拟化由Guest OS实现。

优点缺点
虚拟化层开销小,性能好需要修改guest os
  • 硬件辅助虚拟化:

    借助硬件(主要是处理器)的支持来实现高效的全虚拟化。

    • 该技术将逐渐消除软件虚拟化之间的差别,成为未来的发展趋势。
优点缺点
让物理硬件直接支持虚拟化功能
能够识别敏感指令
需要CPU支持虚拟化

1.3 IO 虚拟化

  • 全虚拟化
    • VM–>Hypervisor–>QEMU(Domain0)–>IO设备
  • 半虚拟化
    • VM–>QEMU(Domain0)–>IO设备
  • 设备直通
    • VM–>IO设备

1.3.1 I/O虚拟化问题:

设备发现:需要控制各虚拟机能够访问的设备

访问截获:

  1. 通过I/O端口或者MMIO对设备的访问;
  2. 设备通过DMA与内存进行数据交换

1.3.2 虚拟化

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

I/O虚拟化的过程,就是模拟设备的这些寄存器和内存,解惑Guest OS对IO端口和寄存器的访问,通过软件的方式来模拟设备行为。

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

  1. 模拟设备:完全由QEMU纯软件模拟的设备
  2. Virtio设备:实现VIRTIO API的半虚拟化设备
  3. PCI设备直接分配(PCI device assignment)
1.3.2.1 I/O虚拟化-全模拟

在这里插入图片描述

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

    1. 保持一样的软件接口,如:PIO、MMIO、DMA、中断等
    2. 可用模拟出跟系统中的物理设备不一样的虚拟设备
  • 每次I/O操作需要多次上下文切换
    VM<->Hypervisor
    Qemu<->Hypervisor

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

    1. 原生驱动
1.3.2.2 I/O虚拟化-Virtio

在这里插入图片描述

  • 虚拟出特殊的设备

    1. 特殊的设备驱动,包括VM中的Front-end驱动和主机上的Back-end驱动
    2. Front-end和Back-end驱动之间的高效通信
  • 减少VM和主机的数据传输开销

    1. 共享内存(Virt RING)
    2. Batched I/O
    3. 异步事件通知Eventfd轻量级进程间 “等待/通知” 机制
1.3.2.3 PCI设备直接分配:

在这里插入图片描述

  • KVM虚拟机支持将宿主机中的PCI、PCI-E设备附加到虚拟化的客户机中,从而让客户机以独占的方式方位这个PCI设备。
  • 这样的操作不需要VMM层的参与,从而让客户机对该设备的I/O交互操作和实际的物理设备操作完全一样

KVM使用的Qeumu技术介绍:

  • QEMU是一套由法布里斯·贝拉所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。
  • Qemu有着高速度核跨平台的特性,通过KQEMU这个闭源加速器,QEMU能模拟至接近真实电脑的速度。

1.4 虚拟化架构 KVM和Xen

在这里插入图片描述

1.4.1 Xen

  • Domain0
    • 处于特权级别的虚拟机
    • 实现IO的虚拟化
    • 管理DomainU
    • 管理硬件
  • DomainU
    • 普通用户虚拟机

1.4.2 KVM

  • KVM(Kernel-based Virtual Machine)是基于内核的虚拟机
  • 架构
    • 内核态:启用KVM.KO内核模块以实现CPU和内存的虚拟机
    • 用户态:部署QEMU以实现IO虚拟机

1.5 主流虚拟化技术介绍

1.5.1 Xen虚拟化简介

Xen的Hypervisor是服务器经过BIOS启动之后载入的首个程序,然后启动一个具有特定权限的虚拟机,称之为Domain 0(简称Dom0)。

Dom0的操作系统可以是Linux或Unix,Domain 0实现对Hypervisor控制和管理功能。

在所承载的虚拟机中,Dom0是唯一可以直接访问物理硬件(如存储和网卡)的虚拟机,它通过本身加载的物理驱动,为其它虚拟机(Domain U,简称DomU)提供访问存储和网卡的桥梁

在这里插入图片描述

1.5.2 KVM虚拟化简介

KVM(Kernel-based Virtual Machine)是基于内核的虚拟机。这是一款开源软件,于2007年2月被集成到Linux 2.6.20内核中。

KVM本质是Linux内核中的虚拟化功能模块kvm.ko,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。

  • KVM中,虚拟机其实就是一个Linux进程,由CPU进行调度运行。
  • KVM运行在内核空间,提供CPU、内存的虚拟化,它本身不执行任何模拟。运行在用户空间的QEMU提供硬件I/O的虚拟化模拟。
1.5.2.1 KVM与QEMU
  • 在KVM虚拟化方案中,KVM主要用于管理CPU和内存的虚拟化,IO设备的虚拟化则由QEMU来完成。
  • QEMU是一个纯软件实现的开源(模拟)软件,它能够模拟整套虚拟机的实现,包括CPU、内存、IO设备、USB、网卡等。

在这里插入图片描述

1.5.2.2 KVM原理

KVM是Linux Kernel的一个模块, 运行在内核空间。

  • QEMU运行在用户空间,提供硬件I/O设备的虚拟化模拟。
  • Linux系统安装KVM模块后,会有如下三种运行模式:客户模式、用户模式、内核模式。

在这里插入图片描述

在这里插入图片描述

2. 云计算与虚拟化的区别

类别作用
云计算一种商业模式或服务模式
虚拟化实现云计算的重要手段之一

虚拟化技术:

  • 开源:KVM、XEN

  • 闭源:Hyper-v、vSphere、FusionCompute

3. 缩略词

VRM——————————虚拟机资源管理,会与cna进行对接,可以控制多台cna

KVM——————————虚拟机中的模块,存储在linux内核里

XEN——————————虚拟机中的内核模块,06年以前主流的虚拟机架构

libvirt——————————软件包,负责对接驱动和管理工具,它拥有多种语言的api接口,可以用根据对应语言的api直接进行管理libvirt对kvm操作

Guest Os——————————虚拟机操作系统

Huest Os——————————硬件操作系统

driver——————————硬件驱动

HPA——————————物理机的物理内存

HVA——————————物理机的虚拟内存

GPA——————————虚拟机的物理内存

GVA——————————虚拟机的虚拟内存

TLB——————————转译后备缓冲区

CAM——————————结合存储

4. ❤️HCIP专栏——前文链接

  • (云计算HCIP)价值8k的上万字学习笔记,考华为云计算HICP的有福啦!HCIP全笔记(一)本篇涵盖 云计算概述,谈及虚拟化、云计算的介绍、云服务模式、部署模式的区别和主流云计算技术
  • (云计算HCIP)价值8k的上万字学习笔记,考华为云计算HICP的有福啦!HCIP全笔记(二)本篇介绍服务器基础、硬件结构、RAID冗余阵列
  • (云计算HCIP)价值8k的上万字学习笔记,考华为云计算HICP的有福啦!HCIP全笔记(三)本篇介绍网卡、华为服务器网卡类型、电源和风扇、服务器关键技术:BIOS、IBMC、BMC、IPMI
  • (云计算HCIP)价值8k的上万字学习笔记,考华为云计算HICP的有福啦!HCIP全笔记(四)本篇介绍 存储技术、硬盘类型、存储架构:DAS、SAN、NAS等
  • (云计算HCIP)价值8k的上万字学习笔记,考华为云计算HICP的有福啦!HCIP全笔记(五)本篇介绍存储形态、RAID技术特点与工作原理、RAID的常见级别介绍
  • (云计算HCIP)价值8k的上万字学习笔记,考华为云计算HICP的有福啦!HCIP全笔记(六)本篇介绍存储协议,包含:SCSI、iSCSI、FC协议、iFCP协议、FCoE协议;FC协议与TCP协议
  • (云计算HCIP)HCIP全笔记(七)本篇介绍网络技术基础,包含:网关、交换机、路由的介绍,OSI网络参考模型、TCP/IP协议栈、TCP和UDP协议、SSH协议
  • (云计算HCIP)HCIP全笔记(八)本篇介绍网络技术基础,包含:网络交换的流程、交换机原理、VLAN技术、VLAN划分与接口类型、路由原理、路由转发流程、静态路由和默认路由
  • (云计算HCIP)HCIP全笔记(九)本篇介绍操作系统基础,内容包含:操作系统组成、分类和定义,Linux的特性结构和Linux版本分类
  • (云计算HCIP)HCIP全笔记(十)本篇介绍操作系统基础,内容包含:linux命令使用、linux文件相关命令、vim的使用、配置openEuler静态IP地址、设置主机名 等
  • (云计算HCIP)HCIP全笔记(十一)本篇介绍虚拟化技术,内容包含:虚拟化介绍、虚拟化定义、虚拟化重要概念、虚拟机类型、虚拟化的特点:分区、隔离、封装、硬件独立
  • (云计算HCIP)HCIP全笔记(十二)本篇介绍虚拟化技术,内容包含:虚拟化资源、CPU虚拟化、KUMA、KVM介绍、模拟CPU指令、敏感指令区分、内存虚拟化、TLB技术、影子页表技术

5. 💕👉博客专栏

  • Golang专栏-包含基础、Gin、Goam等知识
  • 云原生专栏-包含k8s、docker等知识
  • 从0开始学习云计算-华为HCIP证书
  • JUC专栏-带你快速领悟JUC的知识!
  • JVM专栏-深入Java虚拟机,理解JVM的原理
  • 基于Java研究 数据结构与算法-包含贪心算法、加权图、最短路径算法等知识
  • Docker专栏-上手热门容器技术Docker
  • SpringBoot专栏-学习SpringBoot快速开发后端
  • 项目管理工具的学习-设计技术:Maven、Git、Gradle等相关管理工具
  • JavaSE-全面了解Java基础
  • JS专栏-使用JS作的一部分实例~
  • 使用CSS所作的一部分案例

相关文章:

  • 终端管理系统如何助力企业简化IT管理?
  • stm32wb55rg (2) 阅读资料手册
  • 近地卫星网络 (Low Earth Orbit Satellite Networks)入门学习笔记
  • C++23 std::bind_back:一种调用包装器 (P2387R3)
  • Scratch——第20课 辗转相除法/绳子算法
  • FTP-网络文件服务器
  • Docker 容器虚拟化技术和自动化部署
  • Java面试:Spring及Spring Cloud技术深度剖析
  • 基于Springboot + vue + 爬虫实现的高考志愿智能推荐系统
  • Nacos源码—1.Nacos服务注册发现分析二
  • 驱动开发硬核特训 │ 深度解析 fixed regulator 驱动与 regulator_ops
  • Linux 命令行利用 speedtest 测速
  • MySQL 的覆盖索引是什么?
  • 8.Android(通过Manifest配置文件传递数据(meta-data))
  • 【lammps】后处理 log.lammps
  • 如何在idea 中写spark程序
  • Linux学习笔记(一):Linux下的基本指令
  • 详解RabbitMQ工作模式之简单模式
  • 天猫TP代运营服务商-品融电商:助力品牌破局增长的专业推手
  • 智慧健康养老实训室建设方案:科技引领养老健康服务人才培养
  • 西湖大学独家回应本科招生走出浙江:经过三年试点,条件成熟
  • 一季度我国服务进出口总额19741.8亿元,同比增长8.7%
  • 伊朗港口爆炸已致40人死亡
  • 原创话剧风向标!这个展演上《大宅门》《白鹿原》先后上演
  • 李在明当选韩国共同民主党总统候选人
  • 明查|把太平洋垃圾污染问题甩锅中国,特朗普用的是P过的图