SHARC虚拟化技术(Weidong Shi,2011文献阅读笔记)

云桌面的基本框架

Weidong Shi的2011年发表的文章:“SHARC: A scalable 3D graphics virtual appliance delivery framework in cloud”中
描述了“可扩展3D桌面云”的SHARC框架,分为3个部分:

virtualization servers (虚拟化服务器,这篇文章使用Xen)
graphics rendering servers (图形图像渲染服务器,使用物理显卡)
media streaming servers (视频流服务器,采用H.264压缩,RTSP传输)
SHARC框架

1.1 virtualization servers框架

图形虚拟化

为了支持虚拟机的3D应用,SHARC采用了虚拟OpenGL驱动(从Chromium的OpenGL驱动修改)。
VMGL是一个Xen虚拟环境下的Linux虚拟OpenGL驱动,它也是从Chromium的OpenGL驱动修改而来的)。
SHARC提供了一个Linux GLX驱动,它实现了很多Chromium和VMGL中没有实现的函数。

SHARC为Windows实现了一个显示驱动(Windows DDK),将图形渲染命令和数据从虚拟机共享内存中提取出来(一个dom0级的代理程序),将它发送到graphics rendering server中。
实现了虚拟Direct3D驱动, 将Direct3D API转换为OpenGL命令(从WineX's D3D Driver(WineD3D)修改),采用这种方式支持Direct3D。

音频虚拟化

声卡模拟器(SB16)

交互虚拟化

使用Windows DDK实现了虚拟键盘和鼠标输入(针对Windows虚拟机)
使用Linux udev实现了输入守护服务(针对Linux虚拟机)

virtualization servers框架

1.2 graphics rendering server框架
执行图形渲染命令,将渲染后的cJPEG数据流传输到media streaming servers中。

渲染上下文调度

SHARC’s graphics rendering server从Chromium’s server修改而来。
SHARC 渲染图像帧到 Pbuffer,(因为graphics rendering server渲染图像不是为了显示,而是为了发送到media streaming server,这一点和Chromium、VMGL是不同的)。
选用cJPEG格式压缩渲染后的帧,使用GPU's SIMD处理器,后来使用Nvidia's CUDA GPU编程。

对象的Cache

如果Cache中存在要渲染的图行对象,virtualization servers不需要再传输一遍

GPU的JPEG压缩

因为要传输给media streaming servers,所以使用JPEG压缩一下,节省20%的带宽。

Graphics rendering server框架

1.3 media streaming server框架
采用SMP系统,接收cJPEG流,转码成H.264的码流,之后传输出去。

使用FFMPEG(集成X264的H.264编码器),H.264编码只是用了I和P帧
使用Live555实现RTP/RTSP协议的支持,使用Red5实现RTMP协议支持

Media streaming server框架

1.4 streaming VNC support
SHARC扩展了标准VNC协议,以支持3D的虚拟应用

使用overlay view的模式显示实时的3D虚拟应用

扩展VNC支持3D虚拟 应用

实验结果

2.1 实验条件

硬件:
virtualization server: 1个E5410 2.33 GHz,16 GB,Xen 3.1
graphics rendering server: 4个PCIe x16插槽,4 块Nvidia 9800GT显卡
media streaming servers:2个E5410 2.33 GHz,4GB
客户端:1个Dual-Core AMD Opteron Processor 2210, 2GB
网络设备:Cisco 千兆交换机

测试实例:
Tux Racer (a GPL racing game)
Alien Arena (a FPS GPL game)
War of Warcraft 3 demo (a popular RPG game)

2.2 性能分析支持
使用IEEE Std 1588-2002进行个机器之间的同步,以获得小于毫秒级的精确计数器
实现了一个屏幕水印功能

2.3 初步结果(结果有些片面,不能反映系统的性能)

时延分析
总时延113ms左右

平均时延构成

OpenGL的API调用次数和传输带宽(virtualization server 到 graphics rendering server)

OpenGL的API调用次数和传输带宽

media streaming server的传输带宽
使用Tux Racer例子(这只是最简单的图形),800帧的平均带宽在1.5Mbps

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,454评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,553评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,921评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,648评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,770评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,950评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,090评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,817评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,275评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,592评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,724评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,409评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,052评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,815评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,043评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,503评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,627评论 2 350

推荐阅读更多精彩内容