服务器端spice配置详解
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-1-dev libxfixes-dev libjpeg8-dev libsasl2-dev python-pyparsing gtk+-3.0 libusb-1.0-0 libusb-1.0-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-2 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-1-0 libpolkit-backend-1-0 libpolkit-gobject-1-0 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.3.tar.gz cd libvirt-1.2.3 ./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.0: cannot open shared object file: No such file or directory
find -name libvirt-lxc.so.0 #./spice-sources/libvirt-1.2.3/src/.libs/libvirt-lxc.so.0 sudo gedit /etc/ld.so.conf //打开之后,添加 include /home/openstack/spice-sources/libvirt-1.2.3/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.6.tar.bz2 cd spice-protocol-0.12.6 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.18.tar.bz2 cd libusb-1.0.18 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.4.tar.bz2 cd spice-0.12.4 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.0-rc3.tar.bz2 cd qemu-2.0.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.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安装完毕。