• 万字剖析 Armv8 架构虚拟化

  • armv8-虚拟化架构 - 知乎 (zhihu.com)

  • Linux虚拟化KVM-Qemu分析(二)之ARMv8虚拟化_Alvis-lby的博客-CSDN博客

  • Armv8架构虚拟化介绍 - 码农教程 (manongjc.com)

  • TEE学习(二) ARMv8的虚拟化 - ppddcsz - 博客园 (cnblogs.com)

  • ARM 虚拟化介绍_Free飝Fly的博客-CSDN博客_arm 虚拟化

Intel 虚拟化技术参考

简介

VT,就是虚拟化技术(Virtualization Technology)的缩写。Intel VT就是指Intel的虚拟化技术。这种技术简单来说就是可以让一个CPU工作起来就像多个CPU并行运行,从而使得在一台电脑内可以同时运行多个操作系统。只有部分Intel 的CPU才支持这种技术。

技术对比

IntelVT虚拟化技术和多任务(Multitasking)、Hyper-Threading超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,你可以拥有多个独立的操作系统同时运行,每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或虚拟主机(虚拟机)上。而Hyper-Threading超线程只是在SMP系统(SymmetricMultiProcessing)中单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。

当然了,如果一个CPU同时支持Hyper-Threading和虚拟化技术的话,每一个虚拟CPU在各自的操作系统中都被看成是两个对称多任务处理的CPU。

技术发展

最早出现

虚拟化技术可能让人联想到早期IntelCPU上的“Virtual8086”技术,这种V86模式技术是用来兼容早期的8086/8088处理器而设计的,最早出现386机器上。使用V86模式你可以创建好几个并行虚拟8086计算机来运行多个DOS程序.同样道理,使用VT技术你也可以创建几个完整的虚拟机来运行几个完整的操作系统。

改进原因

可是既然已经有VMware这类可以达到虚拟目的的软件,为什么还要努力来实现硬件CPU内部的虚拟化技术呢?这是因为硬件CPU的虚拟化技术有许多优势。支持虚拟化技术的CPU带有多余的指令集来控制虚拟过程,通过这些指令集,控制软件VMM(VirtualMachineMonitor)会很容易提高性能,相比纯软件的虚拟化实现方式,会在很大程度上提高性能。

IntelVT虚拟化技术的实施需要处理器、芯片组、BIOS、VMM软件的同时支持,这些特定的硬件、软件必须全部到位。性能要视不同的硬件、软件而定。支持Intel虚拟化技术的VMM(Hypervisor)已有开源项目和版本,并在持续优化中,某些厂商也已推出了成熟的商用版本。Intel将硬件辅助虚拟化集成到主要的服务器组件中,帮助IT机构在每台服务器上整合更多的应用和更繁重的工作负载,从而进一步提高灵活性、可靠性并降低总体拥有成本TCO(TotalCostofOwnership)。

核心技术

IntelVT虚拟化技术包括分别针对处理器、芯片组、网络的IntelVT-x、IntelVT-d和IntelVT-c技术:

1. Intel VT-x技术:增强处理器的VT虚拟化技术,包括IntelVTFlexPriority、IntelVTFlexMigration(Intel虚拟化灵活迁移技术)、ExtendedPageTables(IntelVT扩展页表)。

IntelVT-x可以让一个CPU工作起来像多个CPU在并行运行,从而使得在一台物理服务器内可以同时运行多个操作系统。能够降低(甚至消除)多个虚拟机操作系统之间的资源争夺和限制,从硬件上极大地改善虚拟机的安全性和性能,有助于提高基于软件的虚拟化解决方案的灵活性与稳定性。IntelVT-x技术可以消除VMM(VirtualMachineMonitor虚拟机监视器)参与虚拟机“中断”请求的处理与特定指令的执行,这样VMM操作和控制虚拟机时,将更加快速、可靠和安全。

此外,IntelVT-x具备的虚拟机迁移特性还可为IT投资提供有力保护,并进一步提高故障切换、负载均衡、灾难恢复和维护的灵活性。

IntelVTFlexPriority(灵活优先级):当处理器执行任务时,往往会收到其它设备或应用发出的请求或“中断”命令。为了最大程度减少对性能的影响,处理器内的一个寄存器专用来监控任务优先级,只有优先级高于当前运行任务的请求或“中断”才被及时处理。

IntelVTFlexMigration(灵活迁移):虚拟化能够在无需停机的情况下,将运行中的虚拟机在物理服务器之间进行迁移。借助此项技术,管理程序能够在迁移池内的所有服务器中建立一套一致的指令,实现工作负载的无缝迁移。需注意的是,在不同厂商、不同型号的处理器之间迁移,可能由于指令集不同而出现故障或问题。

ExtendedPageTables(扩展页表):为了降低实现内存虚拟化的难度和提升内存虚拟化的性能,ExtendedPageTables直接在硬件上支持虚拟机内存的逻辑地址->虚拟机内存的物理地址->物理服务器内存的物理地址的两次转换。

IntelVT-x已经扩展到了Intel多个产品系列中,包括Pentium、Celeron、Corei3、Corei5、Corei7、Core2Duo、CoreSolo、Core2Extreme、Core2Quad、Xeon、Quark、Atom、Itanium。

2. Intel VT-d技术:支持直接I/O访问的IntelVT虚拟化技术。

如果每台服务器上部署更多的虚拟机,虚拟机数据进出系统的I/O流量就会增加并且更趋复杂。如果没有硬件支持,VMM必须直接参与每项I/O操作,不仅会减缓数据传输速度,还会由于VMM的频繁活动而增大服务器处理器的负载。这就如同在一个繁忙的停车场,每位车主都不得不通过独一的进出口,并且只由独一的门卫放行。这样不仅会耽误车主的时间,也会使门卫工作紧张无法处理其他事务。英特尔芯片组的IntelVT-d技术可以出色地解决上述问题。

IntelVT-d通过VMM将特定I/O设备安全分配给特定虚拟机来实现,从而减少VMM参与管理I/O流量的工作,不但加速了数据传输,而且消除了大部分的性能开销。每个I/O设备在系统内存中都有一个专用区域,只有该I/O设备及分配到该设备的虚拟机才能对该内存区域进行访问。

VMM完成初始分配之后,数据即可直接在虚拟机与为其分配的I/O设备之间进行传输。这样,就加快了I/O的流动,减少VMM活动及服务器处理器的负载。此外,由于特定设备或虚拟机的I/O数据内存区不能被其它硬件或虚拟机访问,系统的安全性与可用性也得到了增强。

3. Intel VT-c技术:支持网络连接的Intel虚拟化技术,包括虚拟机设备队列(VMDq)、虚拟机直接互连(VMDc)。

随着企业在虚拟化环境中部署越来越多的应用,并利用实时迁移来均衡负载或提升可用性,对虚拟化I/O设备的要求也在显著提高。通过将广泛的硬件辅助特性集成到I/O设备(该设备用于保持服务器与数据中心网络、存储基础设施及其它外部设备的连接)中,IntelVT-c可针对虚拟化进一步优化网络。这套技术组合的功能与邮局非常相似:将收到的信件、包裹分门别类,然后投递到各自的目的地。IntelVT-c在专用网络芯片上执行这些功能,大幅提高了交付速度,减少了VMM与服务器处理器的负载。IntelVT-c包括以下两项关键技术(当前所有的英特尔万兆服务器网卡及千兆服务器网卡均支持)。

虚拟机设备队列(VMDq):最大限度提高I/O吞吐率。在传统服务器虚拟化环境中,VMM必须对每个单独的数据包进行分类,并将其发送到相应的虚拟机。这样会占用大量的处理器周期。而借助VMDq,该分类功能可由英特尔服务器网卡内的专用硬件来执行,VMM只需负责将预分类的数据包组发送到相应的虚拟机。这将降低I/O延迟,使处理器获得更多的可用周期来处理业务应用。IntelVT-c可将I/O吞吐量提高一倍以上,使虚拟化应用达到接近物理服务器的吞吐率。

虚拟机直接互连(VMDc):大幅提升虚拟化性能。VMDc支持虚拟机直接访问网络I/O硬件,从而显著提升虚拟机性能。如:通过单个英特尔万兆服务器网卡,可为10个虚拟机中的每个虚拟机分配一个受保护的、1Gb/s的专用链路。这些通信链路直接绕过了VMM交换机,进一步提升了I/O性能并减少服务器处理器的负载。

六、分享优秀的Armv8 虚拟化技术地址相关推荐

  1. 23. 硬件虚拟化技术分享

    前段时间在梳理一些概念时,突然对虚拟化有一种新的认识,之后再去了解相关的概念或技术,能够推测某个技术是为了解决什么问题和如何实现的. 本文将对硬件虚拟化及其相关逻辑进行罗列,可能会对理解虚拟化有一些帮 ...

  2. Arm云游戏及虚拟化技术沙龙,Arm中国,NVIDIA,腾讯及百度等为你分享超强技术干货...

    申耀的科技观察 读懂科技,赢取未来! 2021年3月24日,由Arm中国.竞核联合主办的"芯潮澎湃 云启未来"Arm云游戏及虚拟化技术沙龙在上海圆满落幕. Arm中国市场及生态副总 ...

  3. 虚拟化技术发展编年史

    作者 | 范桂飓 责编 | 屠敏 出品 | CSDN 博客 前言 我已经想不起来是从什么时候开始的,突然就对计算机历史产生了浓厚的兴趣.于是我想着,要不以后所有系列文章的开篇都先和大家聊聊历史吧.其实 ...

  4. Xen和虚拟化技术学习指南

    1. 引言 现代计算机具有足够强大的能力来利用技术支持多个虚拟机(VM: virtual machines),并且在每个虚拟机上各自运行单独的操作系统实例.这直接导致了虚拟机技术发展的又一个春天.在本 ...

  5. 网络虚拟化技术为双11提供灵动网络

    摘要: 12月13-14日,由云栖社区与阿里巴巴技术协会共同主办的<2017阿里巴巴双11技术十二讲>顺利结束,集中为大家分享了2017双11背后的黑科技.本文是<网络虚拟化技术为双 ...

  6. 虚拟器件—虚拟化技术的新利刃 | 时光机

    戳蓝字"CSDN云计算"关注我们哦! 时光机:搭载这部时光机,带您回顾<程序员>大量优秀文章,重温经典技术干货,我们发现硬核技术永不过时,对于get要点.solve难题 ...

  7. 从 VMWare 到阿里神龙,虚拟化技术 40 年演进史

    [CSDN 编者按]这几年,越来越多的企业把业务搬到云上来,阿里云顺势推出一个既兼具物理机的性能同时又能提供虚拟机体验的产品--神龙.这款服务器的架构是怎样的?有何特别之处?在「CSDN 在线峰会 - ...

  8. 网络虚拟化技术与NFV

    一.虚拟化技术概述 1.虚拟化技术简介 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独 ...

  9. Docker技术( 容器虚拟化技术 )

    Docker--容器虚拟化技术 第一章 Docker介绍 诞生背景 Docker 介绍 虚拟机技术与容器虚拟化技术 虚拟机技术 容器虚拟化技术 官方网址 第二章 Docker安装 前提条件 安装Doc ...

最新文章

  1. ios 将矩形图片裁剪成圆形图片
  2. iOS 中的事件传递和响应机制 - 实践篇
  3. springapplication.run运行多个应用_编程的十二要素应用宣言
  4. 信号 09 | 信号概念
  5. condition的作用
  6. Quartz的定时任务实现
  7. 原生Android 侧滑菜单实践(部分)
  8. 使用HTML和CSS格式化DBMail
  9. QT文本编辑器(QMainwindow版)超详细
  10. 移动端中的vMin和vMax
  11. 将社会工程学演绎成艺术---弗兰克·威廉·阿巴内尔的传奇故事--黑客博客
  12. c语言第三章程序设计实训
  13. ScrollMagic结合TweenMax的Demo
  14. IBM发表未来5年5项科技预测 3D全息手机或现世
  15. elasticsearch实现基于拼音搜索
  16. MySQL:查询每个部门的员工小时平均工资(显示部门名称、部门员工小时平均 工资)
  17. 视频教程-Python零基础入门教程-Python
  18. JavaScript - 将 Allegro 坐标文件转为嘉立创坐标文件(CSV 格式)的工具
  19. 怎么学习Android
  20. 联想e470c怎么修改电脑语言,我联想e470c笔记本,重装系统把预装的win10改成win...-e470改win7,联想e470装win10bios...

热门文章

  1. 如何利用自动化设备行业ERP系统做好材料采购管理
  2. 京东开源asyncTool之线程编排
  3. html中字的属性设置,html怎么设置字体属性
  4. 基于am5718的【ARM-Linux开发】wayland和weston的介绍
  5. Java多线程Zip压缩
  6. Redis教程之基础-五种数据基本操作
  7. Beyond Compare 中文乱码解决
  8. 别人看我真威风,我羡别人好轻松
  9. 【强烈推荐】机器学习之算法篇
  10. Android实现蝴蝶动画,Android中的动画具体解释系列【2】——飞舞的蝴蝶