OpenStack更新:最小化风险和停机时间
为了使OpenStack部署更平稳安全运行,更新和打补丁是非常关键的工作。但是要执行这些更新任务,IT团队要投入的时间精力远不只是按按开关就可以的。
OpenStack平台由大约30个不同的模块组成,其中每个模块都有着相当复杂的功能和要求。OpenStack的开发团队也是基于开源的,这有可能导致不平衡的测试、文档和代码质量。
这就要求IT团队必须定期执行OpenStack更新以避免影响系统运行的稳定性。在很多方面,那就如同是维护一个操作系统(如Windows)一样,需要将bug修复更新保持至最新和确保安全性处于最佳水平。
但是,Windows和OpenStack之间的区别在于后者仍然处于变化较快的发展期,尤其是不同模块的成熟度水平有着较大差异。OpenStack的重要版本发布频率大约为六个月,而微软的发布周期为2-4年。此外,由于OpenStack整体软件成熟度水平不高,功能集在不断发展,所以在重要版本之间的小版本发布也是非常频繁且复杂。
直到近来,用于执行OpenStack更新的首选方法都是使用命令行界面(CLI),这种方法对于单个服务器是很好的,但对于大型节点集群则显得效率低下。对于大型集群执行更新来说,出现错误和更新失败的几率则会显著提高。
执行OpenStack更新的最佳做法
在理想的OpenStack更新中,IT人员应体用所有节点,打补丁,然后重新启动整个配置——但这种方法会导致大量的停机时间。在实施具体更新之前仔细分析更新内容可以提供一种替代解决方案。
寻找那些不对其他模块有依赖性且不会实质性改变存储数据结构的模块。Bug修复是最常见的OpenStack更新,这类更新可滚动应用于所有节点。
如果OpenStack更新影响了跨模块的交互,那么IT团队就需要一起更新这两个模块。但是,难题在于任何节点都可能与其他任何节点进行交互。最安全的打补丁方法就是关闭所有节点。但是,如果跨模块更新涉及了可以关闭的功能,那么就可以安全地重新启动系统。然后,当集群更新时,可再次打开功能。
一般来说,最好是一次更新一个OpenStack模块,然后确定集群是否稳定和无错误。当错误修复出错时,区域化方法可实现更为简便的调试。
务必始终从已知和安全的来源获取更新代码包。这一原则也同样适用于实例与容器镜像、实例与容器中的应用程序和数据,以及OpenStack代码等。当OpenStack集群扩展规模并链接至公共云时,从安全黑客中识别和恢复可能是非常耗时的。
OpenStack更新的自动化选项
OpenStack社区牢记了Windows中的教训。例如,实现OpenStack更新过程自动化是非常有意义的,因为此举将有助于实现停机时间和风险的最小化。而相关的实现工具在一些OpenStack发布版本中。
Red Hat公司的OpenStack平台软件包就是一个典型的例子。这个软件包可处理所有主要的升级任务,以及一些次要的更新。Red Hat试图避免在非重要发布版本中进行功能变更,例如可能具有跨模块影响的API。
其他的供应商也正在解决这个自动化问题。Platform9可实现OpenStack升级的自动化,而惠普企业、戴尔科技以及IBM也纷纷加入此行列。其他的软件供应商则包括Stratoscale、NephoScale 和 Mirantis。考虑到通过CLI方式手工实现OpenStack升级这一方式的复杂性,管理员应当使用这些软件包中的一种来控制升级过程,从而进一步降低风险。虽然它们还不够完美,因为跨模块的依赖性仍然会是这一过程复杂化,但是它们确实有助于主要版本的升级和发布。
本文作者:Jim O'Reilly
来源:51CTO
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2017年云计算成本将会更低
从资源蔓延到缺乏协调,这些因素可能使云计算成本不必要地升高。企业使用这些降低成本的技巧与提示可以节省更多的费用。 随着2016年的结束,企业将盘点和评估他们在过去的一年所花费的费用,其中包括云计算服务的成本。而且,在某些情况下,组织将意识到云计算的成本比他们的预期更大。 为了在新的一年降低云计算服务的成本,以下有五个云计算成本管理秘诀。 1.不要不计成本将应用程序迁移到云计算 组织将所有的应用程序迁移到公共云并不会节省其成本。事实上,多达40%的企业应用程序在云计算中的成本比在内部部署数据中心要高。而有几个指标表明应用程序在云中计算运行成本会更加高昂。 组织可以使用代码分析器查看应用程序的设计和代码,以确定应用程序将使用的云计算资源量。如果它使用过多的资源,组织的开发团队可能会重写应用程序,但这将产生更多的成本和风险。 数据位置也对云计算中的应用程序成本有影响。如果云计算托管应用程序使用存储在内部的数据,可能会发生网络延迟,损害性能,并提高成本。最后,那些具有严格安全性和合规性要求的应用程序可能会增加云计算的成本。 2.使用云自动缩放功能,标注不必要的资源引导 云计算是一个动态环境,可...
- 下一篇
数据库拆分的几种方式
数据库做拆分的几种方式:1.按功能划分(垂直切分) 将不同功能相关的表放到不同的数据库中,这样做的好处是非常直观。但当某一部分的功能其数据量或性能要求超出了可控的范围,就需要继续对其进行深入的再切分。 2.按表中某一字段值的范围划分(水平切分) 当伴随着某一个表的数据量越来越大,以至于不能承受的时候,就需要对它进行进一步的切分。一种选择是根据key 的范围来做切分,譬如ID 为 1-10000的放到A上,ID 为10000~20000的放到B。这样的扩展就是可预见的。另一种是根据某一字段值来划分,譬如根据用户名的首字母,如果是A-D,就属于A,E-H就属于B。这样做也存在不均衡性,当某个范围超出了单点所能承受的范围就需要继续切分。还有按日期切分等等。 优点:单表大小可控,天然水平扩展 缺点:无法解决集中写入瓶颈的问题 3.基于hash的切分 一般采用mod来切分,一开始确定切分数据库的个数,通过hash取模来决定使用哪台。这种方法能够平均地来分配数据,但是伴随着数据量的增大,需要进行扩展的时候,这种方式无法做到在线扩容。每增加节点的时候,就需要对hash 算法重新运算。 所以采用这种方...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果