某科技研发云计算心酸史之工作总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作总结(2011年11月~2012年9月)
虚拟化基础架构业务部
王毅
2012-9-24
目录
1.概述
从2011年11月份至2012年九月份,我主动要求接受公司分派的云计算开源软件OpenStack的研发任务,到至今已经完成云计算产品服务的大部分功能,并基于已经研发出来的功能生产出一系列的软件产品共花了11个月的时间。
在这11个月的时间里,无论是对于产品项目的开发、云计算底层服务研发,还是团队建设等方面都遇到了不同程度的问题和困难。虚拟化基础架构业务部从刚刚开始的“IaaS组”到现在成为部门,人员也由最初的四个人发展到现在的13个人。
以下是我从项目和团队建设两个方面着手,将问题融入到项目和团队建设当中来进行虚拟化基础架构业务部的工作总结。
2.项目
目前虚拟化基础架构业务部围绕着云计算底层服务的研发所完成的项目比较多,主要包括《云计算服务管理系统-PUBECM》、《云计算服务监控系统-PUBECC》、《弹性计算应用-ECA》、《云计算服务计费系统-CSBS》、《云计算服务用户中心系统-CSUC》、《云服务网站-CSNT》、《云服务网站内容管理系统-CSMS》、《企业私有云实体机柜操作系统-PRVECM》、《企业私有云实体机柜监控系统-PRVECC》等。
其实,作为云计算服务底层的研发工作,也可以算是一个主要的项目,毕竟它是我们云计算服务底层的核心。
2.1云计算服务底层核心
2011年11月,由于当时我还在杨颖部门下作为一个组的组长,我们所接受的任务是ESDP的开源和ESDP的开源网站的开发。我们组准确的来讲一共只有四个人,在接触了云计算服务开源软件OpenStack以后,由于我跟同组的凌志对OpenStack的云存储部分“swift”从安装到使用都已经进行完成,所以也不得不对OpenStack的虚拟机部分对晓明进行辅助性工作。当时云计算开源软件OpenStack给我的感觉是必须集中精力,才能够顺利的进行,因此我主动要求承接云计算服务开源软件OpenStack的研发工作。
在研发初期,我们主要的精力还是对于OpenStack的集群式安装部署,因为OpenStack是一个开源性的软件,除了它自己的开源项目,包括云存储(swift)、云虚拟机(nova)、镜像服务(glance)、统一身份认证系统(keystone)、管理系统(当时被叫做“dashboard”,后来改称为“horizon”)之外,还包括其他的一些开源的软件项目服务。如:数据库服务(mysql)、时钟服务(ntp)、消
息队列服务(rabbitmq)、虚拟服务器远程服务(noVNC)、网络服务(network)、访问工具(ecua)、卷组服务(volume)等等。各个服务之间首先必须安装正确,在安装正确的基础之上通过配置文件的相互配置才能够达到想要的功能效果,除此之外各个服务之间的安装还存在一个顺序的问题,所以要顺利的安装集群部署就需要反复的实验,为了保证实验的正确性和准确性,我们有的时候不得不要求将服务器进行重新格式化;之所以格式化的主要原因是卸载往往有的时候是无法卸载干净的,同样的安装过程,对于卸载的服务器有的时候能成功;而有的时候却成功不了,这大大干扰了我们的安装思路。
后来公司不允许进行服务器的重新格式化,原因是服务器所在集装箱的机柜不能够经常反复的开启,对服务器机柜内的温度有很大的影响,容易造成服务器的损坏;由于服务器当时在八角楼C4机房,我们只有使用的权限,对于有的时候所发生的服务器死机需要重启等工作,我们只能间接的通过网络部来配合进行完成,而网络部负责这项工作的王烨辉的工作也很忙,我们很多时候不得不进行等待,这也给我们的工作带来了一定的困难和麻烦。
当时我们服务器在机房中一共拥有20台服务器,为了能够在沟通和管理上方便,我针对于服务器进行了从1#~20#的编号,其中15#~19#五台服务器是DELL的R410服务器,其他服务器是2GB的内存配置。为了保证安装脚本在我们自己掌控下顺利进行,我决定将八角楼的服务器中的1#机和2#机搬到了办公地点作为云存储的脚本安装及功能测试;后来张亚丽组的张志楠和张贺军的加入所带来的两台惠普服务器成为了办公地点虚拟机的脚本安装及功能研发和测试的环境,通过这四台服务器组成了我们的办公地点的实验环境。但是为了能够彻底解决OpenStack底层各项服务之间的搭配工作,能够准确的找到问题的出
现位置,锁定服务目标;我采取了将服务器各个服务单独存放至一台物理服务器当中,来进行功能性验证和观察。准确的来讲在C4八角楼机房里有18台服务器供我们使用,但是由于不能够经常性的重新格式化服务器和经常性的进入服务器机房,所以我们对于C4机房中的18台服务器的使用非常慎重,当然也大大影响了我们的工作效率。
OpenStack的官方网站,只是介绍了表面层次上的大体原理,以及各个服务之间的相互作用服务,但是像ntp、rabbitmq这样的其他开源服务是没有介绍的,我们所找到的线索完全得益于从网上下载某些志同道合的网友所提供的安装部署文档;但是想要达到和解决各个服务以单独物理服务器提供服务的目的,这项工作仍然非常的艰难。
为了避免机房服务器的重新安装,我下令让研发人员在自己的台式机上通过virtual box安装虚拟服务器,我们自己的台式机箱只有2GB的内存,最多也就可以跑三台虚拟机,所以只能在这三台虚拟机上跑安装脚本,另外由于我们的台式机CPU等配置不支持虚拟化,所以我们只能够通过返回的命令行提示来确定是否安装成功,但创建虚拟机是得不到任何验证的;同时我们只能关掉一部分已经安装了虚拟服务器后再跑其他的虚拟服务器,花在查看上的时间非常多,更不要说再遇到问题和解决问题了。
在这个工作过程的进行当中,我们实验环境服务器所在机柜的PDU坏了,对于PDU的采购花了很长一部分时间,大概有一个月左右,这也导致了我们的工作无法在实验环境的18台服务器中进行。我们只能在自己的台式服务器里的虚拟机中跑我们的脚本。
在初期的过程中,我们并不敢跑大的虚拟机镜像,而是采用了OpenStack