APP下载

基于内核虚拟机的桌面虚拟化架构设计

2021-01-28黄鸿李文杰刘东东

微型电脑应用 2021年1期
关键词:中间件桌面虚拟化

黄鸿, 李文杰, 刘东东

(广东电网有限责任公司 云浮供电局, 广东 云浮 527300)

0 引言

信息化的发展给IT管理领域带来了更多的挑战,如在需求用更少的资源做更多事情时,如何更好地保持和改建现有的桌面管理;面对不同种类的最终用户需求,如何在降低成本的前提下更好地管理各种端点设备等,而借助虚拟桌面基础设施可以让管理员构建与硬件无关的桌面环境,并且在同一个系统中,可以同时运行多台虚拟机,同时系统中的虚拟机也是相互独立和隔离开来的。完善的桌面虚拟化架构也可以保证在很短的时间内设立新的虚拟机,再加上内核虚拟机的融合应用,会让虚拟桌面比传统的桌面更加完善,优化桌面工作环境,提升启动速度。

1 基于KVM的虚拟技术

KVM虚拟机是一种开源系统虚拟化模块,这种内核虚拟机主要使用Linux自带的调度器进行系统管理,所以这种虚拟技术核心源码更少,也是目前学术界主流的VMM之一,KVM虚拟化必须借助ADM V技术或者是Intel VT技术等硬件的支持,故而也是一种基于硬件设施的完全虚拟化。

基于KVM的虚拟化技术灵活性更强,这种技术可以将不同操作系统、特殊硬件设备进行充分利用,进而答复降低不同系统维护的难度,正是由于这种特性,所以这种虚拟技术可以支持基于X86架构的Windows、Linux、Unix等操作系统更加稳定的运行。其具体架构,如图1所示。

图1 基于KVM的虚拟架构图

由图1可知,KVM在Linux系统中主要使用地层的硬件和设备虚拟化支撑,进而来为系统提供相对完成的原生虚拟化,当然只需要地层硬件虚拟化的支持,KVM就可以支持大量的客户机操作系统。

这种内核虚拟机技术的实现主要通过CPU虚拟化和内存虚拟化两方面实现。

(1) CPU虚拟化

第一,KVM首先需要执行VMXON指令,然后方可进入到VMX系统操作模式,此时CPU则是处在VMX根操作模式中,故而KVM软件开始执行相关指令;

第二,当KVM在执行VMLAUNCH指令或者是VMRESUME指令时,会产生相对应的虚拟机进入,此时虚拟机软件开始执行相关质量,同时CPU会进入到非根模式中;

第三,如果虚拟机需要执行特殊指令,或者是虚拟机在运行过程中出现系统异常、中断等情况时,则虚拟机会由于自动退出而进入KVM,此时CPU也会自动切换到根模式,并且KVM会根据VM Exit的具体情况作出对应处理,之后重复“第二”的操作流程;

第四,KVM如果决定退出VM Exit,则会自动执行VMXOFF,然后关闭VMX操作模式。

(2) 内存虚拟化

所有的客户操作系统都是借助/dev/kvm设备映射的,并且每一个系统都有对应的虚拟地址空间,各自的空间会重复的映射到宿主机内核物力地址空间中。KVM内存虚拟化的实现,首先EPT需要在原有的地址映射基础之上,引入EPT页表实现另一次映射,通过这种操作,客户虚拟地质、物理地址、宿主机物理地址中不同的地址转换都借助CPU硬件来自动实现。KVM实际上也可看做一种瘦虚拟化架构,由于本身体积较小,所以其支持硬件需要由Linux系统自身对硬件的支持来决定。

2 桌面虚拟化架构

2.1 桌面虚拟化架构构成

(1) 虚拟桌面服务器端

桌面虚拟化架构中,桌面服务器端需使用中高端的服务器,然后在服务器中安装虚拟化软件,借助服务器的虚拟化在宿主机中创建多个虚拟分区,每一个分区对应各自的终端桌面用户。

(2) 终端用户桌面端

终端用户桌面端顾名思义主要是面向终端用户,使用瘦客户端或者是专用的云终端,并且需要为每一个桌面用户配置对应的显示器、键盘、鼠标和专用云终端设备。

(3) 连接管理中间件组件

这一层主要是用户连接、调度的资源池,以VDI架构为例,这种组件主要存在于数据中心的虚拟桌面服务器中,利用这种组件可以为用户提供成百上千的虚拟桌面客户端。

2.2 桌面显示协议

桌面显示协议是影响虚拟桌面用户体验的关键所在,例如VDI架构中,必须借助虚拟桌面通讯协议来连通虚拟桌面和用户云终端,然后打包、压缩、加密用户云终端录入的信息数据,之后将数据信息传输到虚拟机进行进一步运算,而用户最终看到的是经过打包、加密、传输、解析之后的运算结果,不同的显示协议所体现的特征有所不同,对当前主流的显示协议做了重点比对,如表1所示。

表1 主流显示协议特性对比

因为远程服务访问是否流畅是由传统带宽要求直接决定的,而ICA本身的处理性能、数据压缩比相对较高,所以可以大幅度的降低系统对网络带宽的需求。用户图像显示一眼则体现的是虚拟桌面视图的数据组织形式和传输顺序。PCoIP模式使用的是分层渐进的凡是,进而在用户端显示桌面图像,简单讲就是先给用户传输一个完整但是相对模糊的图像,然后在此基础上进行逐步的精化处理,所以相较于其他3个厂商使用的分行扫描方式,视觉体验更加明显。

3 基于内核虚拟机的桌面虚拟化架构设计

3.1 桌面虚拟化架构设计

桌面虚拟化架构设计之前需要先决定使用哪一种桌面显示协议,根据表1的对比数据显示,同时基于内核虚拟机系统环境需求,本文的虚拟化架构设计中远程桌面显示协议使用SPICE协议,以SPICE协议为基础来规划桌面虚拟化架构系统,系统构成分为3个部分,即云终端模块、HOST模块和Broker中间件模块,如图2所示。

图2 桌面虚拟化架构模块构成图

之所以使用这种模块主要由以下几种原因。

第一,SPICE协议模块和桌面虚拟化环境结合更为密切,并且可以从Hypervisor中将显示、输入、输出等设备直接映射到SPICE协议中;

第二,SPICE能够用于在服务器、桌面计算机虚拟桌面中;

第三,SPICE能够支持多种系统的虚拟机应用,如Red Hat Enterprise Linux和Windows 7等;

第四,从表1可以看出,SPICE协议的视频显示效果相对较好,所以可以支持在虚拟机中播放高清、超清视频显示;

第五,SPICE借助双语音技术可以支持软件拨号、IP电话等功能,同时双向视频技术还可以提供可视电话功能,并且不需要借助特殊硬件设备。

确定使用SPICE协议之后则需要进行在桌面虚拟化架构整体设计。

桌面虚拟化架构设计主要由云终端模块、HOST模块、Broker中间件模块三个模块构成,从图2可以看出,云终端模块的构成包含3个端口,即Broker Agent、云终端(终端用户桌面端)配置和SPICE客户端;Host模块构成则对应云终端模块和Broker模块,包括SPICE服务端、QEMU-KVM、Host Agent和Guest Agent 4个;Broker中间件模块服务器包含的有服务器管理、虚拟机管理、数据库管理、用户和数据库接口等多个模块。其中,Broker中间件模块是云终端模块和Host端模块中间的一个桥梁模块端口,借助Broker中间件可以将云终端以及Host端口的虚拟机连成一体,而云终端和Broker中间件模块间的通讯连接需要借助云终端的Broker Agent模块实现。Broker Agent模块通过访问Broker中间件模块中的云终端接口来实现两个模块的连接,同时通过这个流程云终端模块可以从Broker中间件中获取用户的虚拟桌面信息,之后调用自身模块中的SPICE客户端与Host中的SPICE服务器进行通讯连接。另外,Broker中间件模块会为Host模块中的Host Agent端口提供Host Agent,从而来管理Host端虚拟机以及相对应的信息数据资源。

3.2 虚拟桌面服务器端功能

(1) QEMU-KVM虚拟机

KVM虚拟化管理模块主要来自于Linux内核,除此之外,Linux中还包括进程管理模块、内存管理模块、中断与异常情况处理模块、文件系统管理模块和设备管理模块等。KVM主要指的是内核模块、处理器模块两个部分。前者主要提供核心虚拟化支持,后者主要有两个模块,分别是kvm-intel.ko和kvm-amd.ko,这两个模块分别为Intel和AMD处理器提供虚拟化技术支持。

KVM需要借助加在kvm.ko内核模块才能将Linux内核转换成对应的Hypervisor,进而更易控制虚拟化进程,另外KVM还可以随着Linux标准内核的不断升级获取性能提升,例如调度程序的对应升级、内存点持的对应升级等。同时虚拟机对应成为标准的Linux进程,所以也可以使用标准的Linux进程管理机制来进行管理。由于才做系统可以直接和KVM进行交互,故而在不同的场景模式下,都可以直接与硬件实现交互,并且不需要改变虚拟机操作系统。

相较于KVM而言,QEMU则是一种使用动态翻译技术来实现快速指令的集层虚拟机,这种虚拟机可以支持整个计算机系统模拟,而KVM则是一种借助硬件虚拟化技术来代替QEMU的动态翻译技术,两者的结合可以实现Guest OS代码直接使用硬件处理,大幅提升系统性能。

(2) SPICE服务端功能

SPICE主要是提供强化版的运程桌面体验,作为一种桌面虚拟化框架主要的优势在于更多的以来KVM,两者的密切结合使得这种服务端所提供内容可以直接从模拟显卡中获取,并且性能会更优于RDP类型的远程桌面协议。

SPICE服务端的目的是提供质量更高的远程虚拟桌面访问,所以用户可以在单个服务器中借助QEMU运行两个以上的Linux或Windows客户端,然后在远程电脑中显示客户端信息。另外为了支持基于SPICE协议的桌面虚拟化实现,SPICE还在QEMU中实现了QXL(即虚拟化显示桌面设备驱动),所以SPICE服务端所需要的键盘、鼠标、USB等设备驱动都可以直接使用QEMU设备驱动,并且可以在单个服务中运行多个客户机操作系统,之后借助虚拟设备接口实现远程客户端信息显示,同时每一个远程桌面都会在KVM上运行。

实际上,SPICE协议主要是基于客户端——服务器端的一种通讯协议,与远程设备、图形指令、键盘事件、视频与音频流等交互过程中所发出的数据信息设计安全认真、构建连接、流量控制等多种控制。在服务器端口中,SPICE可以将应用软件的逻辑执行与用户界面分离,同时借助标准的网络传输协议将用户界面传送到客户端界面,用户通过客户端界面可以使用对应的接口,通过这个流程保证该应用逻辑执行全部在服务器端实现。

由于SPICE协议是借助标准协议来传递键盘、鼠标等指令,所以带宽需求相对较低,平均只需要20k左右的带宽,较低的带宽使用率和较高的传输效率可以保证32位应用在客户端被高效率的访问应用。

4 总结

总的来讲,借助内核虚拟机技术设计桌面虚拟化架构能够更好地继承、部署相对应的技术应用领域,同时还可以按照不同用户的不同需求做出对应的修改,桌面虚拟化的应用可以更好地解决桌面环境不够灵活、资源无法充分使用、数据安全无法保全、PC硬件成本较高、系统难以管理等问题,最大限度地将用户桌面环境和使用的终端设备松耦合,用户则可以使用不同的终端设备借助网络来访问该桌面环境,为用户提供更加个性化、干净的全新桌面,提高用户的使用体验。

猜你喜欢

中间件桌面虚拟化
基于APP在线控制双挤出头FDM桌面3D打印机的研制
桌面云技术在铁路行业中的应用
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
RFID中间件技术及其应用研究
基于Android 平台的OSGi 架构中间件的研究与应用
桌面装忙
浅析虚拟化技术的安全保障
H3C CAS 云计算管理平台上虚拟化安全防护的实现
中间件在高速公路领域的应用