使用spice连接kvm guest主机
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虚拟机里,妥善保存该虚拟机即可,不用担心因主机重装导致的视频无法观看的问题。
使用spice连接kvm guest主机的更多相关文章
- virt-install vs qemu-kvm创建guest主机
virt-install是rpm包python-virtinst里的一个工具 -- 其实就是一个python写的脚本 .基本可以理解为virsh-install是qemu-kvm工具的人性化实现.可以 ...
- 解决KVM中宿主机通过console无法连接客户机
转自https://www.linuxidc.com/Linux/2014-10/107891.htm 一.问题描述: KVM中宿主机通过console无法连接客户机,卡在这里不动了. # virsh ...
- QEMU命令创建KVM Guest(bridge桥接)
1. Check QEMU version [root@pqsfc018 ~]# /usr/bin/qemu-system-x86_64 -version QEMU emulator version ...
- 一步一步学Python(2) 连接多台主机执行脚本
最近在客户现场,每日都需要巡检大量主机系统的备库信息.如果一台台执行,时间浪费的就太冤枉了. 参考同事之前写的一个python脚本,配合各主机上写好的shell检查脚本,实现一次操作得到所有巡检结果. ...
- KVM虚拟化主机安装
KVM虚拟化主机安装 最小化安装CentOS6.X或者CentOS7.X,RHEL6.X以上系列建议建议选择安装最小虚拟化主机 如果要安装桌面可以先选择最小化虚拟主机,再选择Gnome桌面包 安装过程 ...
- Linux 查看主机、CPU、内存、内核、网卡或MAC地址、关机、重启、当前使用人、网络连接状态、主机目前使用状态
7 uname -a 显示主机名.内核.硬件结构等全部信息 unmae -r 只显示内核 查看Redhat和centos的内核版本也可以用cat /etc/redhat-release 或cat /e ...
- 远程桌面连接KVM虚拟机
问题描述 有些时候,由于网络存在问题,虚拟机无法获取到IP地址,无法使用spice或vnc来连接虚拟机,但是又需要连到虚拟机来排查故障 解决办法 编辑虚拟机配置 设置xml命名空间 <domai ...
- 挂载KVM Guest操作系统磁盘
使用虚拟机时, 发现想要修改虚拟机中的文件非常麻烦, 需要启动虚拟机, 然后再登录进去修改. 对于已经关闭的虚拟机, 为了修改一个文件而启动, 非常耽误时间. 对于一个无法启动的虚拟机(比如启动文件损 ...
- cmd连接mysql连接:mysql-h主机地址-u用户名-p用户密码(注:u与root可以不用加)
MySQL导入导出命令1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc >wc ...
随机推荐
- cuda yv12_to_rgb24
前言 项目需要将yv12转rgb24,由于基于x86平台,开始就没多想,直接用ipp加速实现了,后来在评估项目瓶颈的时候发现,1080p的视频每一帧转换居然要花8ms,刚好项目里有用到nvidia g ...
- WScript.Shell对象的 run()和exec()函数使用详解
WScript.Shell对象的 run()和exec()函数使用详解 http://blog.sina.com.cn/s/blog_6e14a2050102v47g.html vbScript ...
- 【 Zabbix 】— 监控nginx
一.环境说明 OS:centos6.7 x64 nginx:nginx/1.9.9 ZABBIX:2.4.8 zabbix监控nginx是根据nginx的stub_status模块,抓取status模 ...
- Linux命令之:tr
1. 用途: tr,translate的简写,主要用于压缩重复字符,删除文件中的控制字符以及进行字符转换操作. 2. 语法: tr [OPTION]... SET1 [SET2] 3. 参数: -s: ...
- 解决 WP迁移后出现的404错误
项目迁移 WordPress 后仅首页正常,其它页面全部 404.时隔一年,再度遇到这问题,总结和梳理一下. 1.想办法登录后台,刷新一次“设置”中的“固定链接”.比如换成默认后保存,再设回原先设置并 ...
- explain分析SQL语句详解
性能分析explain MySql Query Optimizer是MySql中专门负责优化select语句的优化器模块,主要功能:通过计算分析系统中收集到的系统信息,为客户端请求的Query提供他认 ...
- shipyard, swarm看到你,我才睡觉:)
windows下用boot2docker有点不爽,就是网卡识别不好. 还是用纯的virtualbox建centos7虚拟机来搞, 一下就OK. 但记得,要用Iptables来弄墙,去掉firewall ...
- Android InputStream转Bitmap
android socket服务端 接收Delphi socket客户端发来的图片,保存到bitmap中,代码如下: public static Bitmap readInputStreamToBit ...
- Python:文件操作技巧(File operation)(转)
Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python # -*- coding: utf8 -*- spath = " D:/dow ...
- 【bzoj2763】[JLOI2011]飞行路线 (分层图最短路)(优先队列dij)
[bzoj2763][JLOI2011]飞行路线 2014年3月25日1,7260 Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城 ...