服务器端基于ubuntu1604系统(ubuntu1804也试过,但是因为系统版本太新,spice相关依赖包编译有bug而失败了),采用virt-manager+kvm的方式搭建虚拟机运行环境,远程虚拟化协议采用spice。其中远程虚拟机运行的是win7系统。
本地客户端是windows10系统,安装virt-viewer软件用于访问spice远程虚拟机云桌面。
1)首先运行如下命令,查看cpu是否支持硬件虚拟化功能(一般都支持。虚拟化开关没打开也不行,需要进BIOS打开对应选项),如果支持才能进行后面的一系列操作。
~$ egrep "(vmx|svm)" --color /proc/cpuinfo
2)创建一个本地目录,用于存放spice相关源码包和远程虚拟化相关依赖包。
~$ mkdir spice-sources
3)然后是安装必需的虚拟机管理器、kvm环境和相关依赖包。
~$ sudo apt install qemu qemu-kvm virt-manager virt-viewer libvirt-bin bridge-utils build-essential autoconf git-core libtool liblog4cpp5-dev libavcodec-dev libssl-dev xlibmesa-glu-dev libasound-dev libpng12-dev libfreetype6-dev libfontconfig1-dev libogg-dev libxrandr-dev kvm libgcrypt-dev libsdl-dev libnss3-dev libpixman-1-dev libxfixes-dev libjpeg8-dev libsasl2-dev python-pyparsing manpages-posix manpages-posix-dev glibc-doc spice-client-glib-usb-acl-helper spice-client-gtk spice-vdagent libglib2.0 libpixman-1-dev libssl-dev libjpeg-dev libsasl2-dev libssl-dev libpixman-1-dev libjpeg-turbo8-dev libusb-1.0 libgtk-3-dev virtinst ubuntu-vm-builder uml-utilities
创建完kvm模块,可以用命令验证是否已经安装成功,输入如下命令:
~$ sudo virsh -c qemu:///system list
如果返回如下截图,这说明kvm已经安装完毕。
4)搭建spice相关虚拟化环境。spice包含3部分:client、protocol和server。
4.1)首先要安装支持智能卡的相关依赖包。
~$ git clone git://people.freedesktop.org/~alon/libcacard
~$ cd libcacard/
~$ ./autogen.sh --enable-debugger LDFLAGS='-pthread'
~$ make && sudo make install && cd ..
4.2)安装spice协议。
~$ wget http://spice-space.org/download/releases/spice-protocol-0.12.13.tar.bz2
~$ tar xjvf spice-protocol-0.12.13.tar.bz2
~$ cd spice-protocol-0.12.13/
~$ mkdir m4
~$ ./configure
~$ make && sudo make install && cd ..
4.3)安装usb重定向相关库(也可以不安装。如果不安装,则远程访问虚拟云桌面时,客户端的U盘等设备远程虚拟机无法通过重定向挂载和识别)。
~$ wget http://www.spice-space.org/download/usbredir/usbredir-0.7.1.tar.bz2
~$ tar xvf usbredir-0.7.1.tar.bz2
~$ cd ../usbredir-0.7.1/