加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

服务器虚拟化技术深度科普

发布时间:2019-03-07 00:25:54 所属栏目:业界 来源:架构师技术联盟
导读:服务器虚拟化技术要追述到IBM大型机的虚拟化 z/VM,在z系列大型机(非虚拟化操作系统是z/OS)上实现服务器虚拟化。基于z/VM可以运行上百个虚拟机。后来在Power上的KVM技术是PowerKVM;以及AIX虚拟化PowerVM,支持vSCSI和NPIV两种技术(虚拟出系统叫VIOS)。今天
副标题[/!--empirenews.page--]

服务器虚拟化技术要追述到IBM大型机的虚拟化 z/VM,在z系列大型机(非虚拟化操作系统是z/OS)上实现服务器虚拟化。基于z/VM可以运行上百个虚拟机。后来在Power上的KVM技术是PowerKVM;以及AIX虚拟化PowerVM,支持vSCSI和NPIV两种技术(虚拟出系统叫VIOS)。今天的内容覆盖了CPU虚拟化、内存虚拟化、Intel硬件辅助技术、IO虚拟化和GPU虚拟化等,技术深度科普文章;请老司机们让车,忽略今天的内容。

很多读者可能认为服务器虚拟化技术遭到了容器技术的冲击,可能已经过时了,事实上在很多场景下,虚拟化技术并非容器所能够替代的。所以作为要踏入云计算领域的初学者们,还是有必要深入了解服务器虚拟化。下面我们看看虚拟化发展历程和外在因素和推动力。

分区技术使得虚拟化层为多个虚拟机划分服务器资源的能力;使您能够在一台服务器上运行多个应用程序,每个操作系统只能看到虚拟化层为其提供的虚拟硬件。

虚拟机隔离让虚拟机是互相隔离,一个虚拟机的崩溃或故障(例如,操作系统故障、应用程序崩溃、驱动程序故障等等)不会影响同一服务器上的其它虚拟机。

封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。这样,您只需复制几个文件就可以随时随地根据需要复制、保存和移动虚拟机。

CPU虚拟化发展

服务器虚拟化按照虚拟化程度可分为全虚拟化、半虚拟化、硬件辅助虚拟化。

CPU虚拟化的条件和技术难点,CPU本身有不同运行级别,这些级别对应不同权限。虚拟机执行到这些敏感指令的时候,很有可能出现错误,将会影响到整个机器的稳定,所以不允许VM直接执行。那就需要虚拟化平台解决这个问题。

服务器虚拟化技术深度科普

全虚拟化: VMM在软件堆栈中的位置是传统意义上操作系统所处的位置,而操作系统的位置是传统意义上应用程序所处的位置。每个Guest OS对特殊指令访问通信需要进行二进制转换,以便提供到物理资源(如处理器、内存、存储、显卡和网卡等)的接口,模拟硬件环境。

半虚拟化: Guest OS的部分代码被改变,从而使Guest OS会将和特权指令相关的操作都转换为发给VMM的Hypercall(超级调用),由VMM继续进行处理并返回结果。

硬件辅助虚拟化: 引入新的指令和运行模式,使VMM和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest OS运行在Ring 0下运行。使得Guest OS的核心指令可以直接下达到计算机系统硬件执行,而不需要经过VMM。

虚拟化软件架构分类

服务器虚拟化是云计算非常关键的技术之一,虚拟化的含义很广泛,包括服务器、存储、网络以及数据中心虚拟化。其宗旨就是将任何一种形式的资源抽象成另一种形式的技术都是虚拟化。今天我们讨论一下服务器虚拟化架构的分类。

寄居虚拟化: 虚拟化管理软件作为底层操作系统(Windows或Linux等)上的一个普通应用程序,然后通过其创建相应的虚拟机,共享底层服务器资源。

裸金属虚拟化: Hypervisor是指直接运行于物理硬件之上的虚拟机监控程序。它主要实现两个基本功能:首先是识别、捕获和响应虚拟机所发出的CPU特权指令或保护指令;其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机。

操作系统虚拟化: 没有独立的hypervisor层。相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户),Virtuozzo/OpenVZ/Docker等等。

混合虚拟化: 混合虚拟化模型同寄居虚拟化一样使用主机操作系统,但不是将管理程序放在主机操作系统之上,而是将一个内核级驱动器插入到主机操作系统内核。这个驱动器作为虚拟硬件管理器(VHM)协调虚拟机和主机操作系统之间的硬件访问。可以看到,混合虚拟化模型依赖于内存管理器和现有内核的CPU调度工具。就像裸金属虚拟化和操作系统虚拟化架构,没有冗余的内存管理器和CPU调度工具使这个模式的性能大大提高。

各种架构对比

裸金属虚拟化架构与混合虚拟化架构将是未来虚拟化架构发展的趋势,配合硬件辅助虚拟化可以达到接近物理机的运行性能。KVM、Hyper-V、VMware等主流服务器虚拟化都支持硬件辅助虚拟化。

内存虚拟化

在虚拟环境里,虚拟化管理程序就要模拟使得虚拟出来的内存仍符合客户机OS对内存的假定和认识。在虚拟机看来,物理内存要被多个客户OS同时使用;解决物理内存分给多个系统使用,客户机OS内存连续性问题。

要解决以上问题引入了一层新的客户机物理地址空间来让虚拟机OS看到一个虚拟的物理地址,并由虚拟化管理程序负责转化成物理地址给物理处理器执行。即给定一个虚拟机,维护客户机物理地址到宿主机物理地址之间的映射关系;截获虚拟机对客户机物理地址的访问,将其转化为物理地址。

内存全虚拟化: 虚拟化管理程序为每个Guest都维护一个影子页表,影子页表维护虚拟地址(VA)到机器地址(MA)的映射关系。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读