2013年11月28日 alex

免费开源云平台与VDI的构建

2013年11月28日所说的部分话撤回,愿提供更好的方案给需要的人。 2017年1月24日。

 

下面列举一下如何快速构建开源VDI平台:

总体思路是通过开源项目,依次构建虚拟化平台、IaaS云平台、VDI桌面管理。

 

a) 如果主要需求点是Windows桌面,则通常基于Xen/XenServer/Hyper-V构建。

以最常用的Xen为例,为了直接获得可实际使用的版本,首先你需要下载开源的XenServer, http://xenserver.org/open-source-virtualization-download.html

直接下载安装iso,不要试图从两张源代码DVD从零构建,编译组件后组合没有文档的,如果你不能得到Citrix工程师的支持,需要耗费巨量的时间。

直接安装以后主要部分都很容易从源代码DVD里找到对应,如果你要修改或者山寨,对应的替换就可以了。

然后选择一个IaaS平台,下载安装,例如选择CloudStack,稳定版本可以从官网的下载页面获得,http://cloudstack.apache.org/downloads.html

如果想体验最新开发版本,可以从github直接checkout,https://github.com/apache/cloudstack

写这篇blog的时候,github上的4.4版本的CloudStack可以直接成功编译使用。使用OpenStack相对繁琐一些。

安装文档可以参考官方的指南, http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/index.html

最后,你需要一个RDP或者SPICE的远程桌面分配平台,并自己写几个脚本,让用户的虚拟机可以在访问桌面的时候自动启动,即可完成VDI的构建。

RDP客户端的开源项目一样是铺天盖地,如果考虑到实际的桌面需求,需要跨平台支持各种终端,又不想安装客户端程序和Agent,为何不考虑用Flash或HTML5的桌面呢。

例如Guacamole,一款完全开源的HTML5桌面代理,http://guac-dev.org/#download ,你可以轻松的用它构建VDI,并支持动态分配桌面、AD域集成身份认证等,官方有详细的文档。

如果想要性能好一点,可以基于rdesktop http://sourceforge.net/projects/rdesktop/files/?source=navbar 或其他开源的RDP/SPICE客户端稍加改造,甚至不用改造,直接使用原本的Windows远程桌面即可。http://cgit.freedesktop.org/spice/spice-html5 这里有html5的spice。

最可笑的是现在很多卖瘦客户端的,就是弄个破ARM开发板上面跑个远程桌面,还说什么1080p,你去看看随便买个几百块钱的破ARM板子多少都支持1080p显示?怎么能有脸卖几千块呢。。

比如飞凌的板子: http://item.taobao.com/item.htm?spm=a1z10.1.w4004-185985825.11.Ntntya&id=18449162554 类似的CortexA8 A9的板子大量支持HDMI高清显示,

不要说1080p,就算4k的视频输出的板子,也卖不到几千块钱啊~ 而且买个板子,源代码本身是cpu厂商连同BSP一起提供的,真心对瘦客户端VDI宣传什么云主机还注册专利的,表示呵呵~

开关虚拟机用CloudMonkey写几行python脚本就搞定了,https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+cloudmonkey+CLI 。

b) 如果主要需求点是linux或BSD的服务器虚拟化,则通常基于KVM构建。

KVM的更好办,直接装个CentOS,把虚拟化支持打开就ok了,装CloudStack需要额外装个Agent,然后就可以把KVM当底层Hypervisor了。其他部分和上面一段一样。

另外,红帽比较喜欢SPICE桌面,http://www.spice-space.org/download.html ,但实测一般应用场合感觉这东西用户体验没比RDP好多少。