服务器端spice配置详解

时间:2022-10-28 16:40:50

1. 安装必要的工具

sudo apt-get install build-essential autoconf git-core intltool

2. 安装必要的依赖包

sudo apt-get install libtool liblog4cpp5-dev libavcodec-dev libssl-dev xlibmesa-glu-dev libasound-dev libpng12-dev libfreetype6-dev libfontconfig1-dev libogg-dev libxrandr-dev libgcrypt-dev libsdl-dev libnss3-dev libpixman--dev libxfixes-dev libjpeg8-dev libsasl2-dev python-pyparsing gtk+-3.0 libusb-1.0- libusb-1.0--dev libgudev-1.0-dev libspice-client-gtk-3.0-dev 

3. 安装KVM和libvirt

  kvm是一套虚拟机管理系统,包括内核虚拟构架和处理器相关模块,其借用了 qemu 其它一些组件,kvm的非内核部分是由qemu实现的;加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具qemu-kvm:kvm是linux的一个模块,管理和创建完整的虚拟机需要相应的一些管理工具,由于kvm是在qemu的基础上开发的,KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具QEMU-KVM。

  libvirt,virt-manager,virsh:由于qemu-kvm的效率及通用性问题,有组织开发了libvirt用于虚拟机的管理,带有一套基于文本的虚拟机的管理工具--virsh,以及一套用户渴望的图形界面管理工具--virt-manager。libvirt是用python语言写的通用的API,不仅可以管理KVM,也可用于管理XEN。libvirt官方文档

检查CPU的兼容性

egrep -c '(vmx|svm)' /proc/cpuinfo

安装KVM

sudo apt-get install kvm qemu-kvm ubuntu-vm-builder uml-utilities bridge-utils

检查KVM是否成功安装

sudo kvm-ok

安装libvirt需要的依赖包

sudo apt-get install libxml2 libxml2-dev libxml2-utils libxml++2.6- libxml++2.6-dev gnutls-bin libgnutls-dev libdevmapper libdevmapper-dev python-dev libnl-dev pkg-config autoconf libudev-dev libpciaccess-dev libhal-dev libpolkit-agent-- libpolkit-backend-- libpolkit-gobject-- libreadline-dev libyajl-dev libnuma-dev radvd libnetcf-dev libaudit-dev dwarves libapparmor-dev cgroup-bin

创建一个文件夹,用来存放下载的安装包

cd
mkdir spice-sources
cd spice-sources

下载libvirt:到 http://libvirt.org/sources/ 或者 http://libvirt.org/downloads.html 下载最新的.tar包。不建议使用git安装,容易出问题。

tar -xvzf libvirt-1.2..tar.gz
cd libvirt-1.2.
./autogen.sh
sudo ./configure --without-apparmor
// Libvirt在做某些事情的时候会被Apparmor阻挡,因此为了确保Libvirt始终有必须的权限,必须禁用apparmor
sudo make
sudo make install
cd .. // 或者执行下面的命令为libvirt禁用 apparmor,然后重启机器
sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/
sudo ln -s /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.libvirt.virt-aa-helper

添加用户到libvirtd和kvm组

sudo adduser fuleying libvirtd
sudo adduser fuleying kvm
sudo groupadd libvirt   //添加libvirt用户组
sudo gpasswd -a root libvirt  //添加当前用户到libvirt组里
//重启之后才能用

启动时自动运行libvirtd 

sudo gedit /etc/rc.local
// 在exit 0之前添加
sudo libvirtd &

校验

virsh -c qemu:///system list    //检查libvirt是否可用
virsh version            //检查是否安装成功
ps -le|grep libvirt*        //检查是否启动
libvirtd -d             //启动libvirt进程

若有一下错误,系统无法找到指定的库,需要简单配置一下。可以直接在将自己的库所在路径添加到/etc/ld.so.conf文件中。缺少动态链接库修改方法

virsh: error while loading shared libraries: libvirt-lxc.so.: cannot open shared object file: No such file or directory
find -name libvirt-lxc.so.
#./spice-sources/libvirt-1.2./src/.libs/libvirt-lxc.so.
sudo gedit /etc/ld.so.conf //打开之后,添加
include /home/openstack/spice-sources/libvirt-1.2./src/.libs/
include /usr/local/lib
sudo ldconfig

4. 安装virt-manager

sudo apt-get install virt-manager virt-viewer virtinst

5. 安装libcacard

git clone git://people.freedesktop.org/~alon/libcacard
cd libcacard
./autogen.sh
sudo make
sudo make install
cd ..

6. 安装spice protocol的头文件

wget http://spice-space.org/download/releases/spice-protocol-0.12.6.tar.bz2
tar xjvf spice-protocol-0.12..tar.bz2
cd spice-protocol-0.12.
mkdir m4
./configure
sudo make
sudo make install
cd ..

7. 安装celt(0.5.1.3):不要安装最新版本的,最新版本的不支持,已经试过了。

wget http://downloads.us.xiph.org/releases/celt/celt-0.5.1.3.tar.gz
tar xvzf celt-0.5.1.3.tar.gz
cd celt-0.5.1.3/
./configure
sudo make
sudo make install
cd ..

8. 安装libusb,libusb 是一个用C语言开发的跨平台的USB设备访问接口库。

到 http://sourceforge.net/projects/libusb/ 下载最新的libusb-1.0.18.tar.bz2包,并解压

http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.18/libusb-1.0.18.tar.bz2
tar xjvf libusb-1.0..tar.bz2
cd libusb-1.0.
sudo ./configure
sudo make
sudo make install
cd ..

安装Usbredir

wget http://spice-space.org/download/usbredir/usbredir-0.6.tar.bz2
tar xjvf usbredir-0.6.tar.bz2
cd usbredir-0.6
sudo ./configure
sudo make
sudo make install

9. 安装Spice Server (32位系统只能安装SPICE 的客户端,下面的服务端是无法安装的!)

wget http://spice-space.org/download/releases/spice-0.12.4.tar.bz2
tar xjvf spice-0.12..tar.bz2
cd spice-0.12.
sudo ./configure --enable-smartcard --enable-client
sudo make
sudo make install
cd ..

10. 修改环境变量以至于让configure找到我们安装spice协议的函数库。

echo "export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}" >> ~/.bashrc
source ~/.bashrc

11. 安装QEMU

qemu是另一套虚拟机管理系统,kqemu是qemu的加速器,可以认为是qemu的一个插件;qemu可以虚拟出不同架构的虚拟机,如在x86平台上可以虚拟出power机器。

wget http://wiki.qemu-project.org/download/qemu-2.0.0-rc3.tar.bz2
tar xjvf qemu-2.0.-rc3.tar.bz2
cd qemu-2.0.-rc3
sudo ./configure --enable-kvm --enable-spice --enable-system --enable-usb-redir --enable-libusb --audio-drv-list=alsa,oss --enable-user --enable-guest-agent --enable-linux-aio --enable-vde --enable-vhost-net
sudo make
sudo make install 或者
git clone git://git.qemu-project.org/qemu.git
cd qemu-2.0.-rc3
ls
sudo ./configure --enable-kvm --enable-spice --enable-system --enable-usb-redir --enable-libusb --audio-drv-list=alsa,oss --enable-user --enable-guest-agent --enable-linux-aio --enable-vde --enable-vhost-net
sudo make
sudo make install

12. 拷贝相关文件到QEMU 目录下让qemu启动虚拟机。(PS:如果之前已经安装QEMU,此步只需确认在/usr/share/qemu/目录下有以下两个文件即可,如果没有,那就得手动拷贝过去)

sudo cp pc-bios/vgabios-qxl.bin /usr/share/qemu/
sudo cp pc-bios/pxe-e1000.bin /usr/share/qemu/
cd ..

13. 以上将含有SPICE 服务的QEMU安装到usr/local/bin(PS:也可能在usr/bin下),普通 QEMU 系统安装在/usr/bin下。以下是创建一个名字叫做qemu-spice的工具,其实是qemu的一个拷贝。

cd /usr/local/bin
sudo mv qemu qemu-spice
sudo apt-get install qemu-kvm-spice
cd /usr/bin/
sudo rm kvm
sudo ln -s qemu-system-x86_64-spice kvm

至此,spice server安装完毕。