升级 openstack platform 7 red hat enterprise linux openstack · compute 服务的升级。 red...

29
OpenStack 文档团队 Red Hat Enterprise Linux OpenStack Platform 7 OpenStack Red Hat Enterprise Linux OpenStack Platform

Upload: others

Post on 21-Jul-2020

35 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

OpenStack 文档团队

Red Hat Enterprise Linux OpenStackPlatform 7升级 OpenStack

升级 Red Hat Enterprise Linux OpenStack Platform

Page 2: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的
Page 3: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

Red Hat Enterprise Linux OpenStack Platform 7 升级 OpenStack

升级 Red Hat Enterprise Linux OpenStack Platform

OpenStack 文档团队Red Hat Customer Content [email protected]

Page 4: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

法律通告法律通告

Copyright © 2015 Red Hat, Inc.

This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0Unported License. If you distribute this document, or a modified version of it, you must provideattribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hattrademarks must be removed.

Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinitylogo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and othercountries.

Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.

Java ® is a registered trademark of Oracle and/or its affiliates.

XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United Statesand/or other countries.

MySQL ® is a registered trademark of MySQL AB in the United States, the European Union andother countries.

Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related toor endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marksor trademarks/service marks of the OpenStack Foundation, in the United States and other countriesand are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed orsponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

摘要摘要

本文档介绍了把 Red Hat Enterprise Linux OpenStack Platform 从版本 6(Juno)升级到版本7(Kilo)的方法。这些方法假设您要进行升级的 OpenStack 部署是安装在 Red Hat Enterprise Linux7 系统上的。

Page 5: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

目目录录

第第 1 章章 简简介介1.1. 升级方法的比较

第第 2 章章 先决条件先决条件2.1. 配置 Content Delivery Network (CDN) 频道

第第 3 章章 同同时时升升级级所有所有 OpenStack 服服务务3.1. 同时升级所有 OpenStack 服务

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack4.1. 在一个非高可用性环境中,在运行 Compute 时,通过单独更新每个服务来升级 OpenStack4.2. 在一个高可用性环境中,在运行 Compute 时,通过单独更新每个服务来升级 OpenStack

22

44

66

101013

目目录录

1

Page 6: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

第第 1 章章 简简介介

本文档介绍了把 Red Hat Enterprise Linux OpenStack Platform 6 升级到 Red Hat Enterprise Linux OpenStackPlatform 7 的方法。

如果您当前正在使用 RHEL OpenStack Platform 5(Icehouse),并希望把它升级到 RHEL OpenStackPlatform 7(Kilo),您需要先把它升级到 RHEL OpenStack Platform6(Juno)。https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/6/ 中的 Upgrading 介绍了相关信息。

红帽只支持对运行在 Red Hat Enterprise Linux 7 系统上的 Red Hat Enterprise Linux OpenStack Platform 7 进行升级。第 1.1 节 “升级方法的比较” 对红帽支持的各种升级方法分别进行了介绍,升级方法比较 一节提供了每种升级方法的相关文档和链接。如需了解每个组件的详细信息,请参阅 ComponentsOverview(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/)。

对于同时升级所有服务和单独升级每个服务这两种情况,本指南都介绍了在高可用性(HA)环境下和非高可用性(non-HA)环境下的升级方法,您需要确保 Pacemaker 服务被正确启用或禁用。

以下介绍的所有升级方法都可以把您的环境升级到可以正常工作的 RHEL OpenStack Platform 7(Kilo)版本。另外,我们推荐您使用并行云迁移的方法来进行进一步的升级,使得系统可以使用 RHEL OpenStackPlatform 7 director。RHEL OpenStack Platform 7 的并行云迁移过程会把通过其它安装程序部署的 OpenStack云环境升级到使用 RHEL OpenStack Platform 7 director 进行部署。

1.1. 升升级级方法的比方法的比较较

红帽推荐使用以下方法升级到 Red Hat Enterprise Linux OpenStack Platform 7。下表分别对这些方法进行了介绍。

表表 1.1. 升升级级方法方法

方法方法 描述描述 优优点点 缺点缺点

同时升级所有服务 使用这种方法,您需要同时停止所有 OpenStack服务,进行升级,然后在升级完成后再启动所有服务。

如需了解更多相关信息,请参阅 第 3 章 同时升级所有 OpenStack 服务。

这个升级方法比较简单。因为所有服务都被停止,所以不需要进行编配(orchestration)。在这个升级过程中,尽管所有服务都被停止,但是如果不需要改变 Red HatEnterprise Linux 的版本(如从 v7.0 变为v7.1),虚拟机负载仍然可以运行。

在进行升级的过程中,所有服务都将无效。在一个大型环境中,这个升级过程可能会导致较长的停机时间(downtime)。您可以通过在实际升级前进行仔细的规划和测试,或在一个特定的停机时间段内进行升级来减少停机对您环境造成的影响。

升升级级 OpenStack

2

Page 7: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

对服务进行逐个升级,并实时升级 Compute

这种方法是“对服务进行逐个升级”方法的一个变异,它的不同之处在于对Compute 服务的升级。Red Hat Enterprise LinuxOpenStack Platform 7 具有一个功能,它允许您在运行经过升级的 compute节点的同时运行老版本的compute 节点。这个方法就是通过这个功能实现的。

如需了解更多信息,请参阅 第 4 章 在运行Compute 时,通过单独更新每个服务来升级OpenStack。

使用这种方法可以最小化升级对 compute 服务造成的影响,您只需要几分钟来升级小的服务,然后在适当的时间段内把负载迁移到新升级的Compute 主机上。使用这种方法,已经存在的负载仍然可以继续运行,而不需要等待数据库迁移操作的完成。

这种方法需要额外的硬件资源来运行 Red HatEnterprise LinuxOpenStack Platform7(Kilo) Compute 节点。

方法方法 描述描述 优优点点 缺点缺点

对于所有方法:

请确认在所有主机上都订阅了正确的频道。

升级的过程会中断一些服务的正常运行。

除非您重启了 Compute 节点或停止了一个实例,升级的过程不会对运行的实例产生影响。

为了升级 OpenStack Networking,您需要在 /etc/nova/nova.conf 文件中设置正确的 libvirt_vif_driver,因为老的驱动已经不被支持。请在 Compute API 主机上运行以下命令:

# openstack-config --set /etc/nova/nova.conf \DEFAULT libvirt_vif_driver nova.virt.libvirt.vif.LibvirtGenericVIFDriver

警告警告

红帽不支持:

把 Beta 版的 Red Hat Enterprise Linux OpenStack Platform 升级到正式支持的版本(如 6 或 7)。在 Red Hat Enterprise Linux OpenStack Platform 7 中把 Compute Networking(nova-networking)升级到 OpenStack Networking(neutron)。红帽只支持把 OpenStack Networking(neutron)从Red Hat Enterprise Linux OpenStack Platform 6 升级到 Red Hat Enterprise Linux OpenStackPlatform 7。

第第 1 章章 简简介介

3

Page 8: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

第第 2 章章 先决条件先决条件

本节介绍了部署 Red Hat Enterprise Linux OpenStack Platform 7 所需的频道和存储库。

警告警告

在安装 Red Hat Enterprise Linux OpenStack Platform 7 前,您需要确保无法访问到老的 Red HatOpenStack 存储库。例如,取消订阅或禁用以下存储库:

Red Hat Enterprise Linux OpenStack Platform 4 (Havana) -- rhel-6-server-openstack-4.0-rpmsRed Hat Enterprise Linux OpenStack Platform 5 (Icehouse) -- rhel-7-server-openstack-5.0-rpmsRed Hat Enterprise Linux OpenStack Platform 6 (Juno) -- rhel-7-server-openstack-6.0-rpms

Packstack 会使用 Subscription Manager 把系统注册到红帽网络(RHN)。如果您以前使用 RHNClassic 对系统进行了注册,并订阅了 Red Hat OpenStack 频道,则可能会遇到一些问题。

注意注意

如需创建需要使用 cloud-init 的自定义 Red Hat Enterprise Linux 虚拟客户机镜像,我们推荐您使用 Red Hat Common for RHEL Server 频道。

对于 Red Hat Enterprise Linux 7,运行:

# subscription-manager repos --enable=rhel-7-server-rh-common-rpms

2.1. 配置配置 Content Delivery Network (CDN) 频频道道

您可以通过 Content Delivery Network (CDN) 安装 Red Hat Enterprise Linux OpenStack Platform 7。请配置 subscription-manager 来使用正确的频道。

运行以下命令来启用一个 CDN 频道:

# subscription-manager repos --enable=[reponame]

运行以下命令来禁用一个 CDN 频道:

# subscription-manager repos --disable=[reponame]

Red Hat Enterprise Linux 7

下表介绍了 Red Hat Enterprise Linux 7 的频道。

表表 2.1. 所需所需频频道道

频频道道 仓库仓库名称名称

Red Hat Enterprise Linux 7 Server (RPMS) rhel-7-server-rpms

Red Hat OpenStack 7.0 for Server 7 (RPMS) rhel-7-server-openstack-7.0-rpms

升升级级 OpenStack

4

Page 9: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

Red Hat Enterprise Linux 7 Server - RH Common(RPMs)

rhel-7-server-rh-common-rpms

频频道道 仓库仓库名称名称

表表 2.2. 可可选频选频道道

频频道道 仓库仓库名称名称

Red Hat Enterprise Linux 7 Server - Optional rhel-7-server-optional-rpms

Red Hat Enterprise Linux OpenStack Platform Director

下表介绍了 Red Hat Enterprise Linux OpenStack Platform Director 所需的频道。

表表 2.3. 所需所需频频道道

频频道道 仓库仓库名称名称

Red Hat Enterprise Linux OpenStack PlatformDirector 7.0 (RPMs)

rhel-7-server-openstack-7.0-director-rpms

Red Hat Enterprise Linux 7 Server (RPMS) rhel-7-server-rpms

Red Hat Software Collections RPMs for Red HatEnterprise Linux 7 Server

rhel-server-rhscl-7-rpms

Images on CDN (Optional) rhel-7-server-openstack-7.0-files

Red Hat Enterprise Linux OpenStack Platform 7.0Operational Tools

rhel-7-server-openstack-7.0-optools-rpms

禁用禁用频频道道

下表包括了为了使 Red Hat Enterprise Linux OpenStack Platform 7 可以正常运行需要被禁用的频道。

表表 2.4. 禁用禁用频频道道

频频道道 仓库仓库名称名称

Red Hat CloudForms Management Engine "cf-me-*"

Red Hat CloudForms Tools for RHEL 6 "rhel-6-server-cf-*"

Red Hat Enterprise Virtualization "rhel-6-server-rhev*"

Red Hat Enterprise Linux 6 Server - ExtendedUpdate Support

"*-eus-rpms"

第第 2 章章 先决条件先决条件

5

Page 10: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

第第 3 章章 同同时时升升级级所有所有 OpenStack 服服务务

这个 OpenStack 升级的方法包括同时禁用所有 OpenStack 服务,进行升级操作,然后在升级完成后启用所有服务。这是所有升级到 Red Hat Enterprise Linux OpenStack Platform 7 的方法中最简单的一个方法。

因为所有服务都被停止,所以不需要进行编配(orchestration)。如果不需要改变 Red Hat Enterprise Linux的版本(如从 v7.0 变为 v7.1),虚拟机负载仍然可以运行。

在一个大型环境中,这个升级过程可能会导致较长的停机时间(downtime)。您可以通过在实际升级前进行仔细的规划和测试,或在一个特定的停机时间段内进行升级来减少停机对您环境造成的影响。

注意注意

本章中所使用的命名规则与其它所有 Red Hat Enterprise Linux OpenStack Platform 文档中的规则相同。如果您还不熟悉它们,请在进行升级前参阅 Architecture Guide( Red Hat Enterprise LinuxOpenStack Platform Documentation Suite)。

在对 OpenStack 进行升级前,请订阅所需的频道。如需更多相关信息,请参阅 第 2 章 先决条件

3.1. 同同时时升升级级所有所有 OpenStack 服服务务

以下介绍了通过同时更新所有组件来把您的云环境从 Juno 升级到 Kilo 的方法。其中的一些步骤包括了高可用性(HA)环境和非高可用性(non-HA)环境的选项。如果您的云环境需要具有高可用性的功能,则需要使用Pacemaker 命令来启动或停止您的云环境。

在所有主机上执行以下操作:

过过程程 3.1. 在一个主机上升在一个主机上升级级 OpenStack 组组件件

1. 为 Red Hat Enterprise Linux OpenStack Platform 7 (Kilo) 安装 yum 仓库。

2. 确定 openstack-utils 软件包已被安装:

# yum install openstack-utils

3. 在所有节点上停止所有 OpenStack 服务。这一步取决于您的环境类型。

A. 在一个非高可用性(在一个非高可用性(non-HA))环环境中:境中:

登录到节点并运行以下命令来在一个节点上停止所有 OpenStack 服务:

# openstack-service stop

B. 在一个高可用性(在一个高可用性(HA))环环境中:境中:

a. 登录到节点并运行以下命令来在一个节点上停止所有 OpenStack 服务:

# openstack-service stop

b. 在集群中设置 stop_all_services 属性来禁用所有被 Pacemaker 管理的资源。在Pacemaker 集群的一个成员上运行以下命令:

升升级级 OpenStack

6

Page 11: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# pcs property set stop_all_resources=true

您需要等待,直到 pcs status 显示所有资源已停止。

4. 对所有软件包进行一个完整的升级,然后在 Identity 服务上删除过期的令牌(这可以减少数据库同步所需的时间):

# yum upgrade

5. 对每个服务进行所需的配置更新。

a. Identity 服服务务

在 RHEL OpenStack Platform 7 (Kilo) 发行版本中,令牌持久化后端(token persistencebackend)的位置已改变。您需要更新 keystone.conf 文件的 [token] 项中的 driver选项。把所有 keystone.token.backends 替换为 keystone.token.persistence.backends。

# sed -i 's/keystone.token.backends/keystone.token.persistence.backends/g' \/etc/keystone/keystone.conf

软件包更新可能会包括新的 systemd 单元文件,请确保 systemd 可以知道这些更新的文件。

# service systemd restart

b. OpenStack Networking 服服务务

在升级完 OpenStack Networking 服务后,您需要编辑 rootwrap dhcp.filter 配置文件。

替换 /usr/share/neutron/rootwrap/dhcp.filters 文件中的 dnsmasq 的值。例如,进行以下替换:

dnsmasq: EnvFilter, env, root, CONFIG_FILE=, NETWORK_ID=, dnsmasq

替换为:

dnsmasq: CommandFilter, dnsmasq, root

6. 为所有使用数据库的服务升级它们的数据库 schema。登录到提供服务的节点并运行:

# openstack-db --service SERVICENAME --update

使用服务的项目名替换其中的 SERVICENAME。例如,要升级 Identity 服务的数据库 schema,运行:

# openstack-db --service keystone --update

表表 3.1. 使用数据使用数据库库的的 OpenStack 服服务务的的项项目名目名

第第 3 章章 同同时时升升级级所有所有 OpenStack 服服务务

7

Page 12: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

服服务务 项项目名目名

Identity keystoneBlock Storage cinderImage Service glanceCompute novaNetworking neutronOrchestration heat

在把 Juno 升级到 Kilo 时,一些特定服务会需要进行额外的数据库操作,这些操作没有包括在 openstack-db 命令中:

a. Identity 服服务务

以前的安装程序可能没有被配置为需要删除过期的 Keystone 令牌,所以您的令牌表中可能包括大量已经过期的令牌。这可能会大大增加数据库 schema 升级的时间。

在进行 Keystone 数据库升级前,您可以运行以下命令:

# keystone-manage token_flush

这会从数据库中删除过期的令牌。您可以使用 cron 来定期运行这个命令(如每天运行一次)。

b. Compute

在全部升级到 Kilo 后(所有节点都运行 Kilo),您需要启动一个 flavor 信息的后台迁移过程。Kilo conductor 节点会在需要的时候自动进行这个操作,但是其它空闲的数据需要在后台进行迁移。以 nova 用户身份运行以下命令:

# runuser -u nova -- nova-manage db migrate_flavor_data

7. 检查生成的配置文件。更新的软件包会创建与 Red Hat Enterprise Linux OpenStack Platform 7 版本的服务相对应的 .rpmnew 文件。

新版本的 OpenStack 服务可能不再支持特定的配置选项,您需要查看 OpenStack 日志中的不再支持的警告信息,并解决它们。否则,在今后进行的升级中可能会出现问题。如需了解更多与配置选项相关的信息,请参阅 Configuration Reference(Red Hat Enterprise Linux OpenStack PlatformDocumentation Suite)。

8. 如果您升级的软件包需要系统重启(例如,一个新内核作为升级的一部分被安装),请在还没有启动相应 OpenStack 服务时重启相关的主机。

A. 在一个非高可用性(在一个非高可用性(non-HA))环环境中:境中:

在每个节点上运行以下命令重启 OpenStack 服务:

# openstack-service start

B. 在一个在一个 HA 环环境中:境中:

a. 通过设置 stop_all_resources 属性来允许 Pacemaker 重启您的资源。在 Pacemaker集群的一个成员上运行:

# pcs property set stop_all_resources=false

升升级级 OpenStack

8

Page 13: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

您需要等待,直到 pcs status 显示所有资源已启动(这可能会需要几分钟)。

b. 在 Compute 节点上重启 OpenStack 服务。在每个 Compute 节点上运行:

# openstack-service start

第第 3 章章 同同时时升升级级所有所有 OpenStack 服服务务

9

Page 14: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级OpenStack

在这个过程中,所有服务都被单独升级,每个服务的升级过程都包括一个软件包升级和数据库 schema 更新。

实时升级 Compute 可以最小化升级对 compute 服务造成的影响,您只需要几分钟来升级小的服务,然后在适当的时间段内把负载迁移到新升级的 Compute 主机上。使用这种方法,已经存在的负载仍然可以继续运行,而不需要等待数据库迁移操作的完成。

注意注意

这个方法可能需要额外的硬件资源来运行 Red Hat Enterprise Linux OpenStack Platform 7 Compute 节点。

注意注意

本章中所使用的命名规则与其它所有 Red Hat Enterprise Linux OpenStack Platform 文档中的规则相同。如果您还不熟悉它们,请在进行升级前参阅 Architecture Guide( Red Hat Enterprise LinuxOpenStack Platform Documentation Suite)。

在对 OpenStack 进行升级前,请订阅所需的频道。如需更多相关信息,请参阅 第 2 章 先决条件

4.1. 在一个非高可用性在一个非高可用性环环境中,在境中,在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来来升升级级 OpenStack

本节介绍了在一个非高可用性(non-HA)环境中,在运行 Compute 服务的情况下,通过每次更新一个服务来升级您的云环境的方法。

1. 升升级级前的准前的准备备任任务务::

在所有主机上:

a. 为 Red Hat Enterprise Linux OpenStack Platform 7 (Kilo) 安装 yum 仓库。

b. 如果有更新的 openstack-selinux 软件包,对它进行升级。

# yum upgrade openstack-selinux

这可以确保升级后的服务可以正确地运行在一个启用了 SELinux 的系统上。

2. 升升级级每个服每个服务务::

以下介绍了对每个服务进行升级的信息,其中服务的顺序与实际升级的顺序相同。

a. Identity (keystone)

以前的安装程序可能没有被配置为需要删除过期的 Keystone 令牌,所以您的令牌表中可能包括大量已经过期的令牌。这可能会大大增加数据库 schema 升级的时间。

在进行 Identity 数据库升级前,可以运行 keystone-manage 命令。

升升级级 OpenStack

10

Page 15: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

这会从数据库中删除过期的令牌。您可以使用 cron 来定期运行这个命令(如每天运行一次)。

在 Identity 主机上运行:

# openstack-service stop keystone# yum -d1 -y upgrade \*keystone\*# keystone-manage token_flush# openstack-db --service keystone --update# openstack-service start keystone

b. Object Storage (swift)

在 Object Storage 主机上运行:

# openstack-service stop swift# yum -d1 -y upgrade \*swift\*# openstack-db --service swift --update# openstack-service start swift

c. Image Service (glance)

在 Image Service 主机上运行:

# openstack-service stop glance# yum -d1 -y upgrade \*glance\*# openstack-db --service glance --update# openstack-service start glance

d. Block Storage (cinder)

在 Block Storage 主机上运行:

# openstack-service stop cinder# yum -d1 -y upgrade \*cinder\*# openstack-db --service cinder --update# openstack-service start cinder

e. Orchestration (heat)

在 Orchestration 主机上运行:

# openstack-service stop heat# yum -d1 -y upgrade \*heat\*# openstack-db --service heat --update# openstack-service start heat

f. Telemetry (ceilometer)

a. 在运行 Telemetry 组件服务的所有节点上运行:

# openstack-service stop ceilometer# yum -d1 -y upgrade \*ceilometer\*

b. 在控制器节点(数据库安装的地方)上运行:

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

11

Page 16: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# ceilometer-dbsync

这个命令把 MySQL 配置为 Telemetry 服务的后端。

如需获得 Telemetry 组件服务的列表,请访问 Launch the Telemetry API andAgents。

c. 当完成软件包更新后,在运行 Telemetry 组件服务的所有节点上运行以下命令来重启Telemetry 服务:

# openstack-service start ceilometer

g. Compute (nova)

a. 如果要对 Compute 主机进行升级,您需要明确设置 API 版本的限制来确保您的 Juno和 Kilo 环境间的兼容性。

在启动 Kilo 控制器或 Compute 服务前,您需要把 nova.conf 文件中的 [upgrade_levels] 段落中的 compute 选项设置为 juno:

# crudini --set /etc/nova/nova.conf upgrade_levels compute juno

您需要在控制器和 Compute 主机上进行这个修改。

当把所有的 Compute 主机升级到 OpenStack Kilo 后,需要取消这个操作。

b. 在 Compute 主机上运行:

# openstack-service stop nova# yum -d1 -y upgrade \*nova\*# openstack-db --service nova --update

c. 在全部升级到 Kilo 后(所有节点都运行 Kilo),您需要启动一个 flavor 信息的后台迁移过程。Kilo conductor 节点会在需要的时候自动进行这个操作,但是其它空闲的数据需要在后台进行迁移。以 nova 用户身份运行以下命令:

# runuser -u nova -- nova-manage db migrate_flavor_data

d. 在把所有主机都升级到 Kilo 后,您需要把在前一步中设置的 API 限制删除。在所有节点上运行:

# crudini --del /etc/nova/nova.conf upgrade_levels compute

e. 在所有的 Compute 主机和控制器上重启 Compute 服务:

# openstack-service start nova

h. OpenStack Networking (neutron)

a. 在 OpenStack Networking 主机上运行:

升升级级 OpenStack

12

Page 17: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# openstack-service stop neutron# yum -d1 -y upgrade \*neutron\*# openstack-db --service neutron --update

b. 在升级完 OpenStack Networking 服务后,您需要编辑 rootwrap dhcp.filter 配置文件。

替换 /usr/share/neutron/rootwrap/dhcp.filters 文件中的 dnsmasq 的值。例如,进行以下替换:

dnsmasq: EnvFilter, env, root, CONFIG_FILE=, NETWORK_ID=, dnsmasq

替换为:

dnsmasq: CommandFilter, dnsmasq, root

c. 重启 OpenStack Networking 服务:

# openstack-service start neutron

i. Dashboard (horizon)

在 Dashboard 主机上运行:

# yum -y upgrade \*horizon\* \*openstack-dashboard\*# yum -d1 -y upgrade \*horizon\*# openstack-db --service horizon --update# openstack-service start horizon

3. 升升级级后的任后的任务务::

a. 在完成所有服务升级后,您需要在所有系统上执行一个完整的软件包升级。

# yum upgrade

这将确保所有软件包都是最新的。您可能需要计划在今后的某个时间重启您的 OpenStack 主机,从而保证所有运行的进程都使用最新版本的代码。

b. 检查生成的配置文件。更新的软件包会创建与 Red Hat Enterprise Linux OpenStack Platform7 版本的服务相对应的 .rpmnew 文件。

新版本的 OpenStack 服务可能不再支持特定的配置选项,您需要查看 OpenStack 日志中的不再支持的警告信息,并解决它们。否则,在今后进行的升级中可能会出现问题。如需了解更多与配置选项相关的信息,请参阅 Configuration Reference(Red Hat Enterprise LinuxOpenStack Platform Documentation Suite)。

4.2. 在一个高可用性在一个高可用性环环境中,在境中,在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

本节介绍了在一个高可用性(HA)环境中,在运行 Compute 服务的情况下,通过每次更新一个服务来升级您的云环境的方法。

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

13

Page 18: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

1. 升升级级前的准前的准备备任任务务::

在所有主机上:

a. 如果 Staypuft 配置运行 Puppet,您需要禁用它:

# systemctl stop puppet# systemctl disable puppet

这会确保 Staypuft 配置的 puppet 不会更改在升级过程中做的修改。

b. 为 Red Hat Enterprise Linux OpenStack Platform 7 (Kilo) 安装 yum 仓库。

c. 手工升级所有的 python 软件包。

# yum upgrade python*

d. 如果有更新的 openstack-selinux 软件包,对它进行升级。

# yum upgrade openstack-selinux

这可以确保升级后的服务可以正确地运行在一个启用了 SELinux 的系统上。

2. 升升级级服服务务::

升级所有服务。以下是一个在控制器上可以采用的服务升级顺序:

升升级级 MariaDB::

在每个运行 MariaDB 的主机上进行以下操作。请在一个主机上完成整个操作后再在另外的主机上进行操作。

a. 在本地节点上停止运行服务:

# pcs resource ban galera-master $(crm_node -n)

b. 您需要等待,直到 pcs status 显示服务已不在本地节点上运行。这个过程可能会需要几分钟的时间。本地节点将首先转换为从模式(slave mode):

Master/Slave Set: galera-master [galera]Masters: [ pcmk-mac525400aeb753 pcmk-mac525400bab8ae ]Slaves: [ pcmk-mac5254004bd62f ]

本地节点最终会变为停止状态:

Master/Slave Set: galera-master [galera]Masters: [ pcmk-mac525400aeb753 pcmk-mac525400bab8ae ]Stopped: [ pcmk-mac5254004bd62f ]

c. 更新相关的软件包。

# yum upgrade '*mariadb*' '*galera*'

d. 允许 Pacemaker 在本地节点上调度 galera 资源:

升升级级 OpenStack

14

Page 19: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# pcs resource clear galera-master

e. 您需要等待,直到 pcs status 显示 galera 资源已在本地节点上作为一个 master 被运行。pcs status 的输出显示应该包括和以下类似的内容:

Master/Slave Set: galera-master [galera]Masters: [ pcmk-mac5254004bd62f pcmk-mac525400aeb753pcmk-mac525400bab8ae ]

更新更新 MongoDB::

a. 从 Pacemaker 的控制中删除 mongod 资源:

# pcs resource unmanage mongod-clone

b. 在所有控制器上停止服务。在每个控制器上运行:

# systemctl stop mongod

c. 更新相关的软件包:

# yum upgrade 'mongodb*' 'python-pymongo*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 在每个控制器上运行以下命令来重启 mongod 服务:

# systemctl start mongod

f. 为 Pacemaker 控制清理资源:

# pcs resource cleanup mongod-clone

g. 把资源还给 Pacemaker 控制:

# pcs resource manage mongod-clone

h. 您需要等待,直到 pcs status 显示以上资源已运行。

更新更新 Identity 服服务务 (keystone)::

a. 从 Pacemaker 的控制中删除 Identity 服务:

# pcs resource unmanage keystone-clone

b. 在每个控制器上运行以下命令停止 Identity 服务:

# systemctl stop openstack-keystone

c. 更新相关的软件包:

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

15

Page 20: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# yum upgrade 'openstack-keystone*' 'python-keystone*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 在 RHEL OpenStack Platform 7 (Kilo) 发行版本中,令牌持久化后端(token persistencebackend)的位置已改变。您需要更新 keystone.conf 文件的 [token] 项中的 driver选项。把所有 keystone.token.backends 替换为 keystone.token.persistence.backends。

# sed -i 's/keystone.token.backends/keystone.token.persistence.backends/g' \/etc/keystone/keystone.conf

软件包更新可能会包括新的 systemd 单元文件,请确保 systemd 可以知道这些更新的文件。

# service systemd restart

f. 以前的安装程序可能没有被配置为需要删除过期的 Keystone 令牌,所以您的令牌表中可能包括大量已经过期的令牌。这可能会大大增加数据库 schema 升级的时间。

在进行 Identity 数据库升级前,可以运行 keystone-manage 命令。

这会从数据库中删除过期的令牌。您可以使用 cron 来定期运行这个命令(如每天运行一次)。

# keystone-manage token_flush

g. 更新 Identity 服务数据库的 schema:

# openstack-db --service keystone --update

h. 在每个控制器上运行以下命令重启服务:

# systemctl start openstack-keystone

i. 使用 Pacemaker 清理 Identity 服务:

# pcs resource cleanup keystone-clone

j. 把资源还给 Pacemaker 控制:

# pcs resource manage keystone-clone

k. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 Image 服服务务 (glance)::

a. 在 Pacemaker 中停止 Image 服务资源:

升升级级 OpenStack

16

Page 21: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# pcs resource disable glance-registry-clone# pcs resource disable glance-api-clone

b. 您需要等待,直到 pcs status 显示这两个服务已经停止运行。

c. 更新相关的软件包:

# yum upgrade 'openstack-glance*' 'python-glance*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 更新 Image 服务数据库的 schema:

# openstack-db --service glance --update

f. 使用 Pacemaker 清理 Image 服务:

# pcs resource cleanup glance-api-clone# pcs resource cleanup glance-registry-clone

g. 在 Pacemaker 中重启 Image 服务资源:

# pcs resource enable glance-api-clone# pcs resource enable glance-registry-clone

h. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 Block Storage 服服务务 (cinder)::

a. 在 Pacemaker 中停止所有 Block Storage 服务资源:

# pcs resource disable cinder-api-clone# pcs resource disable cinder-scheduler-clone# pcs resource disable cinder-volume

b. 您需要等待,直到 pcs status 显示以上服务已经停止运行。

c. 更新相关的软件包:

# yum upgrade 'openstack-cinder*' 'python-cinder*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 更新 Block Storage 服务数据库的 schema:

# openstack-db --service cinder --update

f. 使用 Pacemaker 清理 Block Storage 服务:

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

17

Page 22: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# pcs resource cleanup cinder-volume# pcs resource cleanup cinder-scheduler-clone# pcs resource cleanup cinder-api-clone

g. 在 Pacemaker 中重启所有 Block Storage 服务资源:

# pcs resource enable cinder-volume# pcs resource enable cinder-scheduler-clone# pcs resource enable cinder-api-clone

h. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 Orchestration (heat)::

a. 在 Pacemaker 中停止 Orchestration 资源:

# pcs resource disable heat-api-clone# pcs resource disable heat-api-cfn-clone# pcs resource disable heat-api-cloudwatch-clone# pcs resource disable heat

b. 您需要等待,直到 pcs status 显示以上服务已经停止运行。

c. 更新相关的软件包:

# yum upgrade 'openstack-heat*' 'python-heat*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 更新 Orchestration 数据库 schema:

# openstack-db --service heat --update

f. 使用 Pacemaker 清理 Orchestration 服务:

# pcs resource cleanup heat# pcs resource cleanup heat-api-cloudwatch-clone# pcs resource cleanup heat-api-cfn-clone# pcs resource cleanup heat-api-clone

g. 在 Pacemaker 中重启 Orchestration 资源:

# pcs resource enable heat# pcs resource enable heat-api-cloudwatch-clone# pcs resource enable heat-api-cfn-clone# pcs resource enable heat-api-clone

h. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 Telemetry (ceilometer)::

a. 在 Pacemaker 中停止所有 Telemetry 资源:

升升级级 OpenStack

18

Page 23: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# pcs resource disable openstack-ceilometer-central# pcs resource disable openstack-ceilometer-api-clone# pcs resource disable openstack-ceilometer-alarm-evaluator-clone# pcs resource disable openstack-ceilometer-collector-clone# pcs resource disable openstack-ceilometer-notification-clone# pcs resource disable openstack-ceilometer-alarm-notifier-clone# pcs resource disable ceilometer-delay-clone

b. 您需要等待,直到 pcs status 显示以上服务已经停止运行。

c. 更新相关的软件包:

# yum upgrade 'openstack-ceilometer*' 'python-ceilometer*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 如果 Telemetry 使用 MySQL 后端,则需要更新 Telemetry 数据库 schema。

# openstack-db --service ceilometer --update

注意注意

如果使用 MongoDB 后端,则不需要这一步。

f. 使用 Pacemaker 清理 Telemetry 服务:

# pcs resource cleanup ceilometer-delay-clone# pcs resource cleanup openstack-ceilometer-alarm-notifier-clone# pcs resource cleanup openstack-ceilometer-notification-clone# pcs resource cleanup openstack-ceilometer-collector-clone# pcs resource cleanup openstack-ceilometer-alarm-evaluator-clone# pcs resource cleanup openstack-ceilometer-api-clone# pcs resource cleanup openstack-ceilometer-central

g. 在 Pacemaker 中重启所有 Telemetry 资源:

# pcs resource enable ceilometer-delay-clone# pcs resource enable openstack-ceilometer-alarm-notifier-clone# pcs resource enable openstack-ceilometer-notification-clone# pcs resource enable openstack-ceilometer-collector-clone# pcs resource enable openstack-ceilometer-alarm-evaluator-clone# pcs resource enable openstack-ceilometer-api-clone# pcs resource enable openstack-ceilometer-central

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

19

Page 24: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

h. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 Compute (nova)::

a. 在 Pacemaker 中停止所有 Compute 资源:

# pcs resource disable openstack-nova-novncproxy-clone# pcs resource disable openstack-nova-consoleauth-clone# pcs resource disable openstack-nova-conductor-clone# pcs resource disable openstack-nova-api-clone# pcs resource disable openstack-nova-scheduler-clone

b. 您需要等待,直到 pcs status 显示以上服务已经停止运行。

c. 更新相关的软件包:

# yum upgrade 'openstack-nova*' 'python-nova*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 更新 Compute 数据库 schema:

# openstack-db --service nova --update

在全部升级到 Kilo 后(所有节点都运行 Kilo),您需要启动一个 flavor 信息的后台迁移过程。Kilo conductor 节点会在需要的时候自动进行这个操作,但是其它空闲的数据需要在后台进行迁移。以 nova 用户身份运行以下命令:

# runuser -u nova -- nova-manage db migrate_flavor_data

f. 如果要对 Compute 主机进行升级,您需要明确设置 API 版本的限制来确保您的 Juno 和 Kilo环境间的兼容性。

在启动 Kilo 控制器或 Compute 服务前,您需要把 nova.conf 文件中的 [upgrade_levels] 段落中的 compute 选项设置为 juno:

# crudini --set /etc/nova/nova.conf upgrade_levels compute juno

您需要首先在一个控制器上运行 pcs resource unmanage 命令来取消管理 Compute 资源:

# pcs resource unmanage openstack-nova-novncproxy-clone# pcs resource unmanage openstack-nova-consoleauth-clone# pcs resource unmanage openstack-nova-conductor-clone# pcs resource unmanage openstack-nova-api-clone# pcs resource unmanage openstack-nova-scheduler-clone

在所有控制器上重启所有服务:

# openstack-service restart nova

升升级级 OpenStack

20

Page 25: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

当把所有的 Compute 主机升级到 OpenStack Kilo 后,需要把控制返回给 Pacemaker。

# pcs resource manage openstack-nova-scheduler-clone# pcs resource manage openstack-nova-api-clone# pcs resource manage openstack-nova-conductor-clone# pcs resource manage openstack-nova-consoleauth-clone# pcs resource manage openstack-nova-novncproxy-clone

g. 在 Pacemaker 中清理所有 Compute 资源:

# pcs resource cleanup openstack-nova-scheduler-clone# pcs resource cleanup openstack-nova-api-clone# pcs resource cleanup openstack-nova-conductor-clone# pcs resource cleanup openstack-nova-consoleauth-clone# pcs resource cleanup openstack-nova-novncproxy-clone

h. 在 Pacemaker 中重启所有 Compute 资源:

# pcs resource enable openstack-nova-scheduler-clone# pcs resource enable openstack-nova-api-clone# pcs resource enable openstack-nova-conductor-clone# pcs resource enable openstack-nova-consoleauth-clone# pcs resource enable openstack-nova-novncproxy-clone

i. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 OpenStack Networking (neutron)::

a. 运行以下命令防止 Pacemaker 触发 OpenStack Networking 清理(cleanup)脚本:

# pcs resource unmanage neutron-ovs-cleanup-clone# pcs resource unmanage neutron-netns-cleanup-clone

b. 在 Pacemaker 中停止 OpenStack Networking 服务资源:

# pcs resource disable neutron-server-clone# pcs resource disable neutron-openvswitch-agent-clone# pcs resource disable neutron-dhcp-agent-clone# pcs resource disable neutron-l3-agent-clone# pcs resource disable neutron-metadata-agent-clone

c. 升级相关的软件包

# yum upgrade 'openstack-neutron*' 'python-neutron*'

d. 为在 neutron.conf 文件中启用的高级 Openstack Networking 服务安装软件包,例如 openstack-neutron-vpnaas、openstack-neutron-fwaas 和 openstack-neutron-lbaas。

# yum install openstack-neutron-vpnaas# yum install openstack-neutron-fwaas# yum install openstack-neutron-lbaas

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

21

Page 26: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

安装这些软件包会创建相关的配置文件。

e. 对于 neutron.conf 文件中的 VPNaaS 和 LBaaS 服务的项,把 service_provider 项复制到相关的 neutron-*aas.conf 文件中(位于 /etc/neutron),并在 neutron.conf文件中注释掉这些项。

对于 FWaaS 服务项,service_provider 参数需要保留在需要保留在 neutron.conf 文件中。

f. 在每个运行 LBaaS 代理的节点上安装 openstack-neutron-lbaas 软件包。

# yum install openstack-neutron-lbaas

g. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

h. 更新 OpenStack Networking 数据库的 schema:

# openstack-db --service neutron --update

i. 在升级完 OpenStack Networking 服务后,您需要编辑 rootwrap dhcp.filter 配置文件。

替换 /usr/share/neutron/rootwrap/dhcp.filters 文件中的 dnsmasq 的值。例如,进行以下替换:

dnsmasq: EnvFilter, env, root, CONFIG_FILE=, NETWORK_ID=, dnsmasq

dnsmasq: CommandFilter, dnsmasq, root

j. 在 Pacemaker 中清理 OpenStack Networking 资源:

# pcs resource cleanup neutron-metadata-agent-clone# pcs resource cleanup neutron-l3-agent-clone# pcs resource cleanup neutron-dhcp-agent-clone# pcs resource cleanup neutron-openvswitch-agent-clone# pcs resource cleanup neutron-server-clone

k. 在 Pacemaker 中重启 OpenStack Networking 资源:

# pcs resource enable neutron-metadata-agent-clone# pcs resource enable neutron-l3-agent-clone# pcs resource enable neutron-dhcp-agent-clone# pcs resource enable neutron-openvswitch-agent-clone# pcs resource enable neutron-server-clone

l. 把清理代理(cleanup agent)还给 Pacemaker 控制:

# pcs resource manage neutron-ovs-cleanup-clone# pcs resource manage neutron-netns-cleanup-clone

m. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 OpenStack

22

Page 27: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

升升级级 Dashboard (horizon)::

a. 在 Pacemaker 中停止 Dashboard 资源:

# pcs resource disable horizon-clone

b. 您需要等待,直到 pcs status 显示这个服务已经停止运行。

c. 更新相关的软件包:

# yum upgrade httpd 'openstack-dashboard*' 'python-django*'

d. 重新加载 systemd 来使更新的单元文件生效:

# systemctl daemon-reload

e. 修改 Dashboard 的配置:

修改修改 Apache 的配置:的配置:

openstack-dashboard 软件包会安装 /etc/httpd/conf.d/openstack-dashboard.conf 文件,但是 Staypuft 安装程序会使用 /etc/httpd/conf.d/15-horizon_vhost.conf 文件替换它。在升级完 horizon 后,将会有以下配置文件:

15-horizon_vhost.conf

openstack-dashboard.conf

openstack-dashboard.conf.rpmnew

确保您进行了以下修改:

删除 openstack-dashboard.conf.rpmnew 文件:

# rm openstack-dashboard.conf.rpmnew

修改 15-horizon_vhost.conf 文件,替换

Alias /static "/usr/share/openstack-dashboard/static"

Alias /dashboard/static "/usr/share/openstack-dashboard/static"

修改修改 Dashboard 配置:配置:

openstack-dashboard 软件包会安装 /etc/openstack-dashboard/local_settings 文件。在升级后,您会找到以下配置文件:

/etc/openstack-dashboard/local_settings

/etc/openstack-dashboard/local_settings.rpmnew

确保您进行了以下修改:

备份已存在的 local_settings 文件:

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

23

Page 28: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# cp local_settings local_settings.old

把 local_settings.rpmnew 文件重命名为 local_settings:

# mv local_settings.rpmnew local_settings

使用 local_settings.old 文件中的相关值替换以下配置选项:

ALLOWED_HOSTS

SECRET_KEY

CACHES

OPENSTACK_KEYSTONE_URL

在所有控制器上重启 web 服务器来使改变生效:

# service httpd restart

f. 在 Pacemaker 中清理 Dashboard 资源:

# pcs resource cleanup horizon-clone

g. 在 Pacemaker 中重启 Dashboard 资源:

# pcs resource enable horizon-clone

h. 您需要等待,直到 pcs status 显示以上资源已运行。

升升级级 Compute 主机主机 (nova)::

在每个 Compute 主机上:

a. 停止所有 OpenStack 服务:

# openstack-service stop

b. 升级所有软件包:

# yum upgrade

c. 如果要对 Compute 主机进行升级,您需要明确设置 API 版本的限制来确保您的 Juno 和 Kilo环境间的兼容性。

在启动 Kilo 控制器或 Compute 服务前,您需要把 nova.conf 文件中的 [upgrade_levels] 段落中的 compute 选项设置为 juno:

# crudini --set /etc/nova/nova.conf upgrade_levels compute juno

您需要在控制器和 Compute 主机上进行这个修改。

d. 启动所有 OpenStack 服务:

升升级级 OpenStack

24

Page 29: 升级 OpenStack Platform 7 Red Hat Enterprise Linux OpenStack · Compute 服务的升级。 Red Hat Enterprise Linux OpenStack Platform 7 具 有一个功能,它允许您在 运行经过升级的

# openstack-service start

e. 在把所有主机都升级到 Kilo 后,您需要把在前一步中设置的 API 限制删除。在所有节点上运行:

# crudini --del /etc/nova/nova.conf upgrade_levels compute

升升级级后的任后的任务务::

a. 在完成所有服务升级后,您需要在所有系统上执行一个完整的软件包升级。

# yum upgrade

这将确保所有软件包都是最新的。您可能需要计划在今后的某个时间重启您的 OpenStack 主机,从而保证所有运行的进程都使用最新版本的代码。

b. 检查生成的配置文件。更新的软件包会创建与 Red Hat Enterprise Linux OpenStack Platform7 版本的服务相对应的 .rpmnew 文件。

新版本的 OpenStack 服务可能不再支持特定的配置选项,您需要查看 OpenStack 日志中的不再支持的警告信息,并解决它们。否则,在今后进行的升级中可能会出现问题。如需了解更多与配置选项相关的信息,请参阅 Configuration Reference(Red Hat Enterprise LinuxOpenStack Platform Documentation Suite)。

第第 4 章章 在在运运行行 Compute 时时,通,通过单过单独更新每个服独更新每个服务务来升来升级级 OpenStack

25