问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

虚拟化技术全解析:从优劣分析到CPU和内存虚拟化原理

创作时间:
作者:
@小白创作中心

虚拟化技术全解析:从优劣分析到CPU和内存虚拟化原理

引用
CSDN
1.
https://m.blog.csdn.net/alishengya/article/details/145122693

虚拟化技术是云计算和数据中心领域的重要技术之一,它通过软件模拟的方式,将一台物理计算机虚拟成多台逻辑上的计算机,从而实现资源的高效利用和灵活管理。本文将从虚拟化技术的优劣、技术原理以及CPU虚拟化和内存虚拟化的具体实现方式等方面进行详细解析。

虚拟化技术的优劣

优势

  1. 减少物理资源投入,节约成本
    某小型创业公司最初业务规模较小,使用传统方式为每个应用程序配置一台物理服务器,如 Web 服务器、数据库服务器、邮件服务器等。随着业务发展,新应用不断增加,服务器数量也快速增长,不仅采购成本高,而且机房空间、电力和冷却成本也大幅上升。后来该公司采用虚拟化技术,将多台物理服务器上的应用整合到少数几台高性能物理服务器上的虚拟机中。原本需要 10 台物理服务器才能满足需求,现在仅用 3 台就足够,大大降低了硬件采购成本和运营成本。

  2. 虚拟数据资源移植方便
    一家电商企业在促销活动期间,业务流量会大幅增长。为应对这种情况,该企业使用虚拟化技术。在活动前,将部分虚拟机从负载较低的服务器迁移到性能更强的服务器上,以确保电商平台能够承载大量用户访问。活动结束后,再将这些虚拟机迁移回原来的服务器。整个过程无需重新安装和配置应用程序,业务几乎没有中断,实现了资源的灵活调配。

  3. 提高物理资源的使用率
    某大学的计算中心为多个学院提供计算资源服务。不同学院的课程和科研项目对计算资源的需求在时间上存在差异。通过虚拟化技术,计算中心将物理服务器虚拟化为多个虚拟机,根据各学院的实际需求动态分配资源。例如,在某一时间段内,文学院的教学任务对计算资源需求较低,而工学院的科研项目需要大量计算资源,虚拟化平台会自动将文学院虚拟机占用的部分资源调配给工学院的虚拟机,从而提高了物理资源的整体使用率。

  4. 更加环保,节省能源
    谷歌公司作为全球最大的互联网公司之一,拥有庞大的数据中心。为了降低能源消耗和碳排放,谷歌广泛采用虚拟化技术,将大量的应用和服务整合到少数高性能服务器上的虚拟机中。通过这种方式,谷歌减少了服务器的数量,降低了硬件设备的制造和使用过程中的能源消耗。同时,虚拟化平台的能源管理功能可以根据服务器的负载自动调整服务器的运行状态,进一步节省了能源。

  5. 易于自动化维护与操作,减少维护成本
    某大型企业拥有多个分支机构,每个分支机构都有自己的 IT 系统和服务器。过去,企业的 IT 运维人员需要逐个到各个分支机构对服务器进行维护、升级和故障排除,工作效率低且成本高。采用虚拟化技术后,企业建立了统一的虚拟化管理平台,将所有分支机构的服务器进行虚拟化管理。运维人员可以在总部通过管理平台对所有虚拟机进行集中监控、管理和维护,如远程创建虚拟机、安装补丁、迁移虚拟机等,大大提高了维护效率。

劣势

  1. 业界没有统一的虚拟化技术标准与平台,没有开放的协议
    目前业界不同的虚拟化厂商如 VMware、Microsoft Hyper-V、KVM 等都有自己的技术架构和实现方式。这导致在不同平台之间进行虚拟机的迁移和互操作性存在一定的困难。不过,也有一些开放的标准和协议正在逐渐发展和被广泛应用,如 Open Virtualization Format(OVF),它为虚拟机的封装和分发提供了一种标准化的方式,使得虚拟机可以在不同的虚拟化平台上进行部署。同时,OpenStack 等开源项目也提供了一个开放的云计算平台,支持多种虚拟化技术,通过统一的接口来管理和调度资源。

  2. 如果没有对数据进行备份,应用虚拟化技术会存在一定的风险
    在虚拟化环境中,数据存储在虚拟机磁盘文件中,如果没有进行备份,一旦发生物理服务器故障、软件错误、人为误操作或其他灾难事件,可能会导致虚拟机数据丢失或损坏。为了降低这种风险,企业应该制定完善的数据备份策略,定期对虚拟机数据进行备份,并将备份数据存储在不同的物理位置,以防止单点故障。同时,还可以采用数据复制、快照等技术来提高数据的可用性和恢复能力。

  3. 虚拟数据中心的迁移,特别是对在线服务的迁移,对用户影响巨大
    虚拟数据中心的迁移涉及到虚拟机的迁移、网络配置的调整等多个方面。如果迁移过程中出现问题,可能会导致在线服务中断、性能下降或数据丢失等情况,给用户带来不良影响。为了减少迁移对用户的影响,企业需要在迁移前进行充分的规划和测试,制定详细的迁移方案,包括迁移时间窗口的选择、备用方案的制定等。在迁移过程中,采用先进的迁移技术,如实时迁移、预复制等,确保服务的连续性和数据的完整性。同时,要及时向用户通知迁移的相关信息,让用户有心理准备。

虚拟化技术原理

虚拟机(Virtual Machine,VM)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。简单地说,虚拟机就是通过软件在宿主机上虚拟出一台计算机。虚拟机技术是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。

虚拟机技术实现了一台计算机同时运行多个操作系统,而且每个操作系统中都有多个程序运行,每个操作系统都运行在一个虚拟的 CPU 或虚拟主机上。虚拟机技术需要CPU、主板芯片组、BIOS 和软件的支持,如VMM软件或者某些操作系统本身。

虚拟机技术的核心是虚拟机监视器 VMM(Virtual Machine Monitor),VMM 也称为Hypervisor。VMM 的作用是向底层分配访问宿主机的硬件资源,向上管理虚拟机的操作系统和应用程序。

它是一个宿主程序,该程序是一层位于操作系统和计算机硬件之间的代码,用来将硬件平台分割成多个虚拟机,实现一台计算机支持多个完全相同的执行环境。每个用户都会感觉到自己在一台独立的、与其他用户相隔离的计算机上进行操作,尽管事实上为每个用户提供服务的都是同一台机器。在此种情况下,一台虚拟机就是由一个潜在的控制程序管理的操作系统。VMM 为每个客户操作系统虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器、内存、I/O设备等)。VMM 采用某种调度算法在各个虚拟机之间共享CPU,如采用时间片轮转调度算法。

CPU虚拟化

CPU 虚拟化是将一台物理 CPU 虚拟化为多个逻辑上的 CPU,让多个虚拟机能够共享物理 CPU 资源并独立运行的技术。

在X86的体系框架中,CPU指令权限一般分为4种,ring0、1、2、3 权限为0的区域的指令一般只能内核可以运行,权限为3的指令则是普通用户运行,权限为1、2的区域一般由驱动所使用。

CPU执行从Ring 3进入Ring 0需要有特殊的条件,如:

  • 异步的硬件中断,如磁盘读写等
  • 系统调用,如int,call等
  • 异常,如page fault等

从前面可以看出,要实现CPU虚拟化,首先就要解决CPU执行的权限问题。即,不同的指令在不同的Ring上执行的问题。

实现CPU虚拟化则需要解决以下两大问题:

  • 虚拟机在执行Ring 0上的指令时,应该被捕获
  • 虚拟机在执行Ring 0上的指令时,应该被模拟

这儿的捕获和模拟是什么意思呢?因为虚拟机本质上是在模拟真实的计算机环境,当虚拟机中的操作系统尝试执行 ring0 权限的指令时,不能直接在物理 CPU 上执行,否则会破坏整个系统的稳定性和安全性。所以需要 VMM 将这些指令捕获,然后进行后续处理。

VMM 在捕获到虚拟机执行 ring0 上的指令后,不能让物理 CPU 直接执行,而是要通过软件模拟的方式来执行这些指令。通过模拟指令的执行,保证虚拟机在虚拟的环境中能够正常运行操作系统和应用程序,同时又不会影响到其他虚拟机和宿主机的运行。

原生指令:

  1. mov ebx, eax
  2. cli; #需要权限的指令,需要被捕获与模拟
  3. mov eax, ebx;

虚拟化后的结果:
4. mov ebx, eax;
5. call handle_cli; #VMM在此处捕获与模拟
6. mov eax, ebx;

从前面可以看出,要实现CPU虚拟化,在VMM中实现,它需要:

  • 模拟所有虚拟机所执行的指令
  • 虚拟机执行的指令都需要单独进行保存,以保证相互之间的独立性
  • 如果有需要权限的指令,则捕获并模拟
  • 如果不需要权限的指令,则保存相应状态,以方便在不同的虚拟机之间状态的切换。

内存虚拟化

虚拟化技术中,另一个很重要的虚拟化技术,则是内存虚拟化。相对于CPU虚拟化来说,内存虚拟化则要简单的多。VMM只需要实现虚拟机之间共享物理内存,保证每个虚拟机有自己的独立内存空间,而相互不受影响即可。

VMM的实现方式:
虚拟化物理地址,即,由VMM提供一个虚拟的物理地址。VM则在这虚拟的物理地址中运行。

  1. 虚拟机VM看到的是由VMM提供的“物理地址”
  2. 用户的APP程序则运行在虚拟地址上
  3. “物理地址”则由VMM管理,映射到相应的机器地址

因为有了两次转化,所以运行的效率会大大降低,所以现代的内存虚拟化引入了影子页表(Shadow Page Table)等方式加快内存地址的转换,以提供VM的运行效率。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号