紅帽的虛擬桌面協議-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系統管理員日常工具書的熱銷圖書,目前關注開放系統和網絡安全。

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