spice技術已經出來很久了,其是優於VNC的一種遠程桌面協議,之所以這里記錄下,是由於某些加密視頻文件(如以vpy結尾的超時代視頻加密),會識別主機的特征嗎,一旦主機重啟后這些視頻又沒法查看了,所以就想到了在虛擬機中觀看視頻 。
一、spice簡介
spice(獨立計算環境簡單協議)是紅帽企業虛擬化桌面版的主要技術組件之一,具有自適應能力的遠程提交協議,能夠提供與物理桌面完全相同的最終用戶體驗。其包含三個組件。
SPICE Driver :SPICE驅動器 存在於每個虛擬桌面內的組件;
SPICE Device:SPICE設備 存在於紅帽企業虛擬化Hypervisor內的組件;
SPICE Client:SPICE客戶端 存在於終端設備上的組件,可以是瘦客戶機或專用的PC,用於接入每個虛擬桌面。
這三個組件協作運行,確定處理圖形的最高效位置,以能夠最大程度改善用戶體驗並降低系統負荷。如果客戶機足夠強大,SPICE向客戶機發送圖形命令,並在客戶機中對圖形進行處理,顯著減輕服務器的負荷。另一方面,如果客戶機不夠強大,SPICE在主機處理圖形,從CPU的角度講,圖形處理並不需要太多費用。
二、spice 軟件的安裝與連接
1、軟件安裝與kvm xml 文件配置
redhat/centos/fedora下可通過yum安裝
# yum install spice-protocol spice-client spice-server
在kvm虛擬機的xml 文件中可以通過增加如下內容進行支持:
# virsh edit rhca
//增加如下內容
<graphics type='spice' port='5930' autoport='no' listen='192.168.0.102 ' passwd='password'/>
<video>
<model type='qxl' vram='32768' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
需要啟用聲卡時,還需要在配置文件中增加如下內容:
<sound model='ac97'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</sound>
安裝時就啟用spice協議:
#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=5940,listen=192.168.0.110,password=password \
--video qxl \
--channel spicevmc \
--cdrom /dev/cdrom
注:默認虛擬機使用的顯卡是虛擬顯卡,而使用spice協議時可以將虛擬網卡更換為qxl 網卡,這會加快視頻傳輸的質量。
未使用virt進行管理的虛擬機,可以使用qemu 命令啟動時進行指定:
/usr/libexec/qemu-kvm -m 15000 -cpu Nehalem,+vmx \
-net nic,vlan=0,macaddr=52:54:00:12:34:22 \
-net tap,vlan=0,ifname=tap0 \
-smp 8,sockets=1,cores=8,threads=1 \
-drive file=/data/img/rhca/rhca.qcow2 \
-spice port=5930,disable-ticketing &
參數disable-ticketing的作用就是不使用密碼(空密碼)的方式連接。
2、spice連接
linux下的連接
連接guest的主機需要安裝spice-client
# yum -y install spice-client
# /usr/libexec/spicec -h 192.168.0.102 -p 5930 -w password
windows連接guest
windows下也需要安裝相當的客戶端軟件,具體可以到http://www.spice-space.org/download.html 頁面下載:
windows-spice
連接以后,還會在最近的連接里記錄,感覺還是比較人性化的:
spice
瀏覽器連接
瀏覽器連接需要在連接端安裝spice-xpi 瀏覽器插件,該插件支持firefox與Chromium瀏覽器,不過該插件目前僅支持linux系統。這個在后面的rh318 rhev紅帽虛擬化平台上就有體現。
三、spice、vnc與rdp協議的比較
spice、vnc、rdp是比較主流的遠程桌面連接協議。這里對三者做一個總結比較。可見spice還是相當優秀的。
SPICE VNC RDP
BIOS屏幕顯示 能 能 不能
全彩支持 能 能 能
更改分辨率 能 能 能
多顯示器 多顯示器支持(高達4畫面) 只有一個屏幕 多顯示器支持
圖像傳輸 圖像和圖形傳輸 圖像傳輸 圖像和圖形傳輸
視頻播放支持 GPU加速支持 不能 GPU加速支持
音頻傳輸 雙向語音可以控制 不能 雙向語音可以控制
鼠標控制 客戶端服務器都可以控制 服務器端控制 服務器端控制
USB傳輸 USB可以通過網絡傳輸 不能 USB可以通過網絡傳輸
所以當前的想法是對於加密單次授權的視頻文件,可以考慮在存放在kvm虛擬機里,妥善保存該虛擬機即可,不用擔心因主機重裝導致的視頻無法觀看的問題。