基于服务器虚拟化的智慧云桌面系统设计与应用

2022-10-10 01:23游钐栗熊卫华
软件工程 2022年10期
关键词:码率桌面虚拟化

游钐栗,熊卫华,应 繁

(浙江理工大学机械与自动控制学院,浙江 杭州 310018)

1 引言(Introduction)

随着虚拟化技术的不断发展,现如今已经可以将其运用到桌面端设备。它是一种以用户为中心的计算模式,通过消除用户桌面和特定硬件之间的绑定关系,使用户从设备中解脱出来。在企业办公、高校计算机实验室等诸多领域得到广泛应用。使用硬件虚拟化技术的物理主机可以独立地为每个用户提供服务,提高系统并发处理能力。再通过虚拟桌面传输协议将物理主机上的资源“发送”到指定用户的客户机上,可达到与本地主机环境一样的使用效果。

这样的部署模式不仅操作简单并且抗灾能力强。当机房想为不同的功能需求添置不同的设备时,只需要在原物理服务器上进行性能拓展以安装不同的镜像,就可以达到新增服务的目的,避免了因购置新设备而产生的高昂费用问题。

与此同时,教育部指出网络教育更应当注重信息传递和资源传递的优势,实现能够在使用云上直播教学时,也可以充分地将优质教学资源同现代化教育平台相结合。针对上述要求,在智慧云桌面系统中加入了线上直播教学功能,学生可以实时获取教师授课信息,教师进行课件演示、软件实践教学等。用户使用终端设备时,通过输入用户名和密码等信息接入到虚拟主机上的个人桌面,或者直接输入房间号和密码进入线上直播间。这样的云上拓展方式,激发了学生的学习兴趣,也有效地提高了数据安全性和资源利用率。

2 视频编解码算法的优化(Optimization of video coding and decoding algorithm)

鉴于H.26x系列中的H.264视频编解码标准常常用于实时流媒体视频直播系统,所以在云桌面系统的线上直播模块中采用H.264视频编解码标准对推流端的音视频原始数据进行编码,收流端再将数据解码并通过设备进行播放。

本文通过优化x264编码器以改进FFmpeg框架的功能设置,以此减少直播中推送流和接收流的延迟。由于本文设计的直播需求为实时编码,所以使用了Main Profile的压缩档次。然后研究了各种因素对系统性能的影响。进行优化研究的测试序列和平台环境如表1所示。

表1 测试环境Tab.1 The test environment

2.1 量化步长研究

在量化过程中实际用于计算的参数是Qstep量化步长,其范围为0-51。该数字越小,图像质量越好。通常是在保证可接受视频质量的前提下选择一个最大的值,如果输出视频质量很好,那就尝试一个更大的值,如果看起来很差,那就尝试一个小点的值。为了找到一个更适用于直播实时编码的Qstep值,本文利用命令行预先设置编码器的量化步长,以下对Qstep设置不同的值,通过峰值信噪比(Peak Signal to Noise Ratio,PSNR)和码率等指标来查看对系统性能的影响,测试结果见表2。

表2 Qstep测试结果Tab.2 Qstep test results

图1中的六张图像分别对应Qstep设置不同参数值时的编码图像。PSNR值和视频编码的码率可以从一定程度上反映画质的好坏,由表1统计出的数据可以得出,对于此视频序列,随着Qstep的增大PSNR值逐步减小,码率相应降低,但编码速度有相应提升。但是当取值在30以上时,视频的码率下降得很快,这表明画面质量下降很明显。在保证视频质量的前提下,可以通过设置适当的Qstep值提升编码速度,经过多次测试分析,本项目将量化步长Qstep值设为27。

图1 测试Qstep时编码图像Fig.1 Encode images when testing Qstep

2.2 参考帧数目研究

H.264标准为帧间预测创建了两个参考帧队列,用来保存用于预测的解码帧。当使用较少的参考帧时,所需的计算量也较少,但预测精度会降低,影响画质和码率。在x264编码器中对于它的测试结果,如表3所示。

表3 参考帧数目测试结果Tab.3 Test results with reference to frame number

由表3中的数据可以看出,当参考帧的数目逐渐增加时,码率会下降,但是当参考帧数目超过一定值时,码率下降的效果就不明显了,同时对PSNR的影响几乎没有。结合这一测试的结果,我们将本项目中的参考帧数目设为4。

2.3 运动估计算法

运动估计是x264编码器编码过程的一个重要部分,x264编码器可以控制多种搜索算法。

不同的搜索策略将对运动估计的计算规模产生影响,进而对视频压缩精度和处理速度产生影响。菱形搜索、正六边形搜索、可变半径六边形搜索和全局搜索是x264中可以指定的四个参数值,可以在x264中进行配置。由表4的数据可以看出,对于此测试序列,使用全局搜索算法时运动估计的计算量最大,采用菱形搜索时编码速度最快。因此在设计本项目时使用菱形搜索算法,以获得较快的编码速度和较高的帧率。

表4 搜索算法测试结果Tab.4 Test results of search algorithm

从前面的测试中可以看出,量化步长、参考帧的数目和运动搜索算法都对编码性能有很大影响。PSNR在很大程度上受量化步长的影响。本测试的主要目标是在保持视频质量的同时提高编码速度和码率。通过考虑各种因素对系统性能的影响,并根据本测试的标准适当地调整参数,可以提高视频编码性能。

3 云桌面系统搭建(Setting up the cloud desktop system)

3.1 Proxmox虚拟化服务器部署

本文将Proxmox公司开发的虚拟化平台作为云桌面系统服务器的虚拟化框架。Proxmox VE是一个运行虚拟机和容器的平台环境,它的内核基于Debian Linux系统。安装Proxmox VE的物理主机就具备了硬件虚拟化的能力,它允许多客户操作系统共享相同的硬件,Proxmox VE就像是在物理硬件上安装的一套虚拟机管理程序,然后在此基础上安装各种虚拟机客体供用户使用。该虚拟化平台管理着主机的所有物理资源,如CPU、内存、网络和存储。

Proxmox直接安装在服务器裸机上,安装版本是PVE 5.11.22-8。系统的部署需在至少一台物理服务器上安装Proxmox系统。本文先采用一台物理服务器安装Proxmox,安装完成后,管理员可以通过这个终端连接并管理集群上开辟的所有虚拟机和容器资源。Proxmox安装完成后,当QEMU进程启动时,就会调用独立计算环境简单协议(Simple Protocol for Independent Computing Environment,SPICE)中的Server动态链接库,利用SPICE协议和SPICE Client进行连接。

3.2 流媒体服务器搭建

在进行线上直播的过程中,通常是一个老师面对多个学生进行授课。在这种情况下,流媒体服务器应保持足够的数据发送处理能力。由于Nginx在面对高并发性时能够保持良好的数据转发能力,且支持添加第三方实时消息传输协议(Real Time Messaging Protocol,RTMP)模块、内存利用率低、功能丰富可扩展,因此本项目选择将Nginx部署在由Proxmox创建的Ubuntu 16.04上,作为云桌面系统线上直播功能的流媒体服务器。

3.3 流媒体推流鉴权实现

在设计线上直播教学模块的过程中,还使用了流媒体推流鉴权技术。这样可以有效防止流氓用户向流媒体服务器推送危险信息或不良材料。Nginx的on publish命令主要负责推送流认证。在系统开始运行时,推送流向服务器请求并接收数据。服务器在收到推送流的请求后,将推送流携带的识别信息发送到on publish命令给定的地址。这个地址指向一个包含信息处理脚本的文件,该文件的主要目的是验证用户的个人信息。Nginx服务器将提供一个状态码作为验证结果,其中2xx表示验证成功,并使信息流能够推送数据到服务器上。地址重定向,通常被称为3xx,是将流端推送的信息发送到其他地址的过程。如果收到任何其他状态代码,流媒体端就会拒绝传送流媒体数据。

4 云桌面系统测试(Cloud desktop system construction)

在完成云桌面相关的设计和系统搭建后,针对智慧云桌面的桌面连接功能和线上直播功能设计了相关的测试和性能分析。在不断测试的过程中,发现并解决在实现和应用上的不完善之处,系统内部的一些参数和变量在多次测试的基础上不断进行修改和完善。

4.1 系统基本功能和稳定性测试

本节主要对智慧云桌面的基本功能进行测试,检验系统能否正常连接,能否满足使用的正常要求。测试使用的系统硬件配置如表5所示。

表5 设备配置Tab.5 Device configuration

镜像类型为Windows 10专业版,对应的端口号为61009。打开客户端,输入对应的地址192.168.199.61:61010,输入对应的用户账户及密码,即可成功登录云桌面,如图2所示。

图2 Windows 10系统云桌面运行Fig.2 Windows 10 cloud desktop running

为了确保智慧云桌面系统可以在承担一定业务压力的条件下仍正常工作,对系统进行了稳定性测试,在主服务器上开启一定数量的云桌面资源用来模拟业务压力,对系统稳定性进行测试。测试方法为在Proxmox服务器上,同时开启Windows 10、Windows 7、Ubuntu、CentOS云桌面,连续工作12 小时。

图3为连续运行的系统输入/输出(Input/Output,I/O)延迟情况,这个指标的好坏影响着用户利用客户端和主服务器进行通信时的流畅程度。

图3 系统I/O延迟Fig.3 System I/O delay

从图3可以看出,智慧云桌面系统在用户开启云桌面资源的时候,系统I/O延迟能够稳定在1 秒以内,可以满足用户在云桌面资源上正常使用的需求。

4.2 线上直播模块延迟测试

对于智慧云桌面系统的线上直播模块延迟测试,除表5列出的设备之外,外加一台Windows系统设备,该设备是老师用来进行直播授课的设备,作为直播系统的推流端,学生自己使用的电脑作为收流端,用来模拟线上直播的情景。一般越小的视频延迟,用户的体验程度也越好。为了检测视频播放时的延迟时间,对线上直播模块进行了延迟测试,如图4所示。

图4 视频播放延时Fig.4 Video playback delay

由图4可以看出,选取60 秒的直播视频进行测试,获取从推流端到收流端的流数据延迟,最大延迟92 毫秒,视频播放的延迟均在1 秒以内,可以满足用户在云桌面系统上正常使用直播功能的需求。

5 结论(Conclusion)

本文设计了一种基于服务器虚拟化技术和FFmpeg音视频处理技术相结合的智慧云桌面系统。介绍了实现云桌面需要用到的虚拟化平台Proxmox及相关的虚拟化技术,重点解释了有关视频编解码的优化。本系统在流媒体数据编解码、线上直播、网络延迟等方面取得了一些创新。测试结果证明,智慧云桌面系统在资源多元化分配方面较传统桌面有了很大的性能提升,其线上直播教学模块的播放延迟能够控制在100毫秒以下,可以满足用户在使用直播功能时的需求,具有一定的应用前景。

猜你喜欢
码率桌面虚拟化
桌面舞龙
基于APP在线控制双挤出头FDM桌面3D打印机的研制
桌面云技术在铁路行业中的应用
基于OpenStack虚拟化网络管理平台的设计与实现
基于状态机的视频码率自适应算法
对基于Docker的虚拟化技术的几点探讨
虚拟化技术在计算机技术创造中的应用
基于场景突变的码率控制算法
存储虚拟化还有优势吗?
X264多线程下码率控制算法的优化