【虚拟化】虚拟化简介 | Hypervisor介绍

news2024/11/16 0:20:32

目录

一、什么是虚拟化?

二、虚拟化的优点

三、Hypervisor

3.1 Hypervisor概述

3.2 Hypervisor 分类

3.3 Hypervisor 与虚拟机协作技术路线

(1) 全虚拟化

(2) 硬件辅助虚拟化

(3) 半虚拟化


一、什么是虚拟化


虚拟化是一种能够更有效地利用物理计算机硬件的过程,是云计算的基础。

虚拟化技术使用软件,在计算机硬件上创建一个抽象层,能够将单台计算机的硬件元素(处理器、内存、存储等)分成多个虚拟计算机(通常称为虚拟机 (VM))。 每个虚拟机都会运行自己的操作系统 (OS),其行为就像一台独立的计算机,即使它只在一部分实际底层计算机硬件上运行。

由此可见,虚拟化可以更高效地利用物理计算机硬件,提高组织在硬件投资方面的投资回报率。

如今,虚拟化已成为企业 IT 架构的标准实践。 它也是推动云计算经济发展的技术。 虚拟化使云提供商能够使用他们现有的物理计算机硬件为用户提供服务; 它使云用户能够在需要时仅购买所需的计算资源,并随着工作负载的增长经济实惠地扩展这些资源。


二、虚拟化的优点


虚拟化为数据中心运营商和服务提供商带来诸多好处:

  • 资源效率在虚拟化出现之前,每个应用服务器都需要自己的专用物理 CPU — IT 人员为想要运行的每个应用购买和配置单独的服务器。 (出于可靠性原因,IT 人员更倾向于在每台计算机上配置一个操作系统 (OS),运行一个应用。) 因此,每台物理服务器都不可避免地得不到充分利用。 相反,服务器虚拟化能够在单一物理计算机(通常是 x86 服务器)上运行多个应用,每个应用都在自己的 VM 上运行,使用自己的操作系统,而且不会牺牲可靠性。 这样就能够最大程度地利用物理硬件的计算能力。
  • 管理更加轻松通过用软件定义的 VM 取代物理计算机,可以更轻松地使用和管理用软件编写的策略。 这有助于创建自动化的 IT 服务管理工作流程。 例如,自动化部署和配置工具使管理员能够以软件模板的形式将一组虚拟机和应用定义为服务。 这意味着他们能够以统一方式重复安装这些服务,而无需繁琐耗时 而且容易出错的人工设置过程。 管理员可以根据虚拟机的角色使用虚拟化安全策略,以强制实施某些安全配置。 策略甚至可通过淘汰未使用的虚拟机以节省空间和计算能力,提高资源效率。
     
  • 最大程度减少宕机:操作系统和应用崩溃会导致宕机,对用户生产力造成影响。 管理员可以同时运行多个冗余虚拟机,当出现问题时,可在它们之间进行故障转移。 运行多台冗余物理服务器的成本比较高。
     
  • 配置速度更快:为每个应用购买、安装和配置硬件非常耗时。 如果硬件已部署,那么配置虚拟机以运行所有应用的速度要快得多。 甚至可以使用管理软件自动进行配置,并将其构建到现有工作流程中。

三、Hypervisor


3.1 Hypervisor概述


hypervisor一种运行在物理服务器和操作系统之间的中间层软件,可以允许多个操作系统和应用共享一套基础物理硬件。可以将hypervisor看做是虚拟环境中的“元”操作系统,可以协调访问服务器上的所有物理设备和虚拟机,所以又称为虚拟机监视器(virtual machine monitor)。hypervisor是所有虚拟化技术的核心,非中断的支持多工作负载迁移是hypervisor的基本功能。

3.2 Hypervisor 分类


  • 一类是 Type1 裸机型,Hypervisor 直接运行在硬件设备上的,也叫做 Bare-Metal Hardware Virtualization(裸机虚拟化环境);
  • 一类是 Type2 主机托管型,也叫做 Hosted Virtualization (主机虚拟化环境)。

如图展示了两种 Hypervisor 的分层架构。

Type2 型 Hypervisor 需要借助宿主操作系统来管理 CPU、内存、网络等资源,由于 Hypervisor 和硬件之间存在一个宿主操作系统,Hypervisor 及 VM 的所有操作都要经过宿主操作系统,所以就不可避免地会存在延迟、性能损耗,同时宿主操作系统的安全缺陷及稳定性问题都会影响到运行在之上的 VM(虚拟机),所以 , Type-2 型 Hypervisor 主要用于对性能和安全要求不高的场合,比如 : 个人 PC 系统。

Type1 型的 Hypervisor 不依赖主机操作系统,其自身具备操作系统的基础功能。设计上更简洁,直接运行于硬件之上,整体代码量和架构更为精简,对内存和存储资源要求更少。

3.3 Hypervisor 与虚拟机协作技术路线


(1) 全虚拟化

最初的虚拟化是通过软件模拟具有完整硬件系统功能的、运行在一个隔离环境中的计算机系统,即通过软件虚拟硬件设备提供给 GuestOS 使用,优点是 GuestOS 不感知外部真实硬件环境、不用改动。

由于 Guest OS 中每次访问全虚拟化硬件都要陷入到 Hypervisor 中,直接导致该方式虚拟的硬件性能较差,一般只用来模拟如串口等比较简单的硬件。

操作系统上安装kvm,kvm即Hypervisor,它会 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。除此之外:VirtualBox 和 VMWare Workstation 都属于这个类型。

(2) 硬件辅助虚拟化

Intel 最早提出硬件辅助虚拟化技术,由硬件直接提供共享功能,支持多 GuestOS 的访问,减少软件虚拟技术带来的延时和性能损耗。

Intel 提出了分别针对处理器 & 内存、IO、网络的 Intel VT-x、Intel VT-d 和 Intel VT-c 技术等。随着 ARM 算力提升,从移动端向边缘、甚至云算力中心发展,ARM 也在不断增强其硬件辅助虚拟化技术,比如 stage 2 页表转换、虚拟异常等。

(3) 半虚拟化

在硬件辅助虚拟化技术不完善、不强大的发展阶段,或者对于某些复杂外设的共享复用,为避免全虚拟化的性能问题,可以采用 GuestOS 与 Hypervisor 协作的半虚拟化技术。

这种技术一般应用于 IO 设备虚拟化,采用前后端的方式来实现 IO 设备虚拟化,在 Guest OS 中实现前端驱动,在 Hypervisor 或 Host OS 中实现后端驱动,前后端一般按照 VirtIO 标准来实现,后端驱动作为硬件的实际访问方。

Guest OS 中前端驱动通过 Virt Queue 等通信机制与后端驱动进行通信,前端驱动将 Guest OS 的请求传递给后端驱动,后端驱动将请求发送给硬件驱动,处理完后将结果再传回给前端驱动。半虚拟化相对全虚拟化实现的硬件性能较好,且可实现相对比较复杂的硬件,比如 : 块设备,网卡,显示设备等。


原文链接:虚拟化 (Hypervisor) 技术详解-CSDN博客

云计算——虚拟化层架构_虚拟化架构-CSDN博客

虚拟化 (Hypervisor) 技术详解-CSDN博客

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

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

相关文章

电梯节能设备 安装现场

夏天到了,高温来了。电梯修理升级,安装 电梯节能设备。可立即降温, 节能率达 15%-45%。 为电梯加装节能设备,都在行动。 跟【523】一起绿色低碳范儿,欢迎私询哦

springboot高校学生技能成长档案管理系统71080

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 高校学生技能成长档案管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.2.2 数据修改…

Hbase简介和快速入门

一 Hbase简介 1 HBase定义 Apache HBase™ 是以hdfs为数据存储的,一种分布式、可扩展的NoSQL数据库。 2 HBase数据模型 HBase的设计理念依据Google的BigTable论文,论文中对于数据模型的首句介绍。Bigtable 是一个稀疏的、分布式的、持久的多维排序map…

玩转usbserver之usbserver日志报警

一、graylog 介绍 graylog是一个简单易用、功能较全面的日志管理工具,graylog也采用Elasticsearch作为存储和索引以保障性能,MongoDB用来存储少量的自身配置信息,master-node模式具有很好的扩展性,UI上自带的基础查询与分析功能比…

maven项目如何将自定义的jar引入本地仓中,并编译通过

只需3步&#xff0c;轻松实现自定义jar包引入本地仓。 1、在pom.xml文件中加入坐标 <dependency><groupId>com.hicap.echannelservice.ncclib</groupId> //随便写<artifactId>ncclib-jar</artifactId> //随便写<version>1.0</version…

Qwen2模型Text2SQL微调​以及GGUF量化

Qwen2-1.5B微调 准备python环境 conda create --name llama_factory python3.11 conda activate llama_factory部署llama-factory git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip3 install -e ".[torch,metrics]" # 如果…

【全面讲解下Docker in Docker的原理与实践】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 👉目录 👉前言👉原理👉实践👉安全和最佳实践👉前言 🦛…

【保姆级教程】免费内网穿透,手把手搭建,三步搞定

在内网部署的一个应用&#xff0c;想分享给外网的小伙伴玩玩&#xff1f; 学校实验室有一台高性能服务器&#xff0c;在外网就无法使用&#xff1f; 来吧&#xff0c;内网穿透&#xff0c;了解一下&#xff1f; 1. 关于内网穿透 1.1 什么是内网穿透 且看百度百科的说法&am…

【AI人工智能】文心智能体,00后疯感工牌生成器,低代码工作流的简单应用以及图片快速响应解决方案,干货满满,不容错过哦

背景 文心智能体平台&#xff0c;开启新一轮活动&#xff0c;超级创造营持续百日活动。 在AI 浪潮席卷的今天&#xff0c;如雨后春笋般丛生的 AI 应用&#xff0c;昭告着时代风口显然已随之到来。 如何能把握住时代红利&#xff0c;占据风口&#xff0c;甚至打造新风向&#x…

深入探讨单元测试:概念、作用及应用实例

目录 前言1. 单元测试的概念1.1 单元测试的特点1.2 单元测试的组成部分 2. 单元测试的主要作用2.1 确保代码正确性2.2 提高代码质量2.3 促进重构2.4 支持持续集成 3. 单元测试在整个测试中的地位3.1 单元测试 vs 集成测试3.2 单元测试 vs 系统测试3.3 单元测试 vs 验收测试 4. …

VulnHub靶机入门篇--Kioptrix4

1.环境配置 下载地址&#xff1a; https://download.vulnhub.com/kioptrix/Kioptrix4_vmware.rar 下载完解压之后是一个vdmk文件&#xff0c;我们需要先创建一个新的虚拟机&#xff0c;将vdmk文件导入就行了 先移除原先硬盘&#xff0c;然后再进行添加&#xff0c;网络连接为…

Computer Software Copyright Registration Certificate

Computer Software Copyright Registration Certificate 计算机软件著作权登记证书

项目实战--JUC之CompletableFuture温故

CompletableFuture温故 一、前言二、Future三、CompletableFuture3.1 CompletableFuture定义3.2 CompletableFuture使用场景3.3 CompletableFuture 常见操作3.3.1 创建CompletableFuture3.3.2 使用CompletableFuture3.3.3 异常处理3.3.4 注意事项 四、CompletableFuture处理工具…

51单片机嵌入式开发:21、STC89C52R控制抢答器+数码管+后台显示+LCD1602x显示

配套程序 STC89C52R控制抢答器数码管后台显示LCD1602x显示 STC89C52R控制抢答器数码管后台显示LCD1602x显示1 概述1.1 项目概述1.2 项目组成部分1.3 功能描述 2 开发环境2.1 支持设备2.2 硬件电路 3 软件代码工程4 演示Proteus仿真5 总结 配套程序 STC89C52R控制抢答器数码管后…

oracle登录报“ORA-27101: shared memory realm does not exist”

oracle登录报“ORA-27101: shared memory realm does not exist” 问题&#xff1a; 1、使用ip:1521/服务名方式连库报错" ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory" 2、sqlplus XX/密码 可以登录数据库 …

linux下使用yum安装mysql

本文使用常规方式手动安装mysql 第一步 下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm第二步 安装mysql-community-release-el7-5.noarch.rpm包 rpm -ivh mysql-community-release-el7-5.noarch.rpm第三步 安装mysql-server yum -y…

一文步让成功搭建AI数字人直播系统!

随着AI数字人直播技术的不断成熟&#xff0c;越来越多的企业都开始使用或计划引入AI数字人直播&#xff0c;来实现直播板块的降本增效。这也让不少创业者看到了AI数字人直播所蕴含着的巨大市场需求和广阔收益空间&#xff0c;从而有了搭建AI数字人直播系统源码的想法。 ​不过&…

flask学习小结

背景 通过官方文档学习 quickstart 第一个app 代码 文件命名为hello.py windows执行set FLASK_APPhello&#xff0c;linux执行export FLASK_APPhello&#xff0c;然后执行flask run即可运行app 默认运行的app是127.0.0.1:5000&#xff0c;可通过-h -p参数改ip地址和端口。…

windows下定时执行bat脚本删除无用文件和文件夹

文章目录 1. 删除脚本编写2. 配置任务计划程序1.搜索任务计划程序2. 创建任务3. 触发器配置4. 创建任务–>操作5. 创建任务–>条件6. 创建任务–>设置7. 确定保存设置 1. 删除脚本编写 echo off REM 设置源目录和要删除的文件的天数阈值 SrcDirE:\xxx DaysAgo30REM 从…

二阶段测试

二阶段测试 1、部署框架前准备工作 服务器类型部署组件ip地址DR1调度服务器 主&#xff08;ha01&#xff09;KeepalivedLVS-DR192.168.168.21DR2调度服务器 备 (ha02)KeepalivedLVS-DR192.168.168.22web1节点服务器 (slave01)NginxTomcatMySQL 备MHA managerMHA node192.168.1…