读《Blink: 3D Display Multiplexing for Virtualized Applications》[1]
这篇文章主要介绍了作者研究的针对虚拟化应用的3D显示的多路复用技术。他们开发了一个虚拟机的显示系统:Blink。该系统比传统的C/S模式所需的上下文切换次数要少,能消除冗余的图像缓存的复制与清空
Blink不允许客户端直接操作物理的网卡设备,而是给每个客户端一个虚拟处
为了减小开销,Blink使用了Blink存储过程。与运行在GPU上的显示列表不同,一个Blink存储过程就是一个运行在显示服务端CPU上的BlinkGL程序。存储过程就是一系列OpenGL命令,每条命令都包括一个操作码和一个参数集。Blink服务端包括一个JIT(Just In Time)编译器,这个即时编译器的作用就是把BlinkGL转换为CPU机器码。这一过程很快,因为BlinkGL很简单。
用OpenGL来共享显示器有这样一个坏处:针对每一个更新,整个显示器上的图像
Blink运行在Xen之上。Blink server端运行在Domain0上,它直接操作物理显卡,Blink server实质上是一个普通的OpenGL应用程序;Blink客户端运行在Domain U上,由Blink server上的BlinkGL复用器合成。
相应的性能测试表明,在同样的性能下Blink能支持更多的VM,而在同样的条件下Blink的性能明显好。
最后得出的结论是虚拟机间好的隔离性并非一定要牺牲图形图像处理性
参考文献
- J. G. Hansen. Blink: 3d display multiplexing for virtualized applications. Technical Report 06/06, DIKU – University of Copenhagen, Jan. 2006. http://www.diku.dk/jacobg/pubs
/blink-techreport.pdf .
Labels: virtualization
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home