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

相关文章
|
1月前
|
弹性计算 负载均衡 网络协议
这种情况可能是由于阿里云的API服务出现了短暂的故障或者网络波动导致的
【2月更文挑战第20天】这种情况可能是由于阿里云的API服务出现了短暂的故障或者网络波动导致的
62 1
|
11月前
|
存储 监控 Kubernetes
如何以零停机时间或最少停机时间更新 Docker 容器,来确保应用程序持续可用
如何以零停机时间或最少停机时间更新 Docker 容器,来确保应用程序持续可用
242 0
|
云安全 监控 安全
配置基线对于数据安全的影响
配置基线对于数据安全的影响
148 0
|
运维 监控 网络协议
如何监控IT正常运行时间,网络正常运行对企业业务至关重要
随着企业的扩展,其IT网络规模也将不断增长。当将大量属于不同类别,由不同供应商制造的设备添加到您的IT基础结构中时,正常运行时间的管理复杂性就急剧上升
110 0
如何监控IT正常运行时间,网络正常运行对企业业务至关重要
|
存储 监控 搜索推荐
|
Kubernetes Perl 容器
K8S集群优化之修复ServiceEndpoint更新的延迟
几个月前,我在更新 Kubernetes 集群中的 Deployment 时发现了一个很奇怪的连接超时现象,在更新 Deployment 之后的 30 秒到两分钟左右,所有与以该 Deployment作为服务后端的 Service 的连接都会超时或失败。
1810 0
|
NoSQL 应用服务中间件 Redis