服务器虚拟化技术深度科普
来源:微云 时间:2022-07-29 09:12:16阅读:0
追述服务器虚拟化技术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软件堆栈的位置是传统意义上操作系统的位置,操作系统的位置是传统意义上应用程序的位置GuestOS为了提供物理资源(如处理器、内存、存储、显卡、网卡等)的接口,需要进行二进制转换,以模拟硬件环境。
半虚拟化:GuestOS一些代码被改变了GuestOS所有与特权指令相关的操作都将转换为发送VMM的Hypercall(超级调用),由VMM继续处理并返回结果。
软件辅助虚拟化:引入新的指令和运行模式VMM和GuestOS在不同的模式下单独运行(ROOT模式和非ROOT在模式下,和GuestOS运行在Ring0下操作GuestOS计算机系统的硬件执行可以直接下达核心指令VMM。
虚拟化软件架构分类
服务器虚拟化是云计算的关键技术之一,具有广泛的意义,包括服务器、存储、网络和数据中心虚拟化。其目的是将任何形式的资源抽象成另一种形式的技术都是虚拟化的。今天,我们将讨论服务器虚拟化架构的分类。
寄居虚拟化:虚拟化管理软件作为底层操作系统(Windows或Linux等)上的普通应用程序,然后创建相应的虚拟机,共享底层服务器资源。
裸金属虚拟化:Hypervisor是指直接运行在物理硬件上的虚拟机监控程序。它主要实现识别、捕获和响应虚拟机发出的两个基本功能CPU特权指令或保护指令;其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回到相应的虚拟机。
操作系统虚拟化:没有独立的hypervisor层。相反,主机操作系统本身负责在多个虚拟服务器之间分配硬件资源,并使这些服务器相互独立。一个明显的区别是,所有虚拟服务器必须运行相同的操作系统(但每个例子都有自己的应用程序和用户账户),Virtuozzo/OpenVZ/Docker等等。
混合虚拟化:混合虚拟化模型同寄居虚拟化一样使用主机操作系统,但不是将管理程序放在主机操作系统之上,而是将一个内核级驱动器插入到主机操作系统内核。这个驱动器作为虚拟硬件管理器(VHM)协调虚拟机与主机操作系统之间的硬件访问。混合虚拟化模型依赖于内存管理器和现有内核CPU调度工具。就像裸金属虚拟化和操作系统虚拟化架构一样,没有冗余的内存管理器和CPU调度工具大大提高了该模型的性能。
对比各种架构
裸金属虚拟化架构和混合虚拟化架构将是未来虚拟化架构的发展趋势,硬件辅助虚拟化可以实现接近物理机器的运行性能。KVM、Hyper-V、VMware主流服务器虚拟化支持硬件辅助虚拟化。
内存虚拟化
在虚拟环境中,虚拟化管理程序需要模拟使虚拟内存仍然符合客户机OS假设和理解内存。在虚拟机看来,物理内存应该是多个客户OS同时使用;将物理内存分配给多个系统和客户机OS内存连续性问题。
为了解决上述问题,引入了一个新的客户机物理地址空间,使虚拟机OS看到虚拟物理地址,虚拟化管理程序将其转换为物理处理器。即给定虚拟机,维护客户机物理地址与宿主机物理地址之间的映射关系;截获虚拟机访问客户机物理地址,并将其转换为物理地址。
内存全虚拟化:虚拟化管理程序为每个Guest维护虚拟地址的影子页表(VA)到机器地址(MA)映射关系。
内存半虚拟化技术:当GuestOS当创建一个新的页表时,它的方向VMM注册页表,然后在Guest运行时,VMM本表将不断管理和维护Guest上述程序可以直接访问合适的地址。
软件辅助内存虚拟化:在原页表的基础上,增加了一个EPT(扩展页表)页表,可以通过此页表进行Guest物理地址直接翻译成主机的物理地址。
I/O虚拟化技术
虚拟化后,服务器的以太网端口被分成多个端口,网络、存储和服务器之间的流量可能不够。遇到它I/O瓶颈时,CPU会有空等待数据,计算效率会大大降低。因此,虚拟化也必须扩展到I/O在工作负载、存储和服务器之间动态共享带宽,可以最大限度地利用网络接口。
I/O虚拟化的目标不仅仅是让虚拟机访问它们所需要的I/O资源,要做好它们之间的隔离,更重要的是要减少虚拟化带来的开支。
全虚拟化:通过模拟I/O设备(磁盘和网卡等)来实现虚拟化。对GuestOS它所能看到的就是一组统一I/O设备,VMM截获GuestOS对I/O设备访问请求,然后通过软件模拟真实硬件。这是正确的Guest非常透明,不需要考虑底层硬件Guest磁盘类型、物理接口等操作。
半虚拟化:通过前端和后端架构Guest的I/O请求通过环形队列传递到特权域(也称为)Domain0)。由于这种方法的相关细节较多,以后会进行深入分析。
硬件辅助虚拟化:最具代表性的是Intel的VT-d/VT-c,AMD的IOMMU和PCI-SIG的IOV等等。这种技术也需要相应的网卡来实现,目前常见的网卡分为普通网卡,VMDq直通和SR-IOV。
采用普通网卡Domin0网桥队列。
VMDq通过VMM在服务器的物理网卡中为每个虚机分配一个独立的队列,虚机出来的流量可直接经过软件交换机发送到指定队列上,软件交换机无需进行排序和路由操作,Hyper-V采用这种模式。
SR-IOV创建不同的虚拟功能(VF)这样,虚拟机就可以直接与硬件网卡通信,不再通过软件交换机,减少虚拟化管理程序层的地址转换。
Intel硬件支持虚拟化
VT-x技术为IA增加了32处理器VMXrootoperation和VMXnon-rootoperation两种操作模式。VMM自己运行在VMXrootoperation模式,GuestOS运行在VMXnon-rootoperation模式。支持两种操作模式Ring0-Ring因此,特权运行水平VMM和GuestOS他们可以自由选择所期望的操作级别。允许虚拟机直接执行某些指令并减少它们VMM负担。VT-x指强处理器VT技术,VT-i指安腾处理器VT技术。
VT-d(VTforDirectI/O)允许虚拟机直接访问芯片组I/O减少设备VMM和CPU负担。其核心思想是让虚拟功能直接使用物理设备,但这将涉及到I/O地址访问和DMA的问题,而VT-d通过采用DMA重映射和I/O为了解决这两个问题,虚拟功能可以直接访问物理设备。
VT-c(VTforConnectivity)主要在网卡上实现,包括两个核心技术VMDq和VMDc。VMDq不同虚拟机的数据包通过网卡上的特定硬件提前分类,然后通过VMM为了减少原因,分发给各种虚拟机VMM对数据包进行分类CPU开销。VMDc允许虚拟机直接访问网卡设备,SingleRootI/OVirtualization(SR-IOV)是PCI-SIG规范,可以是一个PCIe设备分配给多个虚拟机直接访问。
可信执行技术(TXT)使用先进的模块芯片可以有效地确保用户的计算机免受各种安全威胁。访问的计算机资源主要由硬件核心和子系统控制。计算机病毒、恶意代码、间谍软件和其他安全威胁将不复存在。
GPU及GPU虚拟化技术
GPU直通将GPU设备直接到虚拟机;GPU共享则将GPU设备直通给GPUserver虚拟机,GPUserver可与GPUclient共享其GPU设备;GPU虚拟化是指将GPU设备可以虚拟化n个vGPU,对应的n该虚拟机可同时直接使用GPU支持虚拟化的设备GPU设备可配置为直接或虚拟化类型。
GPU虚拟化通过VGXGPU硬件虚拟化功能,物理GPU多个虚拟设备虚拟GPU设备供虚拟机使用,每个虚拟机通过绑定vGPU物理可以直接访问GPU所有的硬件资源vGPU访问物理可以分时共享GPU的3D图形引擎和视频编解码引擎,并且有独立的显存。
GPU虚拟化功能支持物理GPU多台虚拟机可同时使用设备GPU直通中一个GPU设备只能用于虚拟机。GPU同时使用相同的虚拟化GPU虚拟机间物理设备不相互影响,系统自动分配物理GPU多台虚拟机具有设备的处理能力GPU共享是通过GPUserver挂载GPU在主机上建立设备GPUServer与GPUclient的高速通讯机制,使得GPUclient可以共享GPUserver的GPU设备,GPUclient是否享有GPU功能完全依赖GPUserver。
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
本站原创内容未经允许不得转载,或转载时需注明出处:https://news.kd010.com/fwqjs/12111.html