22.2. director가 배포한 Ceph Storage로 컨트롤러 노드 업그레이드

배포 시 director를 사용하여 배포된 Red Hat Ceph Storage 클러스터를 사용하는 경우 다음 절차를 완료해야 합니다.

모든 컨트롤러 노드를 OpenStack Platform 16.1로 업그레이드하려면 부트스트랩 컨트롤러 노드부터 각 컨트롤러 노드를 업그레이드해야 합니다.

부트스트랩 컨트롤러 노드 업그레이드 프로세스 중에 새 Pacemaker 클러스터가 생성되고 노드에서 새로운 Red Hat OpenStack 16.1 컨테이너가 시작되지만 나머지 컨트롤러 노드는 여전히 Red Hat OpenStack 13에서 실행됩니다.

부트스트랩 노드를 업그레이드한 후에는 Pacemaker 서비스를 사용하여 각 추가 노드를 업그레이드하고 각 노드가 부트스트랩 노드로 시작되는 새 Pacemaker 클러스터에 참여하는지 확인해야 합니다. 자세한 내용은 Overcloud 노드 업그레이드 워크플로를 참조하십시오.

이 예에서 컨트롤러 노드의 이름은 기본 overcloud-controller-NODEID 규칙을 사용하여 이름이 지정됩니다. 여기에는 다음과 같은 세 가지 컨트롤러 노드가 포함됩니다.

  • overcloud-controller-0
  • overcloud-controller-1
  • overcloud-controller-2

해당하는 경우 고유한 노드 이름으로 이 값을 바꿉니다.

참고

오버클라우드 기본 스택 이름을 사용하지 않는 경우 STACK NAME을 스택 이름으로 교체하는 --stack STACK NAME 옵션으로 스택 이름을 설정합니다.

절차

  1. stackrc 파일을 소싱합니다.

    $ source ~/stackrc
  2. 언더클라우드 노드에서 다음 명령을 실행하여 부트스트랩 컨트롤러 노드를 식별합니다.

    $ tripleo-ansible-inventory --list --stack overcloud |jq .overcloud_Controller.hosts[0]
  3. 부트스트랩 컨트롤러 노드를 업그레이드합니다.

    1. ceph_systemd 태그를 사용하여 외부 업그레이드 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack <stack_name> --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-0

      & lt;stack_name >을 스택 이름으로 바꿉니다.

      이 명령은 다음 기능을 수행합니다.

      • Podman 관리를 사용하도록 Ceph Storage 컨테이너를 제어하는 systemd 장치를 변경합니다.
      • ceph_ansible_limit 변수를 사용하여 작업을 선택한 컨트롤러 노드로 제한합니다.

      이 단계는 Ceph Storage 서비스를 준비하여 업그레이드를 준비하기 위한 예비 조치입니다.

    2. system_upgrade 태그로 upgrade 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-0

      이 명령은 다음 작업을 수행합니다.

      • 운영 체제의 Leapp 업그레이드를 수행합니다.
      • Leapp 업그레이드의 일부로 재부팅을 수행합니다.

        중요

        다음 명령을 실행하면 컨트롤 플레인이 중단됩니다. 다음 몇 단계에서 오버클라우드에서 표준 작업을 수행할 수 없습니다.

    3. system_upgrade_transfer_data 태그를 사용하여 외부 upgrade 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack STACK NAME --tags system_upgrade_transfer_data

      이 명령은 기존 노드의 최신 데이터베이스 버전을 부트스트랩 노드로 복사합니다.

    4. nova_hybrid_state 태그로 upgrade 명령을 실행하고 upgrade_ steps_playbook.yaml 플레이북만 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit all

      이 명령은 이후 단계에서 컴퓨팅 노드를 업그레이드할 때 워크로드 마이그레이션을 용이하게 하기 위해 컴퓨팅 노드에서 임시 16.1 컨테이너를 시작합니다.

    5. 태그 없이 업그레이드 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0

      이 명령은 Red Hat OpenStack Platform 업그레이드를 수행합니다.

      중요

      이 명령이 완료되면 컨트롤 플레인이 활성화됩니다. 오버클라우드에서 표준 작업을 다시 수행할 수 있습니다.

    6. 업그레이드 후 새 Pacemaker 클러스터가 시작되고 galera, rabbit, haproxy, redis와 같은 컨트롤 플레인 서비스가 실행 중인지 확인합니다.

      $ sudo pcs status
  4. 다음 컨트롤러 노드를 업그레이드합니다.

    1. 이전 클러스터가 더 이상 실행되지 않는지 확인합니다.

      $ sudo pcs status

      클러스터가 실행 중이 아닌 경우 다음과 유사한 오류가 표시됩니다.

      Error: cluster is not currently running on this node
    2. ceph_systemd 태그를 사용하여 외부 업그레이드 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-1

      이 명령은 다음 기능을 수행합니다.

      • Podman 관리를 사용하도록 Ceph Storage 컨테이너를 제어하는 systemd 장치를 변경합니다.
      • ceph_ansible_limit 변수를 사용하여 작업을 선택한 컨트롤러 노드로 제한합니다.

      이 단계는 Ceph Storage 서비스를 준비하여 업그레이드를 준비하기 위한 예비 조치입니다.

    3. 다음 컨트롤러 노드에서 system_upgrade 태그로 upgrade 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-1

      이 명령은 다음 작업을 수행합니다.

      • 운영 체제의 Leapp 업그레이드를 수행합니다.
      • Leapp 업그레이드의 일부로 재부팅을 수행합니다.
    4. 태그 없이 업그레이드 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1

      이 명령은 Red Hat OpenStack Platform 업그레이드를 수행합니다. 이 노드 외에도 --limit 옵션에 이전에 업그레이드한 부트스트랩 노드를 포함합니다.

  5. 최종 컨트롤러 노드를 업그레이드합니다.

    1. 이전 클러스터가 더 이상 실행되지 않는지 확인합니다.

      $ sudo pcs status

      클러스터가 실행 중이 아닌 경우 다음과 유사한 오류가 표시됩니다.

      Error: cluster is not currently running on this node
    2. ceph_systemd 태그를 사용하여 외부 업그레이드 명령을 실행합니다.

      $ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-2

      이 명령은 다음 기능을 수행합니다.

      • Podman 관리를 사용하도록 Ceph Storage 컨테이너를 제어하는 systemd 장치를 변경합니다.
      • ceph_ansible_limit 변수를 사용하여 작업을 선택한 컨트롤러 노드로 제한합니다.

      이 단계는 Ceph Storage 서비스를 준비하여 업그레이드를 준비하기 위한 예비 조치입니다.

    3. system_upgrade 태그로 upgrade 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-2

      이 명령은 다음 작업을 수행합니다.

      • 운영 체제의 Leapp 업그레이드를 수행합니다.
      • Leapp 업그레이드의 일부로 재부팅을 수행합니다.
    4. 태그 없이 업그레이드 명령을 실행합니다.

      $ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-controller-2

      이 명령은 Red Hat OpenStack Platform 업그레이드를 수행합니다. 모든 컨트롤러 노드를 --limit 옵션에 포함합니다.