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

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

3天内不再提示

为什么处理器需要虚拟化,虚拟化能带来什么好处

安芯教育科技 来源:老秦谈芯 2023-07-27 10:33 次阅读

今天来研究一个有意思的话题,虚拟化(virtualization)。

开始前,先闲扯一下,最近一个词比较火,“元宇宙(Metaverse)”。在维基百科里面是这么定义元宇宙的,“The Metaverse is a collective virtual shared space, created by the convergence of virtually enhanced physical reality and physically persistent virtual space, including the sum of all virtual worlds, augmented reality, and the Internet”。啥是虚拟呢,通俗点说就是假的,不是物理上真实的。

虚拟化技术是一种广泛使用的技术,比如在云计算业务,数据中心业务中。为什么处理器需要虚拟化,或者说虚拟化能带来什么好处呢?

首先,在处理器设计和应用里,要提一个概念,就是“虚拟机(Virtual Machine)”。关于虚拟机,玩过Vmware的同学可能有一定了解。与虚拟机相对应的就是“真实机(Real Machine)”,有时也叫物理机。物理机好理解,比如我们买一台电脑做家用机,那么这台电脑的所有物理设备,比如硬盘,网卡等等,都是归你自己使用。如果是服务器机,这种独占的使用方式无疑是效率非常低下的。把服务器的巨大资源划分成块分配使用,或者是按照时间片轮流使用,就可以大大提高效率了。这就需要使用到虚拟化技术了。虚拟化技术就是要让应用程序运行在虚拟机上,就像运行在真实机上一样。归纳一下,虚拟化技术能带来的好处有以下几点:

隔离:即允许在相互不信任的计算环境之间共享物理系统。例如,两个竞争对手可以在一个数据中心共享同一台物理机器,而不能够访问彼此的数据。

高可用性:虚拟化技术允许在物理机器之间无缝且透明地迁移工作负载,通常用于将工作负载从可能需要维护和更换的故障硬件平台迁移出去。

工作负载平衡:尽可能多地使用每个硬件平台,这可以通过虚拟机的迁移来实现,或者通过在物理机上共同托管适当的工作负载来实现。

沙箱:虚拟机可用于为可能干扰其运行的机器其他部分的应用程序提供沙箱。在虚拟机中运行这些应用程序可以防止应用程序的错误或恶意部分干扰物理计算机上的其他应用程序或数据。

当然,虚拟化技术带来的好处不止这些,此处就不一一列举了。

如何把虚拟机和真实的物理设备隔绝呢,或者说如何实现虚拟化。聪明的行业前辈们想到了一个方法,在hardware之上加一层hypervisor。对于hypervisor,百度百科是这样定义的,“一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM(Virtual Machine Monitor ),即虚拟机监视器。Hypervisor是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisor不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU网络和磁盘”。

有了hypervisor,我们再来看一下系统如何构成。先以汽车芯片为例,如下图。Hypervisor负责协调,控制所有的硬件资源。在hypervisor之上,把汽车行驶和安全相关的部分隔离成一部分,运行封闭操作系统(Closed OS);把与娱乐等相关的部分隔离成另一部分,运行开放操作系统(Open OS)。相对应的应用程序(APP)运行在各自操作系统之上。这样就可以起到一个很好的隔离作用,用户自己安装的APP不会影响到汽车行驶安全。

48dd83fc-2b98-11ee-a368-dac502259ad0.png

图1 汽车芯片中的虚拟化示意图

再来看一个服务器的例子,如下图。一台服务器可能拥有很多的处理器,硬盘等。通过hypervisor,可以分配给不同的虚拟机以不同的硬件资源。比如对于VM1,可能要运行一些安全等级高的任务,这时就可以把Hardware0的资源只分配给VM1,其它的虚拟机不能访问。对于Hardware1,同时分配给VM0,VM1,VM2等多个虚拟机,充分利用其资源。

4913aa22-2b98-11ee-a368-dac502259ad0.png

图2 服务器芯片中的虚拟化示意图

Hypervisor分为两大类,一类是standalone hypervisor,或者叫type1;另一类是hosted hypervisor,也叫type2。

496b25ae-2b98-11ee-a368-dac502259ad0.png

图3 type 1 hypervisor(standalone)

498cfd14-2b98-11ee-a368-dac502259ad0.png

图4 type 2 hypervisor(hosted)

两者的区别是,type1的hypervisor是直接运行在硬件之上的,而type2的hypervisor是运行在Host OS之中的。type1相当于一个轻量级的操作系统,直接跑在宿主机的硬件上;而type2相当于一个应用软件,运行在宿主机的操作系统之中。两者相同的是,客户操作系统(Guest OS)都是运行在hypervisor之上的。type1的hypervisor通常在性能上比Type2表现的更好,更为安全。type2相较于type1还有一个缺点就是延迟太高,这是因为hypervisor与硬件之间的交流还需要穿过操作系统这一层。Hosted hypervisor最多的应用场景是作为client hypervisor运行在终端用户的电脑上,而这种场景下一般是不需要关心延迟问题的。大多数企业一般选择type1类型的hypervisor用于数据中心的计算需求。

Arm平台上,type1 hypervisor比较典型的代表是Xen。Xen是由剑桥大学计算机实验室开发的一个开源项目。是一个直接运行在计算机硬件之上的用以替代操作系统的软件层,它能够在计算机硬件上并发的运行多个Guest OS。Xen支持x86、x86-64、Power PC和Arm多种处理器。2014年03月11日,Xen发布4.4版本,更好地支持Arm架构。Xen是半虚拟化(Para-Virtualization)技术的典型代表。半虚拟化技术,主要解决的就是如何捕获非特权指令的敏感指令。x86体系是导致半虚拟化技术产生的重要原因,因为x86体系结构中,部分敏感指令不是特权指令,这些指令不能自动产生异常,因此想要系统正常运行就必须要捕获这些指令。于是Xen采用修改Guest OS内核的方法对这些有缺陷的指令进行替换。根据直觉,既然有半虚拟化,就一定有全虚拟化,对不对?没错,你很机智,确实有“完全虚拟化”,又称“硬件虚拟化(Hardware Virtual Machine)”。简单说,两者的区别就是在半虚拟化中,Guest OS知道自己运行在Hypervisor上而不是硬件上,同时也可以识别出其他运行在相同环境中的客户虚拟机。在全虚拟化中,Guest OS任务自己运行在硬件上,无法感知其他Guest OS。

在Arm平台上,type2 hypervisor比较典型的代表是KVM。KVM(Kernel-basedVirtual Machine)是一个基于Linux环境的开源虚拟化解决方案,最早由以色列Qumranet公司开发,并于2007年2月被集成到Linux 2.6.20内核中,成为内核的一部分。与VMware ESX/ESXi、微软Hyper-V和Xen等虚拟化产品不同,KVM的思想是在Linux内核的基础上添加虚拟机管理模块,重用Linux内核中已经完善的进程调度、内存管理、IO管理等代码,使之成为一个可以支持运行虚拟机的Hypervisor。

49aebf94-2b98-11ee-a368-dac502259ad0.png

图5 Xen和KVM对比示意图

对于hypervisor感兴趣的同学可以上网去搜搜,一大堆的文章,在此就不过多介绍了(其实我也是一知半解,哈哈)。我们更关心的是,芯片要支持虚拟化,我们要做哪些工作。

审核编辑:汤梓红

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

    关注

    68

    文章

    19404

    浏览量

    230996
  • 操作系统
    +关注

    关注

    37

    文章

    6889

    浏览量

    123665
  • 虚拟机
    +关注

    关注

    1

    文章

    931

    浏览量

    28386
  • VMware
    +关注

    关注

    1

    文章

    298

    浏览量

    21728
  • 元宇宙
    +关注

    关注

    13

    文章

    1397

    浏览量

    11542

原文标题:Arm系列--虚拟化(一)

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    WAN中的虚拟

    ,甚至相互之间。这种方法不像管理完全由虚拟线路和路由创建的VPN那样昂贵或复杂,并且它将控制转发表的大小。最后,我们有两个不同的WAN驱动程序用于虚拟。一种是将数据中心
    发表于 08-24 13:47

    简要分析AArch64的虚拟

    某些场景下,还是需要的。比如在上下文切换或电源管理操作期间,更多特权级别有时会访问与较低异常级别关联的寄存,以实现虚拟功能或读写寄存
    发表于 03-30 10:36

    ARM系列虚拟资料分享

    由 hypervisor 模拟执行。[img][/img]2、虚拟中断的产生方式在一个非虚拟的系统中,操作系统可以直接访问 GIC 的寄存,并且
    发表于 03-31 09:33

    探讨一下ARM处理器平台的虚拟

    ,中断控制子系统和协处理器,用上述方式的话开销太大,对系统性能有很大冲击。比如,arm-v7架构不支持页表访问的虚拟,那么就需要影子页表,每次访问guest pa都
    发表于 04-14 10:00

    介绍arm GICv3和timer虚拟的支持

    实现虚拟,这种方式模拟了I/O寄存,并且将这些寄存作为虚拟机上下文的一部分存储在内存中。另一方面,每次中断
    发表于 10-11 14:58

    深入了解AArch64虚拟

    硬件扩展(加速虚拟机之间的切换) 以及管理程序软件。 虚拟机监控程序是一种允许多个操作系统共享单个硬件的程序 处理器虚拟管理程序可以大致
    发表于 08-02 12:52

    英特尔发布奔腾4处理器,支持虚拟技术

        英特尔公司近日宣布推出全新处理器带来业内首例面向台式机的硬件虚拟支持。
    发表于 03-13 13:03 951次阅读

    虚拟能给我们带来那些好处

    虚拟能给我们带来那些好处虚拟的浪潮从各个方向涌来,无论是服务
    发表于 01-27 13:42 2143次阅读

    存储虚拟五步规划剖析

    虽然存储虚拟的火热可能会被一些厂商为了达到宣传效果而过分夸大其功能,但是存储虚拟的确是能够给用户带来一些实实在在的
    发表于 01-29 16:30 764次阅读

    虚拟和云计算之间的关系

    云计算将计算当做是公共资源,虚拟是云计算的重要支撑技术,虚拟和云计算并不是相互捆绑的技术,只有相互搭配才能带来最好的效益。
    发表于 02-26 16:33 5209次阅读

    虚拟技术有哪些

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

    服务虚拟技术是什么?它有什么用?

    分配,而虚拟技术成为我们实现这一理想的唯一工具。 目前来讲,服务虚拟是大的虚拟
    的头像 发表于 07-05 17:24 4818次阅读

    服务虚拟技术是什么,常见虚拟架构有哪些

    服务虚拟技术是什么?对于服务虚拟技术其实应用是比较广泛的,它主要是将任何的一种形式的资源
    的头像 发表于 09-01 16:51 7947次阅读

    ARM对虚拟下设备直通的支持

    随着云计算领域里,ARM架构处理器的广泛使用,应用开发人员熟悉ARM架构相关技术的需求越来越迫切。众所周知,提供虚拟机服务是云计算的典型应用场景,而虚拟机里设备性能的优劣对服务质量至关重要。 提到
    的头像 发表于 09-26 10:19 3836次阅读
    ARM对<b class='flag-5'>虚拟</b><b class='flag-5'>化</b>下设备直通的支持

    I/O软件模拟虚拟和类虚拟

    I/O虚拟是SmartNIC/DPU/IPU中最核心的部分,AWS NITRO就是从I/O硬件虚拟化开始,逐渐开启了DPU这个新处理器类型的创新。而Virtio接口,已经是事实上的云
    的头像 发表于 10-13 11:09 2691次阅读