虚拟化技术——基础知识之Hypervisor

一、虚拟化技术简介

1.什么是虚拟化

在计算机科学中,虚拟化技术(Virtualization)是一种资源管理(优化)技术,它将计算机的各种物理资源(例如网络、存储、内存、CPU、GPU等)进行抽象、转换,呈现出可供分割并且任意组合为一个或者多个计算机的配置环境。因此,虚拟化技术打破了计算机硬件不可切割的障碍,使用户能够更好的配置和应用计算机硬件资源。

2.虚拟化技术发展历史

关于虚拟化技术的发展历史,粗略整理如下图所示:

虚拟化技术发展了接近60年,目前虚拟化技术复杂多样,各大厂商都退出了自己的虚拟化产品。且目前虚拟化技术使用场景广泛,且未来前景广阔。

3.虚拟化技术分为哪些类型

虚拟化基本类型有三类,分别是:全虚拟化(Full Virtualization)、半虚拟化(Paravirtualization)和基于硬件辅助的全虚拟化(Hardware-assisted virtualization)。他们直接的对比参考下表:

虚拟化类型全虚拟化半虚拟化硬件辅助虚拟化
技术说明模拟了完整的底层硬件,包括处理器、内存、时钟、外设等,使得原始的操作系统或其他系统软件可以不做任何修改就可以运行。一种通过修改Guest OS部分访问特权状态的代码以便能直接与VMM交互的技术。在半虚拟化中,部分硬件接口以软件的形式提供给Guest OS,Guest OS可以通过Hypecall(Hypervisor提供给Guest OS直接调用的API接口)的方式来使用。就是在CPU、芯片组及I/O设备等硬件中加入专门针对虚拟化的支持
技术原理二进制翻译和直接执行Hypercall根据特权指令退出到 root 模式
Guest是否需要修改/兼容性Guest不需要修改,且具有优良的兼容性Guest需要修改,兼容性差;不适用windows osGuest不需要修改,且具有优良的兼容性
性能在某些情况下更好目前性能落后,但是未来将会得到提高
使用案例Vmware,Microsoft,ParallelsVmware,Microsoft,Parallels,XenVmware,Xen
优点Guest OS无需修改,速度和功能都非常不错,最重要的是使用非常简单架构更精简,而且与全虚拟化相比在整体速度上有一定的优势通过引入硬件技术,将使虚拟化技术更接近物理机的速度
缺点基于Hosted模式(和Hypervisor一样,是一种模拟硬件的程序)的全虚拟产品性能方面不是特别优异,特别是I/O方面需要对Guest OS进行修改,所以在用户体验方面比较麻烦,增加了产品开发过程的很多工作量现有的硬件实现不够优化或者当前支持的硬件不多,还有进一步提高的空间。
前景由于这种模式不仅使Guest OS免于修改,而且将通过引入硬件辅助虚拟化技术来提高其性能,在未来几年内全虚拟化应该还是主流在公有云(比如Amazon EC2)平台上占有一席之地,但是很难在其他方面和类似VMware vSphere这样的全虚拟化产品竞争,同时它也将会利用硬件辅助虚拟化技术来提高速度,并简化架构。因为通过使用硬件技术不仅能提高速度,而且能简化虚拟化技术的架构,所以硬件技术将会被大多数虚拟化产品所采用

此外,还有一类虚拟化类型叫做操作系统级虚拟化(OperatingSystem Level Virtualization),它通过对服务器操作系统进行简单的隔离来实现虚拟化,当前最热门的操作系统级虚拟化技术就是docker技术。它的优点就是直接对操作系统进行修改,实现成本低而且性能不错,但是它在资源隔离方面表现不佳,且对Guest OS的型号和版本有限定,但这并不妨碍它相当可观未来发展前景。

其实,根据不同的对象和场景虚拟化技术也可分为以下三大类:

· 平台虚拟化(Platform Virtualization):针对计算机和操作系统的虚拟化

· 资源虚拟化(Resource Virtualization):针对特定的系统资源的虚拟化,如网络虚拟化、存储虚拟化、CPU虚拟化、GPU虚拟化、内存虚拟化、中断虚拟化以及设备虚拟化等

· 应用程序虚拟化(Application Virtualization):包括仿真、模拟、解释等技术,例如JVM(Java虚拟机)技术。

而我们平时讨论的虚拟化一般指的是平台虚拟化,而平台技术实际上说的就是Hypervisor技术。

3.虚拟化的优点

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

· 资源效率:在虚拟化出现之前,每个应用服务器都需要自己的专用物理 CPU — IT 人员为想要运行的每个应用购买和配置单独的服务器。 (出于可靠性原因,IT 人员更倾向于在每台计算机上配置一个操作系统 (OS),运行一个应用。) 因此,每台物理服务器都不可避免地得不到充分利用。 相反,服务器虚拟化能够在单一物理计算机(通常是 x86 服务器)上运行多个应用,每个应用都在自己的 VM 上运行,使用自己的操作系统,而且不会牺牲可靠性。 这样就能够最大程度地利用物理硬件的计算能力。

· 管理更加轻松:通过用软件定义的 VM 取代物理计算机,可以更轻松地使用和管理用软件编写的策略。 这有助于创建自动化的 IT 服务管理工作流程。 例如,自动化部署和配置工具使管理员能够以软件模板的形式将一组虚拟机和应用定义为服务。 这意味着他们能够以统一方式重复安装这些服务,而无需繁琐耗时 而且容易出错的人工设置过程。 管理员可以根据虚拟机的角色使用虚拟化安全策略,以强制实施某些安全配置。 策略甚至可通过淘汰未使用的虚拟机以节省空间和计算能力,提高资源效率。

· 最大程度减少宕机:操作系统和应用崩溃会导致宕机,对用户生产力造成影响。 管理员可以同时运行多个冗余虚拟机,当出现问题时,可在它们之间进行故障转移。 运行多台冗余物理服务器的成本比较高。

· 配置速度更快:为每个应用购买、安装和配置硬件非常耗时。 如果硬件已部署,那么配置虚拟机以运行所有应用的速度要快得多。 甚至可以使用管理软件自动进行配置,并将其构建到现有工作流程中。

二、认识Hypervisor

1.Hypervisor是什么

Hypervisor,又称虚拟机监控器(英语:virtual machine monitor,缩写为 VMM),是用来建立与执行虚拟机软件固件硬件。有关Hypervisor的说明参考https://zh.wikipedia.org/wiki/Hypervisor

一个计算机,上面运行着一个hypervisor,hypervisor上面又运行着一个或多个虚拟机,该计算机被称为host machine,每一个虚拟机被叫做guest machine。hypervisor为guest operating system营造了一个虚拟的操作系统,并且对guest operating system的运行进行管理。多个不同的操作系统能够共享虚拟化的硬件资源:例如,Linux,Windows,macOS实例能够在一个单独的物理x86机器上运行。

简单来说,hypervisor为操作系统提供独立的虚拟硬件平台,而虚拟硬件平台反过来又提供对底层机器的虚拟的完整访问。hypervisor之于操作系统类似于操作系统之于进程。

2.Hypervisor有哪些类型

Hypervisor 主要分为两种类型,Type 1 Hypervisor(裸机型)原生或裸机 Hypervisorh和Type 2 Hypervisor(主机型)主机 Hypervisor,具体如下:

Type 1 Hypervisor(裸机型)原生或裸机 Hypervisor,直接运行在物理计算机的硬件上,无需操作系统的支持,可提供更高的性能和较低的资源消耗,可以管理和分配物理计算机的资源给虚拟机。


Type 2 Hypervisor(主机型)主机 Hypervisor,运行在主机操作系统之上,依赖于主机操作系统的支持。通常安装在一台普通操作系统上,就可以作为一个应用程序运行。相对于 Type 1 Hypervisor,Type 2 Hypervisor 的性能较低,因为它运行在操作系统的上层。


需要注意的是,Type 1 Hypervisor 和 Type 2 Hypervisor 的区分,是根据它们运行的位置和与物理计算机的关系来定义的。Type 1 Hypervisor 直接在硬件上运行,而 Type 2 Hypervisor 则在主机操作系统之上运行。这些类型的 Hypervisor 都有各自的优势和适用场景,怎样选择合适的 Hypervisor 取决于具体的需求和使用情况。

它们两个的对比参考下表:

hypervisor类型Type1Type2
裸机型native主机型hosted
技术说明不依赖主机操作系统,其自身具备操作系统的基础功能,与底层物理资源进行交互,完全取代传统的操作系统。 需要借助宿主操作系统来管理 CPU、内存、网络等资源,在现有操作系统上作为应用运行
工作原理· Type 1 Hypervisor 直接运行在物理计算机的硬件上,独立于任何操作系统。
· 当启动物理计算机时,Type 1 Hypervisor 是第一个运行的软件。
· Type 1 Hypervisor 控制和管理物理计算机的资源,例如处理器、内存、存储和网络。
· Type 1 Hypervisor 创建和管理虚拟机,为每个虚拟机分配适当的资源,并确保虚拟机之间的隔离性。
· Type 1 Hypervisor 提供虚拟化层,将虚拟机的指令转换为物理计算机的指令,并将虚拟机的访问请求转发到适当的硬件设备。
· Type 2 Hypervisor 运行在主机操作系统之上,依赖于主机操作系统的支持。
· 当启动主机操作系统时,Type 2 Hypervisor 作为一个应用程序运行在主机操作系统中。
· Type 2 Hypervisor 利用主机操作系统提供的接口和功能来创建和管理虚拟机。
· Type 2 Hypervisor 在主机操作系统的上层创建一个虚拟化层,将虚拟机的指令转发给主机操作系统进行处理。
· 主机操作系统通过 Type 2 Hypervisor 将虚拟机的访问请求传递到适当的硬件设备。
特点· 需要硬件支持
· VMM作为主操作系统
· 运行效率高于Type2
· VMM作为应用程序运行在主操作系统环境内
· 运行效率一般低于Type1
实现案例1. Vmware 5.5及以后版本
2. Xen 3.0及以后版本
3. Virtual PC 2005
4. KVM
1. Vmware 5.5以前版本
2. Xen 3.0以前版本
3. Virtual PC 2004
使用场景设计上更简洁,直接运行于硬件之上,整体代码量和架构更为精简,对内存和存储资源要求更少,可满足自动驾驶车控系统功能安全等级要求,也具备进行形式化验证的条件。所以汽车操作系统更适合使用主要适用于性能和安全要求不高的场合,比如PC系统

3.Hypervisor与虚拟化有什么关系

· 虚拟化是通过将物理资源(如处理器、内存、存储和网络)进行抽象和隔离,创建多个虚拟环境来运行多个操作系统和应用程序的数字化技术,可提高硬件资源的利用率、简化管理和部署、增加系统的可靠性和安全性等。
· 而 Hypervisor 是实现虚拟化的关键组件之一,它是一种软件、固件或硬件层,负责创建和管理虚拟机(虚拟操作系统)的运行环境。Hypervisor 在物理计算机上。创建一个虚拟化层,将物理计算机的资源划分为多个独立的虚拟机,每个虚拟机都可以运行自己的操作系统和应用程序。
· Hypervisor 提供了对虚拟机的管理功能,包括虚拟机的创建、启动、停止、删除以及资源的分配和监控。它还确保虚拟机之间的隔离性,使得它们彼此独立运行。通过 Hypervisor,虚拟机可以在共享的物理计算机上同时运行,实现多个操作系统和应用程序的隔离和共存。Hypervisor 可以提供不同级别的虚拟化,包括完全虚拟化和半虚拟化,以满足不同的需求

4.Hypervisor主要完成哪些任务

Hypervisor主要完成以下任务:

· CPU 虚拟化:为虚拟机提供 VCPU 资源和运行环境;

· 内存虚拟化:负责为其自身和虚拟机分配和管理硬件内存资源;

· 中断虚拟化:发生中断和异常时,按需将中断和异常路由到虚拟机进行处理;

· 虚拟机设备模拟:根据需求创建虚拟机可以访问的虚拟硬件组件;

· 硬件支持 BSP:提供 Hypervisor 在 SoC 上运行的板级支持包,如串口驱动;

· 虚拟机资源配置:对虚拟机的 CPU,内存,IO 外设等资源进行配置和管理;

· 虚拟机通信:为虚拟机提供 IPC,共享内存等通信机制。

· 虚拟机调度:为虚拟机提供优先级和时间片等调度算法;

· 虚拟机生命周期管理:创建,启动和停止虚拟机;

· 虚拟机调测服务:提供控制台,日志等调试功能;

5.Hypervisor如何管理虚拟机

Hypervisor 管理虚拟机的过程,涉及虚拟机的创建、启动、停止、删除以及资源的分配和监控。

  • 虚拟机创建
    • Hypervisor 提供创建虚拟机的功能,通常通过管理界面或命令行工具来完成。
    • 在创建虚拟机时,需要指定虚拟机的配置信息,例如操作系统类型、内存大小、处理器核心数量、存储空间大小等。
    • Hypervisor 根据配置信息,为虚拟机分配适当的资源,创建虚拟机文件(磁盘镜像)。
  • 虚拟机启动
    • 当启动虚拟机时,Hypervisor 加载虚拟机的配置和文件,分配物理计算机上的资源。
    • Hypervisor 通过模拟或转发物理计算机的指令,将虚拟机的指令转化为物理计算机指令。
    • 虚拟机的启动过程,包括加载操作系统和其他必要软件,并初始化虚拟机的运行环境。
  • 虚拟机停止
    • 当停止虚拟机时,Hypervisor 停止转发虚拟机的指令,并释放物理计算机资源。
    • 虚拟机的停止过程包括保存虚拟机的状态(如内存和硬盘的快照)以便稍后恢复,或者直接关闭虚拟机并丢弃状态。
  • 虚拟机删除
    • 当不再需要某个虚拟机时,Hypervisor 提供删除虚拟机的功能。
    • 删除虚拟机会释放虚拟机占用的物理计算机资源,并删除虚拟机的配置和文件。
  • 资源分配和监控
    • Hypervisor 负责管理物理计算机上的资源,并为虚拟机分配适当的资源。
    • 资源分配包括处理器核心、内存、存储和网络带宽等资源的分配和限制。
    • Hypervisor 还监控虚拟机的运行状态,例如 CPU 利用率、内存使用情况、网络流量等,并提供性能监控和报告。

6.Hypervisor如何处理故障

Hypervisor 处理故障时的行为和策略,可能因特定的 Hypervisor 的实现和配置而有所不同。处理 Hypervisor 故障时,常见措施如下:

  • 容错和高可用性
    • 许多 Hypervisor 提供容错和高可用性功能,以确保虚拟机和应用程序的持续可用性。
    • 这些功能包括故障切换、冗余备份、自动迁移和故障恢复等。
    • 当物理计算机或 Hypervisor 发生故障时,容错和高可用性功能可自动将虚拟机迁移到可用的物理计算机上,以保持服务的连续性。
  • 故障隔离和资源分配
    • 当某个虚拟机发生故障时,Hypervisor 通常会采取措施来隔离该故障,以防止其影响其他虚拟机的正常运行。
    • Hypervisor 可以通过资源分配和限制,确保故障的虚拟机不会过度消耗物理计算机的资源,从而影响其他虚拟机的性能和可用性。
  • 故障检测和报告
    • Hypervisor 通常会监测虚拟机的运行状态,并检测任何故障或异常情况。
    • 一旦发现故障,Hypervisor 会生成相应的警报或日志,并通知管理员或运维团队进行处理和修复。
  • 故障恢复
    • Hypervisor 提供故障恢复机制,支持管理员采取适当的措施,来修复故障的虚拟机或物理计算机。
    • 具体故障处理动作,可能包括重新启动虚拟机、恢复损坏的虚拟机状态、修复物理计算机上的硬件问题等。

7.Hypervisor面临的挑战

虽然Hypervisor带来了丰富的功能,但是它还是面临着如下挑战:

· 轻量高效:Hypervisor在带来灵活性的同时,也由于增加了软件栈层次,不可避免的会有性能损耗。而诸如汽车等领域的成本敏感性,注定了降低CPU、存储、网络、GPU等外设的性能要求始终很重要,因此Hypervisor的轻量和高效十分重要。

· 安全可靠:虽然在互联网领域看重资源动态分配和闲置利用,但是汽车领域更加看重Hypervisor的实时性、可靠性和安全性。

· 便捷适配:随着Hypervisor的使用场景越来越多,其涉及的芯片类型和操作系统也越来越丰富多样,因此,Hypervisor必须具备快速适配不同的底层硬件和上层操作系统的能力。

  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《QNX Hypervisor虚拟化平台调试技术》是一本介绍QNX Hypervisor虚拟化平台调试技术的PDF文件。QNX Hypervisor是一个基于QNX实时操作系统的虚拟化平台,可以将物理资源划分为多个虚拟机,提供安全、独立的运行环境。 该PDF详细介绍了QNX Hypervisor的调试技术。在虚拟化环境中,由于多个虚拟机共享物理资源,调试变得更加复杂。QNX Hypervisor虚拟化平台调试技术提供了一套全面有效的解决方案。 首先,该PDF介绍了QNX Hypervisor的调试工具和调试接口。QNX Hypervisor提供了一套完整的调试工具,包括调试器和嵌入式工具链。通过这些工具,开发人员可以对虚拟机进行调试,并监视虚拟机的运行情况。 其次,该PDF介绍了QNX Hypervisor的调试策略和方法。QNX Hypervisor虚拟化平台调试技术采用了一系列先进的调试策略和方法,包括断点调试、远程调试和时序分析。通过这些策略和方法,开发人员可以快速、准确地定位和修复虚拟机中的问题。 最后,该PDF还介绍了QNX Hypervisor的调试实例和案例分析。通过具体的实例和案例分析,开发人员可以深入了解QNX Hypervisor虚拟化平台调试技术的应用,并学习如何解决实际的调试问题。 总之,该PDF提供了关于QNX Hypervisor虚拟化平台调试技术的全面指南。无论是对于已经使用QNX Hypervisor的开发人员,还是对于对QNX Hypervisor感兴趣的读者,这本PDF都是一本很有价值的参考书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会写代码的小可爱&&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值