阶段 5:升级和维护

扩展之旅》的最终阶段是升级和维护。

一旦您成功扩展,如何有效地升级和维护您的部署呢?本阶段旨在建立常规操作,以保持您的部署最新,并受益于最新的错误修复和操作系统改进。此页面旨在帮助回答这些问题。

常见问题解答

问:我已经扩展了我的云…现在如何升级我的 OpenStack 基础设施?

答:这是一个简单的问题,但答案却非常复杂……这取决于您的设置。由于您正在运行大型基础设施,我假设您的所有 OpenStack 项目都在独立的服务器上运行。在这种情况下,您可以分别查看每个 OpenStack 项目,这使得规划和测试更加容易。OpenStack 项目升级通常需要少量停机时间(用于数据库升级和数据迁移)。但是,有些项目在多个版本中都没有更改数据库版本,例如 Glance,在这种情况下,您可以进行实时升级。此外,有些项目允许在线数据迁移以避免长时间的升级干预,例如 Nova。

当然,有些项目比其他项目更具挑战性。例如,Keystone、Glance、Cinder 相对容易升级,因为它们只有几个组件。要升级这些项目,CERN 通常会安装具有升级版本的新节点,升级基本上就是用负载均衡器中的新节点替换旧节点。如果需要数据库迁移,则在启用新节点之前完成它们。

不要忘记在尝试升级之前,在测试基础设施中测试功能和所有程序!

对于具有大量组件的项目,例如 Nova,升级肯定更具挑战性。根据每个组件的服务器数量,替换它们可能并不总是可行的。在 CERN,我们通常会就地升级 Nova 组件。在大型基础设施中,具有多个 Cell,升级 Nova 涉及升级多个节点和多个数据库迁移(请记住,每个 Cell 都有一个数据库)。我们通常在升级窗口期间执行数据迁移。nova-compute 的升级发生在基础设施已经对用户开放之后。升级此组件通常对用户是透明的,我们按 Cell 进行操作。请记住测试和查看每个 Cell 的“升级级别”配置。

再次强调,升级总是充满挑战!确保您在尝试在大型生产基础设施中进行升级之前测试和练习所有程序。

问:我可以在同一基础设施中运行不同版本的 OpenStack 项目吗?

答:是的,您可以!

但是,在这种情况下,最好让每个 OpenStack 项目在不同的服务器上运行,以避免库冲突。例如,您可以让 Keystone 和 Glance 运行 Victoria 版本,而 Nova 仍然在 Stein 上。

问:如何升级我的 OpenStack 基础设施的基础操作系统?

答:当然,这取决于您的基础操作系统。在 CERN,我们使用 CentOS。我们启用了自动升级,并且每周节点都会收到常规软件包升级(CERN 每周分阶段升级软件包,并在 QA 基础设施中进行测试)。我们通常会按 Cell 分阶段升级次要操作系统版本(例如从 CentOS 7.8 到 7.9)。这使我们能够识别问题(不幸的是,很难在 QA 中检测到所有问题,尤其是在有多种硬件类型的情况下)并将它们限制在每个 Cell 中。

主要操作系统升级更具挑战性(例如从 CentOS 7 到 CentOS 8)。OpenStack 控制平面可以通过替换节点轻松升级。对于计算节点,这可能会非常破坏性。通常不建议就地升级,并且不同版本之间的实时迁移可能无法正常工作。

问:OpenStack 项目的 MySQL 升级?

答:在 CERN 部署基础设施将近 8 年前,我们正在运行 MySQL 5.6。我们刚刚达到此 MySQL 版本的 EOL(2021 年 2 月 5 日)。

将数据库升级到 5.7 对所有 OpenStack 项目都没有任何问题。请务必备份您的数据!以防万一。

此外,将数据从 MySQL 5.6 转储并移动到 MySQL 5.7,我们没有发现任何问题。目前我们正在进行迁移到 MySQL 8 的过程。到目前为止,我们将不同 OpenStack 项目在 MySQL 5.7 上运行的数据移动到 MySQL 8 时,没有发现任何问题。

问:RabbitMQ 集群升级?

答:我不建议为 RabbitMQ 节点启用自动升级,尤其是在集群配置下运行的情况下。将您的 RabbitMQ 集群视为您的宠物!

RabbitMQ 集群中的任何问题都可能影响基础设施,尤其是当我们谈论大型基础设施时。