基于云终端算力提升VDI 云桌面性能的融合架构
2022-10-27何新彪
何新彪
(锐捷网络股份有限公司,福建福州 350002)
引言
随着云计算和虚拟化技术的发展,VDI 云桌面(Virtual Desktop Infrastructure 虚拟桌面基础架构,以下简称云桌面)逐渐成为了计算机桌面的应用选择之一。云桌面也叫虚拟桌面、虚拟机,云桌面运行在云服务器上。云服务器一般为单台或者多台高性能计算机组成,并为用户提供远程的云桌面服务。
但随着云桌面运行的业务越来越繁重,运行一些高负载的应用如3D 动画[1],图形设计,编程软件,语音视频软件等,或者多用户并发地同时操作云桌面时,VDI 云桌面的卡顿、资源不足、性能不佳、体验差等问题逐一暴露出来。这些问题由于云桌面是通过云服务器的虚拟化技术实现导致的,在该技术架构下,相对于普通PC(个人计算机,PC,Personal Computer)的桌面使用体验,VDI云桌面在性能上和普通PC 相比还是存在差距。
针对上述问题,特别需要一种新架构来提升云桌面性能。
1 VDI 云桌面技术架构
VDI 云桌面是指将一台云服务器虚拟为多台逻辑的计算机桌面,每个逻辑计算机桌面称为VDI 云桌面。云桌面上可部署Windows、Linux 系统、及应用软件(以下简称软件)等。用户通过云终端计算机VDI 客户端与云服务器通信。云服务器将VDI 云桌面通过交互协议呈现给云终端的用户使用。
2 VDI 云桌面性能提升技术架构
提升VDI 云桌面性能,最基本是扩容云服务器的硬件,例如单台服务器增配CPU、内存、硬盘、GPU 显卡,或者多台云服务器组合使用,但成本的增加导致竞争处于劣势。因此转向采用软件方案来提升VDI 云桌面性能,主要有3 种方法:
2.1 重定向技术
重定向技术是指将云桌面的部分计算任务转移到云终端上[2],例如播放视频文件时,把音视频流传输到云终端上进行解码、渲染,然后把声音、画面回传到云桌面上播放,从而减轻云服务器计算压力。该方案应用范围窄,仅限视频播放类应用,无法推广。
2.2 云终端其他系统运行软件
该技术在云终端本地直接运行桌面系统[3]、或者其他架构的桌面系统,例如直接在云终端运行的Windows、Linux、Android 操作系统上,安装一些软件应用,替代部分VDI 云桌面的应用。同时云终端本地系统运行VDI 客户端连接服务器的VDI 云桌面。云终端本地系统和VDI 云桌面,通过简单浮动或者隐藏菜单进行相互切换使用。该方案需要来回切换两套桌面,仅能在指定桌面完成对应的应用打开,使用混乱,操作体验差。
2.3 云服务器资源动态调度
该技术通过在云服务器中,根据用户请求云桌面的资源消耗特点,对云桌面需要的资源进行动态分配,使得云桌面的资源需求与云服务器的能力达到匹配,最大化地提升了云桌面的运行效率[4]。该方案主要是针对云服务器的资源进行最大化的利用,未对整个云服务器,包括云终端的资源进行最大化利用[5]。
3 基于云终端算力提升VDI 云桌面性能的融合架构
3.1 架构概述
基于云终端算力提升VDI 云桌面性能的架构(简称融合架构),是一种基于x86 架构的云终端来提升VDI 云桌面性能的架构,能够实现在VDI 云桌面内流畅的运行高性能软件,并保证用户使用软件的操作体验如同在云桌面一样。
融合架构通过调度算法分析软件的历史性能数据、云服务器资源数据、云终端本地资源数据,判断用户请求的软件类型,自动调度软件适合运行的最优系统,最大化的利用了云服务器和云终端的硬件资源,提升了软件的运行效率,达到如同普通PC 运行软件的效果。
3.2 架构组成
融合架构见图1,包括:
图1 架构图
云终端:为x86 架构体系;安装并运行Windows 系统;用于运行软件、客户端。
客户端:用于远程连接云桌面;接收融合调度中心多种指令,例如打开或者关闭云终端软件;监控云终端软件消耗资源数据。
云终端软件:运行在云终端本地系统上。
云服务器:创建并运行云桌面。
云桌面:为Windows 系统桌面;提供给云桌面软件运行桌面环境。
云桌面软件:运行在云桌面Windows 系统上。
融合调度中心:融合调度中心运行在云桌面上。
4 技术方案实施
4.1 软件分类
融合调度中心实现软件管理,包括:软件类型、名称、软件所在路径、需占用的CPU 资源、需占用的内存资源、需占用的磁盘资源、需占用的网络资源、软件在云桌面的安装路径、软件在云终端本地系统的安装路径。软件分为两类:A 类、B 类。
a.A 类软件为云桌面和云终端本地系统都可以运行的软件,且两个系统都安装就绪。b.B 类软件是指仅能在云终端本地系统安装和运行的软件。
4.2 资源数据采集
4.2.1 系统空闲资源的采集分析 系统空闲资源数据采集,包括实时获取云服务器和云终端本地CPU 使用率、内存使用率、磁盘读写使用率、网络发送与接收带宽使用率,从而计算得出各个资源空闲率。
a.云服务器资源信息,通过运行在云桌面的融合调度中心来采集。b.云终端本地资源信息,通过客户端进行采集。
采集的资源是为了计算云服务器资源、云终端本地资源的剩余可利用资源还有多少,以便融合调度中心判断A 类软件在哪个系统桌面打开。
4.2.2 软件占用系统资源的采集分析 软件占用系统资源的采集分析,包括软件使用云服务器资源、云终端系统资源数据采集。采集的资源是为了用于计算软件历史消耗系统资源的情况,以便分析软件消耗资源的参数主要是CPU、内存、磁盘,还是网络带宽,进一步判断软件在哪个系统的桌面运行更流畅。
a.采集的软件参数包括:CPU 使用率、内存使用率、磁盘读取速度使用率、磁盘写入速度使用率、网络发送带宽使用率、网络接收带宽使用率。b.采集方式为软件运行时占用系统资源的所有历史数据,并且不断地更新数据用于分析。c.A 类软件既可运行在云服务器,也可运行在云终端本地系统,需要采集在两个系统的运行历史数据,以判断其在哪个系统中运行的体验最佳。d.B 类软件仅能在云终端本地系统运行,不需要判断其使用资源的情况,不涉及到调度问题。
4.3 软件启动调度流程
4.3.1 A 类软件启动调度流程 a.如图2 所示,在云桌面打开A 类软件,融合调度中心判断软件类型是A 类软件,且是第一次打开该软件,由于还未有该软件历史数据,直接打开该软件。b.如果非第一次打开,则获取软件资源占用类型数据,判断其为何种资源占用类型的软件。例如为内存占用型软件。c.融合调度中心实时获取云服务器、云终端本地资源数据,判断哪个系统资源空闲更多。d.融合调度中心判断该软件是“何种参数占用型软件”、“云终端本地系统、还是云桌面运行更优”,并在更优的系统打开。
图2 A 类软件启动调度流程
4.3.2 B 类软件启动调度流程 在云桌面打开软件,融合调度中心判断是B 类软件,通知客户端在云终端本地系统打开软件。
4.4 软件桌面融合
融合架构还对这两个桌面的操作体验进行优化。VDI 云桌面作为用户操作的主界面,并在云终端屏幕上始终置顶,且为用户操作始终可见的Windows 桌面。云终端本地系统的Windows 桌面为云终端本地系统,对用户不可见。
4.4.1 A 类软件桌面融合 a.如图3 所示,在云桌面打开A 类软件,融合调度中心判断是A 类软件。b.如果是在云桌面运行的,操作体验同Windows 桌面。c.如果软件在被隐藏的云终端本地系统打开,需要通过客户端将云终端本地的软件界面、任务栏图标、通知区域图标,映射到云桌面的操作界面上。
图3 A 类软件桌面融合流程图
如图4 所示,两个桌面的融合元素包括:窗口融合、任务栏图标融合、通知区域图标融合等。
图4 A 类软件桌面融合示意图
例如,在云终端本地系统打开的A 类软件,会随着软件获取到了鼠标或者键盘的焦点后,优先置顶显示,让用户感知就是在云桌面里面运行。
例如,当在云终端本地系统的A 类软件被打开后,被用户最小化,实际最小化到的是云终端本地系统桌面的任务栏上。但是云桌面针对该A 类软件虚拟了一个云桌面上的任务栏图标,用户感知是被最小化到云桌面的任务栏上。
例如,当软件有通知消息时,可在云桌面右下方的通知区域看到软件的通知消息。实施方案是通过融合调度中心通知云终端本地系统的客户端实施监控打开的软件在右下方通知区域的消息情况;然后在云桌面的通知区域创建一个一样的图标,并显示通知消息。
4.4.2 B 类软件桌面融合 如图5 所示,在云桌面打开B 类软件,融合调度中心判断是B 类软件,则云终端本地系统打开该软件,由于云终端本地系统是被隐藏的,因此也需要通过客户端将软件界面、任务栏图标、通知区域图标,映射到云桌面操作界面。
图5 B 类软件桌面融合流程图
B 类软件在云桌面上的窗口融合、任务栏图标融合、通知区域图标融合等,同A 类软件实施方案一致。
5 结论
融合架构方案通过对整个云桌面系统的各方面资源进行了最大化利用,一定程度上解决了VDI 云桌面运行卡顿问题,提升了云桌面软件的运行效率,达到如同普通PC 运行软件的性能效果以及操作体验。
融合架构方案还可以拓展到ARM 体系架构安卓、Linux 系统云终端,同样可以实现在其他体系架构云终端的本地系统和云桌面系统之间,实现性能和操作体验的无缝融合。