关于KVM桌面云的一些感触

个人搞桌面云的开发有两年多的时间了,在这期间经历了无数次的生死。哈哈,开个玩笑,不过确实是很痛苦。
桌面云基本上是windows系列的系统,这就要求在流畅度这块使一些功夫。以我个人的经过来说吧,刚开始我们使用了一种分布式的文件系统(想保留每个用户的镜像文件),结果实现之后发现,对于linux还凑合,对于windows卡成狗了(我们开发的是面向中小企业的桌面云,成本肯定是越低越好,所以FCSAN这种级别的存储还是想想就好了)。没办法,只能改喽。
自然而然,就想到放到计算节点本地去存储,但是这就意味着失去了个性化(不是统一的存储池),没办法针对每个用户保留其用过的虚拟机镜像。后来突然有个机会,灵光一现。可以在虚拟机中搞两块虚拟硬盘,C盘的话存储在本地,每次开机重新生成,这样虚拟机的流畅性得到了保证,而且每次开机重新创建虚拟机,搞过KVM的童鞋相比知道,这个过程很快很快。然后呢,把D盘存储到分布式文件系统中,每次虚拟机开启的时候挂载一下(类似U盘),这样的话用户就可以保存私人文件在系统中了,当然得是D盘才行。用了这种方案,果然流畅度好很多。
当然,后又一种方案就是基于镜像下载的方式,比如openstack,但是处理很大的镜像文件在网络中的流动显然不是一件容易的事情。
在说说关于桌面云比较麻烦的远程协议吧,KVM默认使用vnc或spice两种远程解决方案,后来在网上比较下,说vnc性能很差,而且很好带宽,无奈用spice做了好一阵子。那时候笔者还不太了解网络这块,不知道用dhcp服务器可以搞定LAN内的IP,进而通过rdp访问,当然这是后话。
用spice协议的一个好处就是,配置简单,直接在kvm配置文件中写好,虚拟机开启的时候就会给你一个远程访问端口。后来发现这样太low啦,使用spice会使得计算节点的局域网IP直接暴露在外面,很不安全。而且spice有自己的客户端,用户使用起来不是方便。因此,我们就在局域网中搞了个DHCP服务器,用于为虚拟机配置IP(虚拟机得采用桥接的方式)。这样每次虚拟机开启都会分配一个局域网固定IP,通过虚拟机的3389端口就可以使用rdp来访问拉。而且rdp对U盘重定向什么的都支持,用户使用起来也比较方便。
献血这么多吧。
个人的能力比较有限,如有错误,还请各位指正。

你可能感兴趣的:(桌面云)