1.spice介绍
1.1 spice简介
spice是由Qumranet开发的开源网络协议,2008年红帽收购了Qumranet获得了这个协议。SPICE是红帽在虚拟化领域除了KVM的又一“新兴技术”,它提供与虚拟桌面设备的远程交互实现.
目前,spice主要目标是为qemu虚拟机提供高质量的远程桌面访问,它致力于克服传统虚拟桌面的一些弊端,并且强调用户体验
spice包含有3个组件:
SPICE Driver:SPICE驱动器 存在于每个虚拟桌面内的组件
SPICE server:SPICE服务器 存在于红帽企业虚拟化Hypervisor内的组件
SPICE Client: SPICE客户端 存在于终端设备上的组件,可以是瘦客户机或专用的PC,用于接入每个虚拟桌面。
这三个组件协作运行,确定处理图形的最高效位置,以能够最大程度改善用户体验并降低系统负荷。如果客户机足够强大,SPICE向客户机发送图形命令,并在客户机中对图形进行处理,显著减轻服务器的负荷。另一方面,如果客户机不够强大,SPICE在主机处理图形,从CPU的角度讲,图形处理并不需要太多费用
以上简介参考http://os.51cto.com/art/201201/311464.htm
1.2 spice架构
Spice agent运行在客户机(虚拟机)操作系统中。Spice server和Spice client利用spice agent来执行一些需要在虚拟机里执行的任务,如配置分辨率,另外还有通过剪贴板来拷贝文件等。从上图可以看出,Spice client与server与Spice Agent的通信需要借助一些其他的软件模块,如在客户机里面,Spice Agent需要通过VDIPort Driver与主机上 QEMU的VDIPort Device进行交互,他们的交互通过一种叫做输入/输出的环进行。Spice Client和Server产生的消息被写入到设备的输出环中,由VDI Port Driver读取;而Spice Agent发出的消息则通过VDI Port Driver先写入到VDI Port Device输入环中,被QEMU读入到Spice server的缓冲区中,然后再根据消息决定由Spice Server直接处理,还是被发往Spice Client中
以上参考http://blog.csdn.net/hbsong75/article/details/9465683
1.3 spice的不足
- spice目标是提供一个高性能,高用户体验的远程桌面连接,就像本地桌面一样展现给用户. 其目前实现的功能有usb重定向,音视频传输,剪贴板,鼠标同步,2D图形支持,任意调整分辨率(qxl驱动)等
- spice目前不支持虚拟机中的3D效果,对于windows7系统虚拟机,其aero桌面特效也无法启用,因为spice使用远程连接,所以其高度依赖网络,如果网络环境不好,使用起来将会是一间很痛苦的事情
2 spice安装配置
2.1 系统准备
系统版本
- RHEL6
- IP:192.168.11.166
安装KVM软件
#安装kvm/qemu工具,以及virt-manager,libvirtd yum install qemu-kvm qemu-kvm-tools virt-manager libvirt libvirt-devel libvirt-client virt-manager virt-viewer
系统环境检查
- 运行命令 lsmod | grep kvm 检查 KVM 模块是否成功安装。如果有输出结果,那么 KVM 模块已成功安装
- 需要服务器硬件支持虚拟化技术(Intel VT-d,AMD-V)。可以使用如下命令检查,有输出信息表示支持
egrep "(vmx|svm)" --color /proc/cpuinfo
2.2 服务器上安装spice-server
yum -y install spice-protocol spice-server xorg-x11-drv-qxl spice-glib
2.3 客户端安装spice client
centos客户端安装virt-viewer
yum -y install virt-viewer
windows7客户端安装virt-viewer
下载链接: http://virt-manager.org/download/sources/virt-viewer/virt-viewer-x64-1.0.msi
2.4 新建centos6.4虚拟机
关于virt-manager工具
virt-manager是一个图形化的虚拟机管理工具,它可以方便地创建虚拟机,修改虚拟机配置,添加新设备等. 但是由于其是图形界面管理,所以效率不是很高,而且对网络也有要求. libvirt提供了一个xml文件用来定义虚拟机的配置细节,并且可以通过virsh命令对虚拟机进行管理
编写一个虚拟机的xml文件
如下是一个centos6.4桌面版的xml文件,默认配置
<domain type=‘kvm‘> <name>cdesk1</name> <uuid>56f6c45d-aa4d-8b23-85d9-87500199f089</uuid> <memory unit=‘KiB‘>2097152</memory> <currentMemory unit=‘KiB‘>2097152</currentMemory> <vcpu placement=‘static‘>2</