0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是虚拟化技术

汽车电子技术 来源:码农与软件时代 作者:码农与软件时代 2023-02-15 10:14 次阅读

成本是永恒的话题

虚拟化的目标也是降低成本,体现为对IT资源的充分利用。

一、虚拟化发展脉络

20世纪50~70年代,大型机应用广泛。但也比较贵,如何节省成本成为考虑的因素。一种简单的想法,多个终端用户能够共享同一大型机。

从时间的角度来考虑,就是将CPU时间划分成非常小的时间片,每个时间片执行不同用户的工作任务,并通过轮询的方式进行调度。这样,表面上不同用户的任务在同一硬件资源上都得到了执行,本质上是后台是“分时共享”大型机。20世纪60年代,IBM在其System/360中实现了该分时系统,并在System/370正式命名为虚拟机。

20世纪80年代,硬件成本降低,虚拟化技术逐步被放弃。

20世纪90年代,Win-Intel联盟、Linux操作系统的发展,x86服务器架构应用广泛,成为服务器硬件设施的主流。但X86计算机架构,最早着眼于性能要求不高的场景,没有考虑对虚拟化技术的支持。

人们在使用x86服务器时,为了满足业务的需求,通常会对业务流程进行压测,得到业务所需的x86服务器配置,这种配置往往采用按照业务最高的要求。这样,在日常运行中,就会导致服务器的CPU利用率比较低,处于10%~30%之间,也就是服务器资源没有得到充分利用。

随后,各个公司推出了各种虚拟化解决方案:

  • VMware将虚拟化技术引入到x86服务器中,发布了ESX产品
  • Xen虚拟化平台由剑桥大学研究,成为开源虚拟化资源的代表。
  • 微软推出Hyper-V。
  • Intel硬件虚拟化VT-x方案。

二、虚拟化概念与架构

虚拟化是什么?

IBM公司给出的定义比较有代表性:“虚拟化是资源的逻辑表示,它不受物理限制的约束。”

简单地说,就将X86服务器硬件资源进行抽象,在其上构建一台台虚拟机。虚拟机与X86服务器没有什么不同,可以安装操作系统,部署用户APP并运行。

那么,如何实现虚拟化呢?

在硬件资源和虚拟机之间,需要有一个抽象层,向下对硬件进行抽象,向上提供人虚拟机,并确保这些虚拟机之间是独立且隔离的。这个抽象层称为虚拟机监控器(Virtual Machine Monitor,VMM)。

图片

通常情况下,将X86服务器上的操作系统称为Host OS(宿主),将虚拟机的操作系统称为Guest OS(客户)。

根据VMM是否直接部署在硬件上,又分为宿主型、裸机型和混合型。

  • 宿主型:硬件资源仍由Host OS来管理,VMM是OS的内核,体现为一个进程。
  • 裸机型:VMM直接部署并运行在硬件上。
  • 混合型:宿主型和裸机型的融合。

根据虚拟的资源类型来划分,虚拟化又可以分为计算虚拟化、存储虚拟化和网络虚拟化。

三、实现机制

前面提到,X86架构在初始设计时,并未考虑虚拟化的情况。这意味着后续硬件支持虚拟化时,必然采用打补丁的方式。

这里仅讨论CPU虚拟化。

在x86架构的CPU指令集中,有Ring0、Ring2、Ring2、Ring3四个状态,其中,Ring0权限最高,操作系统拥有此权限,能够直接管控所有资源。Ring3权限最低,应用程序拥有此权限。应用程序可以访问自己权限内的硬件资源,不能访问Ring0权限内的硬件资源。

图片

从运行态上来看,虚拟机是x86服务器上的进程,拥有Ring3权限。不具有Host OS的Ring0权限,无法访问整个硬件资源,此时如果直接访问,则会被Host OS捕捉到并触发异常,弹出警告窗口。

图片

那么,如何才能Guest OS拥有Ring0权限呢?从x86架构的原始设计来看,不可能。

退一步,让Guest OS自认为的拥有Ring0权限。这就需要底层VMM或者硬件做到“Guest OS自认为的权限”,以此来欺骗Guest OS。

先来看看VMM如何做?

一种方法是将欺骗进行到底。

Guest OS不做任何修改,依然是那个追风少年,VMM依然变成一个保姆,有求必应。但VMM也是有策略的:

针对一些不敏感的指令,VMM直接进行“翻译”,调用Host OS,为Guest OS模拟出它所需要的包括CPU、磁盘、内存、网卡、显卡等抽象硬件资源。

针对一些敏感指令,如reboot,VMM考虑到会影响整个x86服务器,则将进行“模拟”,转换为只针对特定Guest OS 的reboot指令。

另一种是认清现实,就是一个虚拟机。

告知Guest OS一些细节,Guest OS自身做一些调整,修改指令集中的敏感指令和核心态指令,使得Host OS能够判断出是谁要访问硬件资源,从而提供相应的硬件抽象。

再来看看,硬件如何做?

原来x86架构包含4个权限的指令集,现在打补丁。引入VMX新模式:也就是Virtual Machine eXtension,包括根操作模式(VMX Root Operation)和非根操作模式(VMX Non-Root Operation)。

图片

VMM运行在根操作模式,Guest OS运行在非根操作模式,具有Ring 0权限,可直接访问硬件资源,同时,对于reboot等敏感指令,则由硬件辅助,直接切换到 VMM 执行,转换为只针对特定Guest OS 的指令。

这就是Intel的VT-x方案基本思想。

四、实现技术

虚拟化有很多实现技术,如KVM、Xen、VMware、Virtual Box、Hyper-V 等,这里仅介绍KVM。

KVM(Kernal-based Virtual Machine)是基于Linux内核的开源虚拟化方案。KVM提供CPU虚拟化、内存虚拟化,而I/O部分,则借助于QEMU实现( QEMU早于KVM )。

KVM虚拟化方案使用的是VT-x的VMX模式。其技术架构如下:

图片

五、工具

针对众多的虚拟化实现技术,云计算IaaS平台通常采用兼容并包的策略,为了简化处理,引入了中间适配层:libvirt。libvirt支持界面和CLI命令行的方式,如virsh、virt-manager。

图片

事实上,现有的云计算框架平台使用了libvirt的API 来管理虚拟机,如 OpenStack。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6818

    浏览量

    123320
  • 虚拟机
    +关注

    关注

    1

    文章

    916

    浏览量

    28179
  • x86服务器
    +关注

    关注

    0

    文章

    6

    浏览量

    4197
收藏 人收藏

    评论

    相关推荐

    解密VST2.0交换机虚拟技术

    近两年随着云计算、大数据、计算虚拟等等技术的兴起,伴随大家对“云”的向往,促使加快了网络虚拟技术
    发表于 02-01 10:03 5424次阅读

    Linux上的虚拟技术历史回顾

    虚拟技术的应用十分广泛. 当前虚拟技术主要关注于服务器的
    发表于 07-22 07:18

    几种主要的虚拟技术有什么不同?

    虚拟技术作为建设绿色数据中心的一项重要技术,一直在不断发展完善,其应用领域包括操作系统、服务器、存储以及网络。网络的虚拟
    发表于 08-14 06:52

    ARM的虚拟技术是什么?如何去实现呢

    主流的操作系统都有一个假设,就是这个系统有一个特权模式之下的OS,之上在跑多个非特权模式的APP;而ARM的虚拟技术就是在同一个系统上共存多个操作系统,实现这种虚拟
    发表于 05-09 09:55

    有关虚拟机及虚拟技术的几点诠注

    虚拟机及虚拟技术给计算机应用注入了新的研究与开发点,同时也存在诸多不利因素。本文综述了虚拟机及虚拟
    发表于 06-22 18:04 36次下载

    虚拟机及虚拟技术

    虚拟机及虚拟技术给计算机应用注入了新的研究与开发点,同时也存在诸多不利因素。本文综述了虚拟机及虚拟
    发表于 09-07 10:15 13次下载

    CPU虚拟技术

    CPU虚拟技术              虚拟
    发表于 12-24 10:58 680次阅读

    虚拟技术在云计算中的发展

    虚拟技术 是云计算实现的关键技术,通过虚拟可以为应用提供灵活可变、可扩展的服务。云计算的发展
    发表于 06-10 16:54 33次下载
    <b class='flag-5'>虚拟</b><b class='flag-5'>化</b><b class='flag-5'>技术</b>在云计算中的发展

    虚拟技术的发展趋势

    本视频主要详细介绍了虚拟技术的发展趋势,分别是平台开放、连接协议标准虚拟
    的头像 发表于 01-02 16:11 9233次阅读

    虚拟技术的应用

    虚拟技术具有可以减少服务器的过度提供、提高设备利用率、减少IT的总体投资、增强提供IT环境的灵活性、可以共享资源等优点,但虚拟
    的头像 发表于 01-02 16:15 1.3w次阅读

    虚拟技术有哪些

    本视频主要详细介绍了虚拟技术有哪些,分别有CPU虚拟、网络虚拟
    的头像 发表于 01-02 16:25 3.9w次阅读

    虚拟技术的介绍以及它的优势分析

    虚拟技术,或称虚拟技术,英文全文为:Virtualization,是一种资源管理技术
    的头像 发表于 04-10 17:02 1.4w次阅读

    虚拟技术是什么 虚拟技术介绍

    利用率的思路,从而实现简化管理,优化资源等目的的解决方案,就叫做虚拟技术。  以下是一些业界标准组织对虚拟的定义。  “
    发表于 07-19 11:26 1次下载

    云计算中的虚拟技术应用

    云计算中的虚拟技术是一种将计算机物理实体(如服务器、存储设备、网络设备)通过软件技术划分为多个虚拟实体的
    的头像 发表于 10-24 09:22 655次阅读

    emc虚拟技术的应用场景

    在当今的数字化时代,企业面临着数据爆炸式增长和业务需求不断变化的挑战。为了应对这些挑战,企业需要灵活、高效且可扩展的IT基础设施。EMC虚拟技术正是在这样的背景下应运而生,它通过将物理资源抽象
    的头像 发表于 11-01 15:26 335次阅读