红帽的虚拟桌面协议-SPICE

SPICE(独立计算环境简单协议)是红帽企业虚拟化桌面版的三大主要技术组件之一,具有自适应能力的远程提交协议,能够提供与物理桌面完全相同的最终用户体验。Linux下有三种方式配置SPICE服务器:命令行、virt-manager、直接修改配置文件。本文将分别介绍。

AD: 51CTO云计算架构师峰会 抢票进行中!

【51CTO独家特稿】SPICE(独立计算环境简单协议)是红帽企业虚拟化桌面版的三大主要技术组件之一,具有自适应能力的远程提交协议,能够提供与物理桌面完全相同的最终用户体验。它包含有3个组件:

SPICE Driver :SPICE驱动器 存在于每个虚拟桌面内的组件;

SPICE Device:SPICE设备 存在于红帽企业虚拟化Hypervisor内的组件;

SPICE Client:SPICE客户端 存在于终端设备上的组件,可以是瘦客户机或专用的PC,用于接入每个虚拟桌面。

这三个组件协作运行,确定处理图形的最高效位置,以能够最大程度改善用户体验并降低系统负荷。如果客户机足够强大,SPICE向客户机发送图形命令,并在客户机中对图形进行处理,显著减轻服务器的负荷。另一方面,如果客户机不够强大,SPICE在主机处理图形,从CPU的角度讲,图形处理并不需要太多费用。图-1是 SPICE三个组件示意图 。

 

图-1 SPICE三个组件

SPICE体系结构如图2

图2 SPICE体系结构

SPICE的工作原理是创建几个通用接口或“通道”,它们都高度抽象,所以能在各种平台上使用。通道主要包括六个:

主通道
显示通道
输入通道
鼠标控制通道
播放通道
记录通道

每个通道可以是一个单独的数据流。SPICE协议原为Qumranet公司的主要产品SolidICE所使用,提供了和真实PC相同的用户体验,通过spice我们可以直接在虚拟机里播放高清视频和音频,这点是vnc不能比的 。两者对比如表-1 。

 

image

Spice的未来的功能:

直接借助对DirectX和API来实现一个虚拟视频卡。加快CAD应用和多媒体应用。更快的切换与游戏画面直接绘制过程减少闪烁。
视频加速(DXVA)视频播放应用程序支持DXVA,如Windows媒体播放器,可以减少对客户端的CPU利用率。
3D加速 会更快地运行在一个虚拟的桌面,如OpenGL和3D应用程序,
Windows Aero的支持,使用虚拟桌面时可以使用Windows Vista和7现在不可以。 可以动态地改变虚拟桌面分辨率。
兼容iPhone 和 ipad 通过智能手机,如iPhone 和 iPad等设备控制。
剪贴板共享你可以共享与虚拟桌面环境的剪贴板,数据将允许相互合作可用于无缝连接。
网络打印机共享:打印机被允许从网络访问,提高可用性。

Linux下有三种方式配置SPICE服务器:命令行、virt-manager、直接修改配置文件。下面分别介绍。

CentOS 6、RHEL 6安装配置SPICE服务器的方法

这里是直接修改配置文件方式,首先安装软件包:


#yum -y install spice-server  

 

首先建立一个普通名称是web的虚拟机,可以使用virt-manager虚拟机管理工具和命令行两种方法。

下面编辑虚拟机文件添加spice参数:


~# virsh edit web  <domain type='kvm'>    <name>www</name>    <uuid>93702ee2-f5fc-8e29-18f5-7098b7f1afa0</uuid>

    <memory>1048576</memory>    <currentMemory>1048576</currentMemory>    <vcpu>2</vcpu>    <os>      <type arch

='x86_64' machine='rhel6.0.0'>hvm</type>      <boot dev='hd'/>    </os>    <features>      <acpi/>      <apic/>  

    <pae/>    </features>    <clock offset='utc'/>    <on_poweroff>destroy</on_poweroff>    <on_reboot>restart</on_reboot> 

   <on_crash>restart</on_crash>    <devices>      <emulator>/usr/libexec/qemu-kvm</emulator>      <disk type='file' device='disk'>  

      <driver name='qemu' type='raw' cache='none'/>        <source file='/var/kvm/images/www.img'/>        <target dev='vda' bus='virtio'/>  

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>      </disk>      <interface type='bridge'>       

 <mac address='52:54:00:bc:8f:f3'/>        <source bridge='br0'/>        <model type='virtio'/>        <address type='pci' domain='0x0000'

 bus='0x00' slot='0x05' function='0x0'/>      </interface>      <serial type='pty'>        <target port='0'/>      </serial>      

<console type='pty'>        <target port='0'/>      </console>      <input type='tablet' bus='usb'/>  # add  <graphics type='spice' port='

5930' autoport='no' listen='192.168.0.13 ' passwd='password'/>      <video>      <model type='qxl' vram='32768' heads='1'/>      <address

 type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>      </video>      <memballoon model='virtio'>        <address type=

'pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>      </memballoon>    </devices>  </domain>

#add之后是需要添加的部分。然后保存文件。

启动虚拟机:


#virsh start web  Domain web started

启动声音方法

修改配置文件,添加#add之后的内容:


virsh edit web  # add following lines  # for slot='xxxx', set an empty number  <sound model='ac97'>   

 <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>  </sound>

重启web虚拟机


# virsh start web  Domain www started

Fedora 16安装配置SPICE服务器的方法

这里是使用命令行的方式,首先安装软件包:


#yum -y install spice-protocol spice-server xorg-x11-drv-qxl

这里使用命令行方式,下面是一个windows的例子


#virt-install \  -n windows \  -r 2048 \  -f /var/kvm/images/windows.img \  -s 50 \  --vcpus=2 \  --os-type windows \

  --os-variant=win7 \  --network bridge=br0 \  --graphics spice,port=5930,listen=192.168.0.13,password=password \  --video qxl 

\  --channel spicevmc \  --cdrom /dev/cdrom

使用virt-manager配置Spice的方法

virt-manager是基于libvirt 的图像化虚拟机管理软件,请注意不同的发行版上 virt-manager的版本可能不同,图形界面和操作方法也可能不同。本文使用了 CentOS 6上的virt-manager。首先建立一个虚拟机,最后一步选择“在安装前自定义配置”选项提供一些高级自定义配置。

 

图3 在安装前自定义配置

启动virt-manager打开你的虚拟机。单击虚拟硬件的详细信息。删除VNC。然后选择添加硬件新增一个图形设备,类型选择spice server,端口号可以在增加spice server的时候设置。如果选择自动分配,那么会从5900开始递增分配。

 

图 4 改变VNC显示模式修改为Spice

下面将原来视频中使用的虚拟显卡换成我们需要的视频卡QXL设备。点击视频并在型号下拉选择QXL类型。

图 5选择QXL类型

这样启动虚拟机之后,就可以使用spice了。

Linux下使用SPICE客户机


#yum -y install spice-client

Linux 下使用spicec命令连接:


# /usr/libexec/spicec -h 192.168.0.13 -p 5930 -w password

-h 参数是kvm虚拟机ip地址

-p参数是kvm虚拟机端口

-w参数是密码

图6 spice工作界面

 

图6 spice工作界面

Windows下使用SPICE客户机

http://www.spice-space.org/download.html下载两个文件:"spice-client-win32-0.6.3.zip" 和"spice_libs_win32_063_and_earlier.zip",然后解压缩。spicec.exe文件复制到spice_libs_win32_063_and_earlier\lib目录下,运行spicec.exe即可。

 

图7spicec.exe工作界面

 

图8 连接成功后工作界面

作者简介:曹江华,1999年开始从事构建网络、管理维护、数据库管理工作。1999年后开始接触LINUX,将工作中的经验总结后已出版《Linux服务器安全策略详解》,《Linux服务器安全策略详解》(第二版),《Red Hat Enterprise Linux 5.0服务器构建与故障排除》,《Linux系统最佳实践工具:命令行技术》四本堪称Linux系统管理员日常工具书的热销图书,目前关注开放系统和网络安全。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章