SPICE协议是专门为桌面虚拟化解决方案而设计的传输协议。SPICE协议为虚拟环境建立了一个远程显示系统,用户可在互联网的任意位置使用各种终端查看远程桌面系统。
SPICE基本构件由四个部分组成:SPICEProtocol、SPICEGuest、SPICEServer和SPICEClient。
SPICEProtocol定义了各种SPICE组件之间的通信信息和规则,例如,传送图形对象、键盘和鼠标的事件、光标信息、音频的播放和记录等。
SPICEGuest运行在虚拟机中,它可以使用SPICE的全部功能,例如QXLdriver和SPICEvdagent等。
SPICEServer是一个在libspice中实现的VDI(Virtual DeviceInterfaces,虚拟设备接口)可插拔库。虚拟设备接口VDI通过软件的组件定义了一组发布虚拟设备(例如,显示、键盘、鼠标、音频等)的标准接口,实现不同SPICE组件与这些虚拟设备接口的交互。SPICEServer通过SPICE协议连接远程客户端,也可以与VDI主机应用交互。
一方面,SPICEServer与使用SPICEProtocol的远程客户端进行通信,另一方面,SPICEServer与VDI主机应用程序进行交互(例如QEMU)。SPICEServer提供QXLVDI接口,在QEMU中使用libspice,通过QXL视频PCI设备可用于改进远程显示性能和提升客户图形系统的图形处理能力。(www.xing528.com)
SPICEClient不仅负责发送数据,而且还要翻译与虚拟机交互的数据,虚拟桌面的用户可以使用SPICE客户端通过SPICEServer访问远程系统,在SPICEProtocol中可以使用在virt-viewer中的remoteviewer客户端。
SPICE与KVM都是独立的开源项目,但SPICE服务端必须依赖于KVM虚拟化管理程序而不能独立存在,而KVM也必须要借助于SPICE框架构建桌面虚拟化解决方案的服务端,两者紧密相连。借助KVM虚拟化框架,可以允许在单个物理服务器上运行多个Linux或者Windows操作系统的虚拟机,每一个虚拟桌面环境有一个虚拟机进程,SPICEServer直接与虚拟设备进行交互而不需要通过GuestOS。通过SPICE协议可以将运行于KVM虚拟化框架之上的虚拟桌面交付于终端的SPICEClient进行显示。图5-1显示了基于SPICE协议的桌面虚拟化框架。
图5-1 基于SPICE协议的桌面虚拟化框架
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。