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 頁面下載:
串連以後,還會在最近的串連裡記錄,感覺還是比較人性化的:
瀏覽器串連
瀏覽器串連需要在串連端安裝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虛擬機器裡,妥善儲存該虛擬機器即可,不用擔心因主機重裝導致的視頻無法觀看的問題