【虚拟化简介】

news2024/10/5 22:24:40

文章目录

  • 虚拟化简介
    • 什么是虚拟化?
    • Hypervisor
      • 概念
      • Hypervisor模型
    • 虚拟化技术的分类
      • 软件虚拟化和硬件虚拟化
        • 软件虚拟化技术
        • 硬件虚拟化技术
  • 参考资料

虚拟化简介

什么是虚拟化?

CPU处理能力的飞速提升。 它的另一面也就意味着, 个人单独拥有一台计算机, 从资源利用效率角度来看, 被大大闲置了的。

硬件对于软件来说,就是一堆寄存器和资源的总和。

虚拟化技术是一种资源管理技术,它可以将计算机的各种实体资源(如CPU、内存、磁盘空间、网络适配器等)予以抽象、转换后呈现出来, 以达到最大化利用物理资源的目的。
并可供分割、组合为一个或多个计算机配置环境。虚拟化技术可以将一台物理计算机虚拟为多台逻辑计算机,每个逻辑计算机可以运行不同的操作系统,应用程序可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

eg:云服务,将100台服务器硬件,提供给300个用户使用。

要实现虚拟化技术,引入了VMM中间软件层的概念。

Hypervisor

概念

Hypervisor——一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor ),即虚拟机监视器。
Hypervisors是一种软件,它可以控制物理计算机的硬件资源,并将适量的CPU、内存、磁盘空间、网络适配器等硬件资源分配给虚拟机。

Hypervisor模型

在这里插入图片描述
图 1 Hypervisor的两种模型

  • Type1(类型1): Hypervisor也叫native或bare-metal Hypervisor(裸金属管理程序)。 这类虚拟化层直接运行在硬件之上, 没有所谓的宿主机操作系统。 它们直接控制硬件资源以及guest机。 典型地如Xen(见1.4.1节) 和VMware ESX。

注:物理主机如SMP Server,称为host机;虚拟机中的OS称为guest机。

  • Type2(类型2): Hypervisor运行在一个宿主机操作系统之上, 如VMware Workstation; 或系统里, 如KVM。 这类Hypervisor通常就是宿主机操作系统的一个应用程序, 像其他应用程序一样受宿主机操作系统的管理。 比如VMware Workstation就是运行在Windows或者Linux操作系统上的一个程序而已。 guest机是在宿主机操作系统上的一个抽象, 通常抽象为进程(vCPU进程)。
    今天要详细介绍的VMM(QEMU+KVM)是类型二的Hypervisor。

虚拟化技术的分类

软件虚拟化和硬件虚拟化

软件虚拟化技术

执行方式:软件虚拟化通过VMM(Virtual Machine Monitor)层纯软件的环境来模拟执行guest机里的指令。其中QEMU可以将使用guest机指令集的二进制代码转换为宿主机指令集的二进制代码,然后交给实际的物理平台执行。

guest二进制指令—>VMM截获—>转换为host指令集的二进制代码—>实际物理平台执行
在这里插入图片描述

图 2 软件虚拟化执行方式

guest机的每一条目标平台(x86、arm)指令都会被QEMU截取, 并翻译成宿主机平台(x86、arm)的指令, 然后交给实际的物理平台(x86、arm)执行。

缺点:由于每一条都需要这么操作一下, 其虚拟化性能是比较差的, 同时其软件复杂度也大大增加。
优点:可以呈现各种平台给guest机, 只要其二进制翻译支持。

硬件虚拟化技术

执行方式:硬件虚拟化技术就是指计算机硬件本身提供能力让guest机指令独立执行, 而不需要(严格来说是不完全需要) VMM截获重定向。

在这里插入图片描述

图 3 硬件辅助虚拟化执行方式

AMD-V技术,全称AMD Virtualization,是AMD为其处理器开发的一种硬件辅助虚拟化技术。AMD-V实现了完全的硬件虚拟化,将VMM(虚拟机监视器)从Hypervisor完全转移到硬件中,提高虚拟化效率。

Intel VT技术,即Intel公司的Virtualization Technology,也是为解决纯软件虚拟化解决方案在可靠性、安全性和性能上的不足而开发的硬件辅助虚拟化技术。与AMD-V不同,Intel VT仅支持部分特性和指令集,例如用于存放虚拟机状态和控制信息的VMCS(虚拟机控制结构)等。

后文着重介绍Intel VT

  • Intel VT可以让一个CPU工作起来像多个CPU在并行运行
  • 单CPU模拟多CPU并行,可以实现单机同时运行多操作系统。
  • Intel VT虚拟化技术的实施需要处理器、芯片组、BIOS、VMM软件的同时支持,这些特定的硬件、软件必须全部到位。

优点:Guest二进制指令直接运行在物理CPU上,没有VMM截获转换,性能较高。
缺点:

  • 实现复杂,硬件虚拟化需要支持虚拟化扩展的CPU硬件,实现相对复杂。
  • 由于Guest二进制指令直接运行在物理CPU上,硬件虚拟化只能跑同架构的虚拟机。例如,基于x86硬件虚拟化的虚拟机软件不能运行在ARM架构上。

参考资料

什么是虚拟化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

没有在中国境内注册,但是在境内开展业务,或向境内提供产品或服务的,是否属于境内运营?

没有在中国境内注册,但是在境内开展业务,或向境内提供产品或服务的,是否属于境内运营? 判断是否属于“境内运营”,不以是否在境内注册为判断依据,如果没有在我国境内注册的网络运营者,但在我国境…

基于HSV色度空间的图像深度信息提取算法FPGA实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 ​编辑2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将FPGA结果导入到matlab显示结果如下: matlab的对比测试结果如下: 2.算法运行软件版本 vivado2019.2 matlab2022a…

FMEA可以应用在什么行业——FMEA软件

免费试用FMEA软件-免费版-SunFMEA FMEA,即故障模式与影响分析(Failure Modes and Effects Analysis),是一种预防性的质量工具,用于识别产品或过程中潜在的故障模式,评估其对系统的影响,并优先排…

Python对象作为参数传递到函数/方法的机制

以代码为例 class Person:name Noneage None# 分析对象作为参数传递到函数/方法的机制 def f1(person):print(f"2. person的地址:{id(person)}")person.name "james"person.age 1p1 Person()p1.name "jordan" p1.age 21 pri…

24计算机考研调剂 | 【官方】桂林理工大学(11自命题、22自命题)

桂林理工大学信息工程与科学学院招收调剂 考研调剂补充信息 一、招收专业 计算机科学与技术(学硕)、软件工程(学硕)、计算机技术(专硕)、人工智能(专硕)、软件工程(专…

使用 Python 编写网络爬虫:从入门到实战

网络爬虫是一种自动化获取网页信息的程序,通常用于数据采集、信息监控等领域。Python 是一种广泛应用于网络爬虫开发的编程语言,具有丰富的库和框架来简化爬虫的编写和执行过程。本文将介绍如何使用 Python 编写网络爬虫,包括基本原理、常用库…

C语言之我对结构体与联合体的认识

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

APP广告变现初期,广告测试怎么做?

广告变现能给应用带来收入增长的一条非常有效的途径,同时可以帮助变现困难的产品类型最快实现盈利,例如付费下载、工具类产品等。 广告测试是APP广告变现中必不可少的一步,广告测试可以用来验证增减广告位会不会引起用户反感、对接广告平台能…

如何解决MySQL死锁(看懂MySQL锁日志)

有时候系统在生产运行着,会突然爆出 [40001][1213] Deadlock found when trying to get lock; try restarting transaction 这个时候每个人都会很紧张,因为死锁会影响DB性能,严重时甚至拖垮整个系统。在实际的环境中,很多服务会共…

JMeter压测SpringBoot项目

压力测试架构图如下: 配置JMeter 在JMeter的bin目录,双击jmeter.bat 新建一个测试计划,并右键添加线程组: 进行配置 一共会发生4万次请求。 ctrl + s保存; 添加http请求: 配置http请求: 配置断言,来判断当前请求是否成功: 正常响应如下:

EtherCAT开源主站 IGH 介绍及主站伺服控制过程

目录 前言 IGH EtherCAT主站介绍 主要特点和功能 使用场景 SOEM 主站介绍 SOEM 的特点和功能 SOEM 的使用场景 IGH 主站 和 SOEM对比 1. 功能和复杂性 2. 资源消耗和移植性 3. 使用场景 EtherCAT 通信原理 EtherCAT主站控制伺服过程 位置规划模式 原点复归模式…

金融知识分享系列之:ATR指标

金融知识分享系列之:ATR指标 一、ATR指标二、指标原理三、海龟交易法应用1.计算开仓数量2.制定止损/加仓规则 四、ATR指标总结 一、ATR指标 利用ATR指标计算仓位,设置止损的规则名称:平均真实波动幅度参数:(默认14)组成&#xff…

CMeet系列技术生态沙龙---《探索未来:生成式AI赋能千行百业·杭州》

当前数字化浪潮下,生成式AI技术正成为推动产业升级、提升竞争力的关键力量。为深入探索未来AI技术的赋能作用,促进技术生态的繁荣与发展,CSDN-CMeet系列沙龙活动旨在搭建一个交流与探索的平台,通过分享前沿研究成果和应用案例&…

OpenCV实现OCR图片文本检测

一、操作步骤 把左边这样的图片,通过仿射变换转换成右边那样的图片。 然后再通过pytesseract读取图片内容得到图片中的文本就好了。 需要使用到: 仿射变换ocr识别 注:本文使用现成图片,轮廓检测较为明显,若是自己拍…

Css 样式记录

实现两栏布局如图所示样式&#xff1a; 方法1&#xff1a; <div style"display: flex; justify-content: space-between; width:100%;"> <div>1</div> <div>2</div> </div> 方法2&#xff1a; <div style"display: fle…

pytest ui自动化

chromedriver.exe 要对应已安装的chrome版本号

大数据面试题 —— Zookeeper

目录 ZooKeeper 的定义ZooKeeper 的特点ZooKeeper 的应用场景你觉得Zookeeper比较重要的功能ZooKeeper 的选举机制 ***zookeeper主节点故障&#xff0c;如何重新选举&#xff1f;ZooKeeper 的监听原理 ***zookeeper集群的节点数为什么建议奇数台 ***ZooKeeper 的部署方式有哪几…

C语言种sizeof()和strlen的区别

sizeof 是 C 语言内置的操作符关键字&#xff0c;而 strlen 是 C 语言库函数&#xff1b; sizeof 仅用于计算数据类型的大小或者变量的大小&#xff0c;而 strlen 只能以结尾为 \0 的字符串作为参数&#xff1b; 编译器在编译时就计算出了 sizeof 的结果&#xff0c;而 strlen …

02_设计模式

文章目录 设计模式设计模式分类UML类图设计模式的原则 常用设计模式创建型设计模式单例设计模式饿汉模式懒汉模式&#xff08;线程不安全&#xff09;懒汉模式&#xff08;线程安全&#xff09;- Synchronized懒汉模式&#xff08;线程安全&#xff09;- Double Check懒汉模式&…

Android 系统源码快速入门

Android源码快速入门 今天分享的内容是Android源码快速入门&#xff0c;主要分为以下几个步骤&#xff1a; * 硬件要求 * 虚拟机安装 * 开发环境搭建 * 下载编译源码 * 从一个简单的实际开发需求体验 Framework 开发硬件要求 用于 Android Framework 开发的电脑需要较强的 C…