Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第 4 章 更新 Overcloud

此过程更新 overcloud。

前提条件

  • 您已将 undercloud 更新至最新版本。

4.1. 加快 overcloud 更新的速度

为加快 overcloud 更新过程,您可以配置 DockerPuppetProcessCount heat 参数,归档已删除的数据库条目,并在执行更新前在 overcloud 节点上下载所需的软件包。

有关加快大型 OpenStack 部署更新过程的更多信息,请参阅红帽知识库文章 Openstack Director 节点性能调优

流程

  1. stack 用户的身份登录 undercloud。
  2. Source stackrc 文件:

    $ source ~/stackrc
  3. 要增加 container-puppet 用来生成配置文件的并发进程数量,您必须配置 DockerPuppetProcessCount 参数。

    1. templates 目录中创建一个名为 updates-environment.yaml 的环境文件:

      $ touch ~/templates/updates-environment.yaml
    2. 编辑该文件并添加以下内容:

      parameter_defaults:
          DockerPuppetProcessCount: 8
    3. 在运行 openstack overcloud update prepareopenstack overcloud ceph-upgrade run, 和 openstack overcloud update converge 命令时,使用 -e 选项包含此环境文件。
  4. 在 Controller 节点上,归档您的已删除的数据库条目:

    1. 从 overcloud,列出 Controller 节点的所有实例:

      $ source ~/overcloudrc
      $ openstack server list
    2. 登录到运行 nova_api_cron 容器的 Controller 节点:

      ssh heat-admin@<controller_ip>
      • <controller name 或 IP > 替换为 Controller 节点的 IP 地址。
    3. 归档已删除的数据库条目:

      $ sudo docker exec -u 42436 -ti nova_api_cron bash
      $ nova-manage db archive_deleted_rows --max_rows 1000
      $ exit
  5. 要下载所有 overcloud 节点上更新所需的所有软件包,请完成以下步骤:

    1. 创建 overcloud 的静态清单文件:

      $ tripleo-ansible-inventory \
      --ansible_ssh_user heat-admin \
      --static-yaml-inventory ~/inventory.yaml
    2. 创建以下 Ansible playbook:

      $ cat > ~/yum-download-only.yaml <<'EOF'
      - hosts: all
        gather_facts: false
        tasks:
          - name: Pre-download all packages on all overcloud nodes
            shell:
              yum upgrade -y --downloadonly
            become: true
      EOF
    3. 运行 yum-download-only.yaml Ansible playbook:

      $ ansible-playbook \
      -i ~/inventory.yaml \
      -f 20 ~/yum-download-only.yaml \
      --limit Controller,Compute,CephStorage