spice及虚拟化技术介绍.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SPICE框架图 Host机与Guest机通信 半虚拟化需要在Guest机部署代码,让其知道系统运行在虚拟机中,需要配合Host进行通信 virtio是对半虚拟化hypervisor中的一组通用模拟设备的抽象 使用通用的应用程序接口(API),即VDI接口 Virtio 前端驱动(frondend,如virtio-blk、virtio-net等)是在客户机中存在的驱动程序模块 后端处理程序(backend)是在QEMU中实现 “virtio”这一层是虚拟队列接口,是跨越虚拟机和宿主机的衔接点 virtio-ring实现了环形缓冲区(ring buffer), 用于保存前端驱动和后端处理程序执行 的信息,批量保存和提交I/O请求,可以 提高信息交换效率 Virtio之VDI接口 VDI接口规范本身非常简单,它仅为开发人员提供一种标准的开发方式,具体的VDI接口功能 则由程序员自己负责。 VDI接口规范除了规定了BaseInterface以外,没有规定具体的接口名称和数量,程序员只需要按照上述约束分别实现Back-end和Front-end,并将两边的接口在初始化时告知对方即可。 Spice实现的VDI接口主要有: SpiceCoreInterface: Spice与Qemu内部交互用的接口 QXLInterface: 显示数据交互接口 SpiceKbdInstance: 键盘输入交互接口 SpiceMouseInterface: 鼠标输入交互接口 SpicePlaybackInterface:音频播放交互接口 SpiceRecordInterface: 音频录制交互接口 SPICE Client 与 Server通信 Client和Server使用多个Channel进行通信,每个Channel负责传输一类数据, 每个Channel由一条TCP连接承载,可单独控制是否走SSL隧道。 Channel通道类型: MAIN: 主通道,RedClient类,最先建立的通道,起控制作用 DISPLAY: 显示通道,处理图形命令、图像和视频流 INPUT: 输入通道,处理键盘鼠标消息 CURSOR: 光标通道,光标位置、可见性、图标显示 PLAYACK: 音频回放通道,Client接收Server发来的音频流在客户端播放 RECORD: 音频录音通道,Client发送客户端捕获的音频数据给Server TUNNEL: 隧道通道 SARMTCARD:智能卡通道 USBREDIR: USB设备重定向通道 Spice and Spice-related Compoments Spice Server Spice server is implemented in libspice, a VDI pluggable library. Virtual Device Interface (VDI)defines a set of interfaces that provide a standard way to publish virtual devices (e.g. display device,keyboard, mouse) and enables different Spice components to interact with those devices. The server communicates with the remote client using the Spice protocol and on the other side, it interacts with the VDI host application (e.g QEMU). Spice Client QXL Device and Drivers VDI Port Device Spice Agent Spice Server框架图 图像数据流图 Guest系统的应用程序通过GDI/X引擎的绘图操作,被QXL驱动捕获,将其转为绘图命令,发送到QEMU的命令环,Server维护DisplayTree控制显示对象的消隐遮盖,优化绘图命令,探测视频流,将QXL命令转换为SPICE协议消息放入发送队列,发送给Client;Release Ring保存需要释放的命令资源 VdAgent数据流图 VdAgent运行于Guest机,是一个服务进程 VdAgent可以优化操作体验,如修改分辨率、剪切板互通 VdAgent是可选的模块

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档