KVM虚拟化系统解决方案(四)--虚拟桌面

 【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png

本文分享至飞腾开发者平台

《FT-2000+/64 KVM虚拟化系统解决方案--虚拟桌面》

1 介绍

       本文主要介绍采用virtio-gpu和spice协议的方式的虚拟桌面方案。

       本文将摈弃qxl、vga模拟显卡的虚拟化方案,而采用virtio-gpu方式来虚拟显卡,而远程桌面则选择spice协议。

2 编译QEMU源码

       若安装包版本为qemu-2.10.0,该安装包不支持spice远程桌面协议,基于此,本节将通过以下方式来创建虚拟桌面:

        1)下载qemu源码。

        https://www.qemu.org/download/,本节以qemu-3.0.1为例进行阐述,其中,

mkdir build

cd build

        2)配置

 ../configure --target-list=aarch64-softmmu

        发现需要zlib库,通过下面命令安装:

yum -y install zlib-1.2.7-17.el7.aarch64.rpm  zlib-devel-1.2.7-17.el7.aarch64.rpm

        3)再次配置qemu会发现提示缺少glib-2.40和gthread-2.0

yum -y install glib2-2.54.2-2.el7.aarch64.rpm glib2-devel-2.54.2-2.el7.aarch64.rpm

        4)再次配置qemu会发现提示缺少pixman版本要高于0.21.8

yum -y install pixman-devel-0.34.0-1.el7.aarch64.rpm

        5)再次配置发现,已经不会报错了:

        其中spice协议是不支持的,另外virgl也不支持,这个是virtio-gpu插件。

        6)再次配置

. ./configure --target-list=aarch64-softmmu --enable-spice

        发现需要安装spice-protocal版本大于0.12.3,但是自带的安装包spice-protocol-0.12.13-2.el7.noarch.rpm,所以需要下载:

                a)下载spice和spice-protocal:

        https://www.spice-space.org/download/releases/。

        本节以spice-0.14.0和spice-protocal-0.14.0为例进行阐述:

        下载spice-0.14.0和spice-protocal-0.14.0

cd spice-protocal-0.14.0;  

./configure ;

make && make install;

cd spice-0.14.0;

./configure;

                b)会报缺少celt库,命令安装:

yum -y install celt051-0.5.1.3-8.el7.aarch64.rpm

celt051-devel-0.5.1.3-8.el7.aarch64.rpm

                c)再次配置spice-0.14.0会报缺少libjpeg库,命令安装:

yum -y install libjpeg-turbo-devel-1.2.90-5.el7.aarch64.rpm

                d)再次配置spice-0.14.0,make&&make install完成编译安装;

        7)再次配置

. ./configure --target-list=aarch64-softmmu --enable-spice

        发现还是提示spice版本问题,其原因在于没有找到pkg-config配置文件,通过如下操作找到pkg-config配置文件:

cp /usr/local/lib/pkgconfig/spice-server.pc  /usr/lib64/pkgconfig/

        8)再次配置qemu

. ./configure --target-list=aarch64-softmmu --enable-spice

        发现已经支持spice协议了

        9)安装libssh2:

yum -y install libssh2-1.4.3-10.el7_2.1.aarch64.rpm 
libssh2-devel-1.4.3-10.el7_2.1.aarch64.rpm

        10)安装libxml:

yum -y install libxml2-2.9.1-6.el7_2.3.aarch64.rpm

libxml2-devel-2.9.1-6.el7_2.3.aarch64.rpm

        11)安装virgl,这个是支持virtio-gpu的软件包。自带的包里没有,我们需要自己下载编译:

                a)下载virglrenderer-0.7.0.orig.tar.gz2:  

                http://mirrordirector.raspbian.org/raspbian/pool/main/v/virglrenderer/        

./configure; make && make install

                b)发现缺少libdrm库,且版本需要大于2.4.50,命令安装:

yum -y install libdrm-2.4.83-2.el7.aarch64.rpm libdrm-devel-2.4.83-2.el7.aarch64.rpm;

                c)再次配置发现缺少gbm库,命令安装:

yum -y install mesa-libgbm-devel-17.2.3-8.20171019.el7.aarch64.rpm

                d)再次配置发现缺少epoxy库,命令安装:

yum -y install libepoxy-1.3.1-1.el7.aarch64.rpm libepoxy-devel-1.3.1-1.el7.aarch64.rpm

                e)再次配置virglrenderer:

make&&make install

                f)然后执行如下命令,将文件拷贝到/usr/lib64/pkgconfig/下面:

cp /usr/local/lib/pkgconfig/virglrenderer.pc /usr/lib64/pkgconfig/

        再次配置qemu发现已经支持virgl。

        12)安装usb重定向相关库(也可以不安装。如果不安装,则远程访问虚拟云桌面时,客户端的U盘等设备远程虚拟机无法通过重定向挂载和识别)。

        安装:

yum -y install usbredir-0.7.1-3.el7.aarch64.rpm 
usbredir-devel-0.7.1-3.el7.aarch64.rpm

        13)再次配置qemu,发现已经支持libusb和usb重定向;

make&&make install // 编译安装。

        14)将qemu程序需要的库拷贝到/usr/lib64/目录:

cp /usr/local/lib/libvirglrenderer.* /usr/lib64/ -fa

cp /usr/local/lib/libspice-server.* /usr/lib64/ -fa

        这样运行qemu-system-aarch64就不会找不到这两个库了。

3 使用virtio-gpu + spice启动虚拟桌面

        1)将之前的kvm1域的配置文件中的emulator改为如下路径。

        如果仅修改上面qemu路径还会报一个机器名问题,其原因在于qemu没有模拟这个机器,将machine一栏 改成virt-3.0即可 :

        2)接下来,我们将桌面协议改成spice,重启libvirtd服务:

        3)启动虚拟机:

virsh start kvm1

        4)接下来我们需要安装一个spice远程连接的客户端,本次测试远程连接端是在windows上安装的软件。

        可以在spice官网下载:https://www.spice-space.org/download.html

        安装好后界面如下:

        5900是spice默认的端口号,也可以在域的xml配置文件中指定端口号。连接上以后,就进入远程桌面了。

        5)客户机中安装的是Gnome Desktop,默认进入的是字符界面,如果想进图形界面。输入命令:startx。

        图形界面如下所示:

        6)如果想要一开虚拟机就进入图形界面,可以这样操作:

cd /etc/systemd/system/ 

rm default.target

ln -s /lib/systemd/system/graphical.target  default.target

推荐阅读

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值