说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

基于OpenStack的私有云开发部署实践

HTML文档下载 WORD文档下载 PDF文档下载
OpenStack作为目前十分主流的私有云平台,已经被很多组织应用于其内部。本文邀请了来自五八同城公司的高级云计算工程师赵龙,分享了他在企业内部设计、构建以及运维整个OpenStack系统的经验。

【编者按】OpenStack作为目前十分主流的私有云平台,已经被很多组织应用于其内部,提升其内部 IT 基础架构运行和管理的效率。对于很多入门的OpenStack 初学者来说,官方的标准文档已经很难满足他们在学习和实验过程中遇到的问题。本文是来自五八同城公司的高级云计算工程师赵龙,分享了他在企业内部设计、构建以及运维整个OpenStack 系统的经验,让更多希望能够了解和使用这个优秀的云计算平台的技术人员可以更有效地获得最有实用价值的信息。

文中简要介绍了OpenStack 在私有云平台中的一个应用,基于OpenStack 实现了企业内部的虚拟机资源分配管理平台。同时给出了一个OpenStack 企业级的云平台部署方案,在存储和网络上的探索和性能优化使得OpenStack 较好地满足了企业对外提供Web服务的需要。(阅读原文)


随着互联网技术的飞速发展和广泛应用,互联网公司对于产品迭代和技术升级的要求都更为迫切。相应地,研发测试人员对于机器的使用需求量也上了一个台阶。传统的虚拟化解决方案存在大量的问题和弊端,已经无法满足企业内部用户按需取用虚拟机资源的需求,运维人员和开发测试人员在虚拟机的使用管理上存在着很大的耦合性和关联性。探索更为自动化、快捷的虚拟资源使用分配方式已经成为无法回避的问题。

经过充分调研需求,我们在企业内部实现了一套基于 OpenStack 的虚拟机资源管理平台(VMMS),能够动态、实时地响应全公司开发测试人员申请、续借和其他日常使用虚拟机的请求。系统的架构设计如下所示:

图 1.系统架构图

用户通过客户端请求虚拟机时,VMMS 虚拟机资源管理系统会立即响应用户的请求,按照用户的具体需求分配一台配置合理的虚拟机。通过维护一个动态变化的虚拟机资源池空间,对于虚拟机资源的各种请求做到了秒级响应。而且,为了保证虚拟机资源的动态伸缩,系统中还加入了时间管理模块;另外,虚拟机的正常运行工作通过状态管理模块来负责。全部的虚拟机资源都是通过底层的 OpenStack 云平台提供,VMMS Server 以一定频率和 OpenStack 云平台进行通信,保证资源的可用性和请求的及时响应。

VMMS的设计哲学是在平台硬件资源有限的前提下,优先满足用户对虚拟机的各种操作需求,保证虚拟机资源平台的可用性和稳定性,对用户的申请操作和虚拟机资源配额、资源池大小都做了强限制。具体来说,VMMS 的开发管理策略主要体现在以下几方面:

虚拟机配置策略

58 同城是为用户提供本地生活信息的平台,主要提供覆盖广泛、定位精准的各类 Web 服务。使用虚拟资源的用户因为业务和具体场景的不同,对虚拟机的需求也不尽相同。应对普通的 Web 服务开发测试,例如快速接口调整、嵌入新的管理推广模块、页面样式变更等灵动项目的调整与测试,使用接近 PC 机配置的虚拟机就可以达到较好的响应效果,必要时可以通过横向增加机器数量的方法应对业务大规模推广测试和版本迭代;应对核心业务线的优化和部分基础服务就需要使用高配置的机器,这类业务大都具有 CPU 密集型和内存密集型的特点。典型的场景有信息管理中心索引重建、Redis 集群测试等,都需要分配多核 CPU 高内存配置的虚拟机。我们将虚拟机用户的潜在需求大致分为几类,并为之相应准备了配置适宜的虚拟机镜像和云主机类型。用户在申请时,只需要在用途和欲申请虚拟机配置标注,提单后系统就会匹配相应的虚拟机给用户使用。另外,还在部分镜像加入了集中配置和测试部署环境打通的相关配置,有利于减少用户重复配置安装的工作量。

请求响应策略

为了从根本上改善过去虚拟化服务资源分配效率低下的问题,VMMS 系统会在用户操作请求提交后瞬间响应用户的申请。这是基于一个自适应变化的虚拟机资源池实现的。系统初始化时会创建 n 台虚拟机作为原始虚拟机资源池,用户申请后资源分配模块会从已有资源中匹配然后响应用户,系统在后台会根据虚拟机申请周期和频率从全局上调整补全虚拟机资源的速度。VMMS 系统在平台总虚拟机数量 m 和当前维持可用的虚拟机数量 n 都做了一定的限制,为的是保证对虚拟机资源分配平台负载的有效控制。在局部时间内如果用户申请虚拟机操作的并发量超过了设定的阈值,系统会根据并发量调整 m 至 1.5 倍或 2 倍不等。相应地,资源池虚拟机数量 n 也得到了提升,优先保证用户正常进行各种虚拟机请求操作。在用户申请虚拟机操作请求频率回落后,VMMS 会再次将 m 和 n 的值收敛到正常范围。

资源控制策略

私有云平台受限于规模,所能够使用的硬件资源比较有限。为了及时有效地回收不在使用状态的虚拟机,VMMS 系统的时间管理模块会根据每台虚拟机的初始申请周期对在用虚拟机列表中机器进行定时扫描。查找到虚拟机使用周期已到而用户并没有后续的续借行为,系统会自动回收该虚拟机,释放物理资源。用户在申请虚拟机时有虚拟机重要性的可选字段,可根据业务和场景的具体情况给出重要性数值。针对工作数据和日志信息比较关键的虚拟机实例,如果到达指定时间还未收到续借请求,VMMS 会首先对虚拟机做停机处理,告知用户需要续借,没有后续操作的话虚拟机会在三天内回收。

虚拟机稳定性策略

状态管理模块会定时扫描每台在用虚拟机的状态,对不处于可工作状态的虚拟机首先尝试恢复,不成功则启用虚拟机重建和迁移策略来保证虚拟机的可用性。

虚拟机生成策略

为了减少人为干预,虚拟机的生成采用了完全自动化的策略。虚拟机从启动到划分所属网络、绑定浮动 IP、修改初始密码到进行业务上的初始化部署做到了完全借助系统本身流程进行。

借助 VMMS 虚拟机资源管理平台,开发测试人员能够自由便捷地按需取用虚拟机,在业务开发与测试环境的准备工作上提高了效率。VMMS 响应用户的各类虚拟机请求操作达到了每天上百次,简化了传统虚拟化解决方案下用户提单、运维审批,创建虚拟机再交付用户使用的流程,在无需人干预的情况下取得了较过去投入大量运维人力更好的体验;虚拟机的使用迭代周期相比过去大大缩短,每隔 10-15 天虚拟机资源池中的机器就会完整更新一遍,用户随用随取、不用归还,避免了资源的长期占有和浪费;在相同的硬件资源条件下能够管理和提供的虚拟机数量也较过去有了大幅提升。

OpenStack 云平台部署方案介绍

在实现了公司内部供开发测试人员使用的私有云平台后,需要将目光转向公司 Web 服务的虚拟化实现上来。与之对应,就需要部署一套企业级的 OpenStack 云平台环境。

网络方面根据平台需要,分别采用了 vlan 和 flatDHCP 模式,以项目为单位作为租户,进行网络的规划和设计;实现了多网络节点的 OpenStack 环境,保证了网络服务的高可用性。

存储上针对业务的访问特点,实现了基于本地存储、NFS 共享存储和 glusterfs 分布式文件系统共享存储的混合存储方案。将虚拟机的 disk 文件存储在宿主机本地硬盘上,数据盘即工作区间挂载分布式共享存储的卷。

方案上针对企业级生产环境可能遇到的问题实现了虚拟机在线迁移和物理机宕机迁移等功能。虚拟机在线迁移做到对用户基本透明,迁移过程不影响业务运行;物理机宕机迁移做到了虚拟机所在宿主机宕机后(硬盘损毁,网络不通,电源中断)能够在分钟级内迅速恢复虚拟机的正常使用,将由环境问题导致的事故风险降到最低。

经过实践和线上环境的使用统计,基于 OpenStack 的虚拟化解决方案相对于传统的虚拟化解决方案在主要性能上有了明显提升,下图是性能对比:


图 2.性能对比

高可用配置与平台性能优化

OpenStack 云管理平台部署后,在存储和扩展性上还存在诸多问题。例如,虚拟机的操作系统永久损毁或者宕机后,如何快速恢复虚拟机运行对外提供服务,业务负载高了以后如何在很短的时间内添加物理节点均衡线上压力,如何保证存储的 I/O 性能,避免操作系统 I/O 和数据业务 I/O 争夺资源。针对以上问题,做了以下几方面的高可用配置和优化工作:

  • 虚拟机在线迁移和物理机宕机迁移实现;
  • glusterfs 支持的分布式块存储功能实现;
  • OpenStack 本地仓库的搭建。

虚拟机在线迁移和物理机宕机迁移

基于NFS 共享存储的配置部署

  • 在存储集群上安装 NFS 服务;
  • 计算节点挂载 NFS 服务器的目录;
  • 配置计算节点使其能够免密码 ssh 登录;
  • 修改 nova.conf 文件;
  • 配置 libvirt 的相关文件;
  • 添加 iptables 的相关规则。

部署过程中需要注意一些细节:

1. 挂载点是有要求的,一定要挂载在 nova.conf 配置文件中指向的 instances 创建目录下。各计算节点上,这个路径要完全一样,通常情况下可以使用默认路径/var/lib/nova/instances。如果 NFS 的客户端即计算节点没有选择这个挂载点,也可以顺利创建虚拟机,但是迁移时会发生错误。

2. 确保计算节点有挂载目录的执行和查找权限。

chmod o+x /var/lib/nova/instances

3. 修改 nova 和 libvirt 的配置,使 vncserver 监听 0.0.0.0 而不是计算节点的 IP;同时设置 libvirt 监听 tcp。

更改以下配置项的值:

listen_tls=0listen_tcp=1auth_tcp="none"

4. 在计算节点添加 iptables 规则,确保试图途径 16509 端口的 TCP 连接可以顺利通过。16509 端口是 libvirt 专门用于虚拟机迁移的端口,在线迁移依赖于共享存储和 libvirt 工具在线迁移的配置。在各宿主机上添加如下的 iptables 规则:

iptables -I INPUT 3 -p tcp --dport 16509 -j ACCEPTiptables -I OUTPUT 3 -p tcp --dport 16509 -j ACCEPT

未完>>>关于OpenStack本地仓库搭建方法的更多精彩内容,请移步 IBM developerworks 查看

(责编/夏梦竹)

技术人员创业后就不再适合继续编码了? Google Dremel vs Apache Hadoop 低功耗之争:英特尔 VS ARM NEIC-诺基亚体验创新中心 助力开发者创享新移动互联时代 Google地图主管Daniel Graf:新设计,新目标 浴火重生:OpenFeint创始人推开源平台OpenKit 紧随AWS数据仓库服务 Rackspace力鼎Cloudant 创业者谈:畏惧失败,但也要拥抱失败 谷歌赢得一场战斗 苹果能否赢得战争? 走进大学校园:是什么让学生成为独立开发者? 移动周报:为什么说独立开发者才是光明康途? MapFan eye:看日本地图导航应用的新玩法 数据会被清空:部分三星、魅族手机存安全漏洞 IE10简化文件访问 支持FileReader API 从MySQL迁移到MariaSQL Wikipedia力求开放 奥巴马筹款网站的制作过程 国内芯片厂商发力4G 新岸线2013年将推LTE方案 CMDN Club 23期:开放平台和O2O移动产品开发 花旗调低Apple股票评级 不信iPhone5会卖得好 2012年Linux Journal读者选择奖结果公布 百度云SiteApp:三步轻松创建移动网站 Twitter跨数据中心图片存储系统Blobstore解析 摩托罗拉携手中国移动发布Intel Inside智能机新锋丽i MT788 第五届“英特尔杯”全国大学生软件创新大赛圆满落幕 Appro推出液冷超级计算机 Dell:曾敦促微软WinRT放弃Windows品牌 IE10十大优点:渲染页面比Chrome快8% 法国电信:开放平台下的O2O移动产品怎么玩? 客如云创始人彭雷:寻找O2O“失落的半圆” 中国电信宋鹏飞:天翼开放平台的服务及架构解析 W3C小组宣布:HTML5标准制定完成 我装了网卡以后Windows XP老死机,搞不懂! QQ号被盗,怎么办? 如何往Exe文件中加入多个图标? 一个关于树的问题 100:如何破解Internet选像里面的“分级审查“密码 有何用php连接sql server 7.0数据库?在线!! 通过什么软件可以用sock代理上网,只要能用http、ftp下载文件就行 请问Listbox的valueMember数据类型是什么啊 怎样把EXCEL的数据转换成固定格式的WORD文档,急 问高手:可不可以修改DataGrid自动生成的编辑列在WEB页面的Name属性? 在VB中如何得到局域网的域名及登录的用户名等资料? asp.net中类似于asp中focus的语句如何表达 怎样使DataGrid在显示数据的时候实现滚动条? 关于rs.addnew 如何获得id的值,id为自动编号 简单问题,求教:Oracle 8.0.5中ParamByName的问题? 小小问题,如何拷贝sql server一张相同结构的表? 我想咨询一下在VB中不同的后缀代表的是什么功能? 小妹请教各位大虾,apache做应用服务器,unix下,怎样连接oracle数据库? 老天啊,这是为什么??????别了,我的世界杯,别了,巴蒂斯图塔,别了,阿根廷....... 更新数据库问题,100分回报? EXCEL里的时间问题!!谢~ 在word2000里怎样输入数学公式啊 重载[][],请各位帮忙。 我准备参加程序员考试 法国,阿根廷,我的心在滴血。:( :( 为阿根廷哭的人太多了(我的同事,同学等等)。。。是不是央视的沈冰也当场哭了? 寻dialogic代理商合作,急 分页程序中如何加书签,用rs.bookmark最好!!! 听说VB.net的编译器使用C#做的,是吗? 计算机英语在程序员考试中占多大比例? 令人失望的世界杯,放分!!!!!!!!! 怎样获得Mp3的歌曲信息 如何在ACCESS数据库中引用自身数据库? 阿根廷,别为我哭泣! 线程的同步问题(在线等待100) 请问如何在bcb中引用delphi的*.pas文件?(如果可以的话) 如何将CRichEditCtrl的内容输出到打印机? 关于jcreator编译时的问题 在xslt中如何判断一个结点在xml中出现的次数? 请邦邦忙--数据库不能启动了 请问..... 两个存储过程问题,帮我答了,重分酬谢 如何捕获键盘事件 讨论EAS,留步,您请进! 开发自己的组件库! 如何调用.chm帮助文件?? jbuilder6的经典书籍哪里有? 在seek(0,2)中,0,2表示什么意思,整个函数又是什么意思。 WebForm2中如果要引用WebForm1中的变量X(属性),怎么办?X在form1中怎样定义?在form2中怎样引用? 关于汇编语言? 用TC如何在开发OpenGL? 几何光学的问题我们知道当点光源位于凸透镜的焦点时,点光源呈放射状的射向凸透镜的光线,经凸透镜折射后,会呈平行状射出.那么,当点光源位于透镜的二分之一的焦距时,点光源的光线经凸 用弹簧测量一星体重力加速度,劲度系数大好还是小好? 缩手反射的反射弧中,神经冲动传递顺序是什么 有关几何光学的问题如果物距在 2f以外的如果成像屏 不放在成实像点的地方他会形成的是什么图像用的是凸透镜 为什么神经纤维直径越粗,其传导兴奋的速度就越快?希望有针对性的讲解原因,而不是摆出一大堆原理……谢谢~ 请问怎么用双缩脲法,设计一个测定蛋白质含量的定量方法(标准线法除外) 大学物理题,求平面的电场强度通量,有一边唱为a的正方形平面,在其垂线上距中心o点a/2处,有一电量为q的正点电荷,则通过该平面的电通量为?A:(4/6)πq B:q/(4πε) C:q/(3πε) D:q/(6ε) 准确测量蛋白质含量的方法? 完成缩手反射的一个反射需要几个神经结构的参与 为什么平行板电容器极板接地对电荷没有影响?那空腔金属导体为什么有影响? 若在离肌肉5mm和50mm的神经纤维上分别给电刺激 肌肉分别在3.5ms 5.0ms后收缩 则兴奋在神经纤维上传导速度为?我知道答案是30 也知道是长度差/时间差可是为什么是长度差/时间差啊球解 两颗球形行星A和B各有一颗卫星a和b,卫星的圆形轨道接近各自行星的表面,如果两颗行星的质量之比为MA/MB=p,半径之比为RA/RB=q.则两颗卫星的周期之比为Ta/Tb=? 在用福林-酚试剂法测定酪蛋白的含量中确定最大吸收波长有什么意义 CAS号,求其中文名称,1.cas 874-35-11H-indene,2,3-dihydro-5-methyl2.1595-16-0benzene,1-methyl-4-(1-methylpropyl)-3.7225-67-4heptane,2,2,3,3,5,6,6-heptamethyl4.6682-71-91H-indene,2,3-dihydro-4,7-dimethyl-5.3891-98-3dodecane,2,6,10-trimethyl-6.1010 两个球形行星A和B各有一颗靠近表面的行星a和b,若这两个行星的周期之比Ta:Tb=p,半径之比为Ra:Rb=q,则此两个行星的质量之比为Ma:Mb为? 用电压表直接接在二极管有电压吗 福林-酚法检测提取物的总酚含量的原理? bb是什么意思.往那方面想你懂的. 几何光学题显微镜的物镜焦距f1=1cm,目镜焦距f2=2cm.从物镜到目镜的距离为23cm.显微镜的放大率为何值?物体离物镜的距离多远?请附简要解题步骤 2楼后一问怎么得出来的结果 福林酚法测蛋白质含量的影响因素 标准类前面是BB/T,类似GB/T的 几何光学的一道题玻璃棱镜的折射棱角A为60°,对某一波长的光其折射率n = 1.6 ,试求:(1)最小偏折角;(2)此时的入射角;(3)能使光线从A角两侧透过棱镜的最小入射角. 福林酚法检测可溶性蛋白质的原理注意是原理哦,越详细越好. 二极管的导电特性是怎样的?使用时应注意什么问题? 几何光学的几个物理题折射率为1.5的薄透镜,在空气中的焦距为f,则它在水中的焦距为()检查视力时,受检者站在5m处看清最上一行E的视力是0.1 ,另一人需在4m处看清,此人视力为()一远视者 有两个焦距分别是5CM和20CM的放大镜,一手握一个并且将焦距为20厘米的放大镜放在前 通过两个有两个焦距分别是5CM和20CM的放大镜,一手握一个并且将焦距为20厘米的放大镜放在前 通过两个透镜 BB是什么意思 什么是几何光学? 二个焦距5和20的放大镜,20在前,通过二个透镜看前面物体,物体呈什么像 发光二极管具有____导电特性,它的主要材料是什么? 一个正多面体,它的顶点数、面数和棱数的比是2:2:3,求它的顶点数、棱数和面数? 什么是拉伸变形 有人对我说,把你的bb发过来. 一个多面体每个面都是五边形,且每个顶点的一端都是三条棱,求多面体的棱数和面数.最好有理由. 如果不锈钢拉伸件发生变形现象应该如何处理 电工电子技术基础的二极管的单向导电特性 测氨基态氮为什么要用中性甲醛 大学物理静电场电场强度通量半径为R的半球面置于电场强度为E的均匀电场中,其对称轴与电场强度方向一致,如图下所示,则通过该半球面的电场强度通量为 ______.求教大侠,如何计算,答案是π^2 BB是什么意思啊? 氨基态氮测定中甲醛的Ph值怎么调 不锈钢拉伸冲压件怎样防止变形 二极管的单向导电特性是指什么 为什么用甲醛滴定甘氨酸氨基氮实验中测得的回收率会超过100%? 不锈钢的拉伸变形的相关知识. 二极管单向导电特性的实验电路图 已知某物体做匀变速直线运动,开始时刻的速度为2m/s,路程随时间变化的数量关系为s=2t+t²,则物体在4s内运动的路程为___m,在4s末的速度为___m/s.求计算过程和解题思路 神经传导和化学突触传导的区别!要详细解答的还有更详细的么? 怎么用双缩脲法测定蛋白质 平均速度是不是 匀速直线运动时用路程÷时间, 如果是匀变速直线运动用末速度减去初速度再÷2平均速度是不是匀速直线运动时用路程÷时间,如果是匀变速直线运动用末速度减去初速度再÷2 凯氏定氮实验中,是通过测定什么测算出样品中粗蛋白的含量. 在缩手反射中,兴奋在神经纤维上的传导都是双向的.在突触的传递都是单向的.为什么错了 物体沿直线运动,前一半路程需时间4s,平均速度为30m/s,后一半路程的平均速度为20m/s,则物体全过程中的平均 无缝钢管的拉拔延伸系数如何计算? 双缩脲法测定蛋白质含量的干扰因素有哪些 “公司组成机构”英语怎么说? 什么是齿轮滑动系数 缩手反射中,兴奋在神经纤维上的传导都是双向的,在突触处的传递都是单向的吗 显微镜物镜的直径为3.04mm,物距是0.5mm,所用的光源波长是600nm,问该显微镜在空气中(n=1)与油浸物镜(n=1.5)时,数值孔径分别是多大? 热损系数大好还是小好呢? 双缩脲法测血清蛋白质含量实验的干扰因素
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘