瞬联基于OpenStack的私有云解决方案

前言

        不知不觉中已经接触云计算领域一年有余了,从CloudFoundry到OpenStack,从虚拟化到云平台,随着项目的深入发现要学的东西越来越多,但时间却总是不够用,所以也想借这篇博文对过去的2012年做一个总结。

        值得庆幸的是,我们躲过了世界末日,我们还活着,云计算事业还将继续。

瞬联基于OpenStack的私有云解决方案

需求二:共享存储——私有网盘

        此外,基于群组的文件共享也是重要需求之一。在我们企业内部环境中,文件的共享基本通过电子邮件或者wiki的方式实现,但无论哪种方式都有明显的劣势:电子邮件不利于查找而wiki对普通用户使用有门槛。基于以上需求,我们结合OpenStack提供的对象存储模块SWIFT,开发了针对企业私有云平台的网盘服务。另外,对于一些OFFICE、PDF、图片等,大部分的用户只想查看其中的内容,并不需要编辑他们,但往往我们收到这样的文件,只能下载后通过本地的客户端软件打开后才能查看,很浪费时间。所以,我们又开发了针对文档及图片等常见文件格式的在线浏览功能,同时还提供群组分享、内容检索等服务。网盘的应用在企业内部,即保证了数据的安全、可靠,又提高了用户体验。

瞬联基于OpenStack的私有云解决方案

        我们选用的OpenStack网络是传统的VLAN方式,并没有使用Quantum,这是因为在Essex版本时,Quantum还不是正式的模块,所以到了Folsom版本,我们延续了原有的VLAN方式。VLAN方式很好的实现了各个项目之间的隔离,保证了安全性。

        为了能够让各个分公司都能够使用私有云,我们先划定了一条各个分公司都能够访问的VLAN作为提供公共服务的网段,再划定一条VLAN作为虚拟机内部通讯的网络。同时在相关交换机上预留VLAN ID 800~850,50条VLAN与OpenStack内部VLAN相对应,同一VLAN下虚拟机之间通讯不受影响。通过这些手段,保证了无论我们的计算节点位于哪一层的机房,都可以进行通讯。

        在图中,最左侧为控制节点,其中OpenStack控制节点和网盘应用形成MySQL集群,用于实时备份数据,任意一台出现问题之后,另外一台可以快速作为对方的备份节点。下面的一台是为了提供自动部署的服务器。

        中间靠上的两台服务器,分别提供镜像和卷服务,利用GlusterFS形成冗余,并可互为灾备节点。因为GlusterFS并不支持块设备,所以这里用到的Cinder驱动为NFS。中间的服务器代表一个机房中的某几台服务器形成一个Zone,这个Zone专门为CL这个项目组提供虚拟机服务。中间靠下的服务器是SWIFT服务器,作为网盘的后台。

        最右边的服务器,代表OpenStack控制节点所在机房如何和另外一个机房的服务器连接。那么这几台服务器形成一个独立的区域,为整个瞬联内部提供服务。

        监控方案采用Nagios,对主机性能及关键进程形成监控,后期准备在已有的Nagios OpenStack Plugin基础上增加一些关键指标的监控。

部署

        我们当前采用的OpenStack版本为定制版Folsom,底层操作系统为Ubuntu 12.04 64bit Server版本。操作系统采用kickstart实现推送,本地缓存了所有DEB包,无须网络安装。IT人员只须设定好网络地址,之后由Fabric脚本完成主机名、NTP、Puppet等基础软件的安装。

        因为是我们定制的版本,所以市面上所有的部署方案基本都是不适用的,我们基于dodai-deploy,开发了可以部署我们自己软件的版本,并且将所有的数据库全部默认使用MySQL(默认的dodai-deploy只有nova是使用MySQL数据库)。

瞬联基于OpenStack的私有云解决方案

        凡是有蓝色的模块是我们定制过的模块和增加的模块,主要集中在Keystone、Nova、以及Horizon三个模块,在Cinder中增加了关于NFS驱动层的三个方法。

        Nova是我们最早开始改动的模块,为了实现对于虚拟机申请的控制,我们增加了一张表用于存放用户所有申请及状态。之后增加Flow api用于实现相应的请求。最后,增加了nova-flow服务用于通知用户虚拟机过期和删除过期的虚拟机。这样配合Horizon的改动,就可以完成了对虚拟机申请流程的控制。

瞬联基于OpenStack的私有云解决方案

用户申请页面,增加申请天数、区域等信息

瞬联基于OpenStack的私有云解决方案

        Cinder中,因为NFS驱动中,并没有生成卷镜像和从卷镜像生成新镜像的方法,所以这部分代码,正准备提交到社区。

网盘应用

        网盘应用基于OpenStack Swift API开发的。提供在线文档、图片浏览、群组分享功能,现在支持的格式:DOC/XLS/PPT/PDF/PNG等多种常见的文档和图片格式。我们准备在近期将我们的版本开源,回馈社区。还是图片最容易说明问题,继续上图:

用户登陆后的页面,私人空间

瞬联基于OpenStack的私有云解决方案

虚拟化桌面应用

        虚拟化桌面包括VDI Broker以及Visual两个部分,Broker主要负责处理RDP协议解析以及和Visual交互,而Visual则完全负责资源分配。VDI同时支持添加虚拟机和物理机,现阶段暂时需要云管理员对所有可用服务器进行配置,在下一个阶段将根据需求启停虚拟机。如果用户使用的是虚拟机,那么在用户登陆后,自动挂载一块用户硬盘,用户保存在此硬盘的所有资料,在下一次使用VDI服务时仍然存在。还是来看图:

架构图

瞬联基于OpenStack的私有云解决方案

用户选择要使用的资源池,完成连接

瞬联基于OpenStack的私有云解决方案

结语

        在半年的内部运行中,系统非常稳定,随着新功能的不断更新,内部的用户也愿意使用云平台服务。各个项目的负责人也积极的将项目的开发、测试环境放到云中运维,而这也直接帮助他们更好的控制项目进度,缩短准备周期。我们相信随着我们不断的努力,一定能让企业私有云在我们的企业日常生活中发挥越来越重要的作用。

        当然,我们还有很多工作要做,还有很多功能要完善,我们也希望和社区、和更多行业用户、企业交流,以帮助我们更好的优化、完善我们的解决方案,也希望帮助有需要的企业用户创建一个稳定、良好的企业级私有云平台。

        最后,也欢迎对我们解决方案感兴趣用户与我们做进一步交流。

我的新浪微博 @RaySun

电子邮箱:qsun01185@cienet.com.cn


欢迎转载,请注明作者。

来源:孙琦Ray

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2013年1月19日
下一篇 2013年1月20日

相关推荐