11.3. 컨트롤러 노드 교체를 위한 클러스터 준비


노드를 교체하기 전에 Pacemaker가 노드에서 실행되지 않는지 확인한 다음 Pacemaker 클러스터에서 해당 노드를 제거합니다.

프로세스

  1. 컨트롤러 노드의 IP 주소 목록을 보려면 다음 명령을 실행합니다.

    (undercloud)$ metalsmith -c Hostname -c "IP Addresses" list
    +------------------------+-----------------------+
    | Hostname               | IP Addresses          |
    +------------------------+-----------------------+
    | overcloud-compute-0    | ctlplane=192.168.0.44 |
    | overcloud-controller-0 | ctlplane=192.168.0.47 |
    | overcloud-controller-1 | ctlplane=192.168.0.45 |
    | overcloud-controller-2 | ctlplane=192.168.0.46 |
    +------------------------+-----------------------+
  2. 노드에 로그인하고 pacemaker 상태를 확인합니다. pacemaker가 실행 중인 경우 pcs cluster 명령을 사용하여 pacemaker를 중지합니다. 이 예제에서는 overcloud-controller-0 에서 pacemaker를 중지합니다.

    (undercloud) $ ssh tripleo-admin@192.168.0.45 "sudo pcs status | grep -w Online | grep -w overcloud-controller-0"
    (undercloud) $ ssh tripleo-admin@192.168.0.45 "sudo pcs cluster stop overcloud-controller-0"
    참고

    해당 노드에서 Pacemaker가 이미 중지되었으므로 노드가 물리적으로 사용 불가능하거나 중지된 경우 이전 작업을 수행할 필요가 없습니다.

  3. 노드에서 Pacemaker를 중지한 후 pacemaker 클러스터에서 노드를 삭제합니다. 다음 예제에서는 overcloud-controller-1 에 로그인하여 overcloud-controller-0:을 삭제합니다.

    (undercloud) $ ssh tripleo-admin@192.168.0.45 "sudo pcs cluster node remove overcloud-controller-0"

    하드웨어 장애 등으로 인해 교체할 노드에 연결할 수 없는 경우, --skip-offline--force 추가 옵션으로 pcs 명령을 실행하여 클러스터에서 노드를 강제로 삭제합니다.

    (undercloud) $ ssh tripleo-admin@192.168.0.45 "sudo pcs cluster node remove overcloud-controller-0 --skip-offline --force"
  4. pacemaker 클러스터에서 노드를 삭제한 후 pacemaker의 알려진 호스트 목록에서 노드를 삭제합니다.

    (undercloud) $ ssh tripleo-admin@192.168.0.45 "sudo pcs host deauth overcloud-controller-0"

    노드에 연결할 수 있는지 여부에 관계없이 이 명령을 실행할 수 있습니다.

  5. 교체 후 새 컨트롤러 노드에서 올바른 STONITH 펜싱 장치를 사용하는지 확인하려면 다음 명령을 입력하여 노드에서 장치를 삭제합니다.

    (undercloud) $ ssh tripleo-admin@192.168.0.45 "sudo pcs stonith delete <stonith_resource_name>"
    • & lt;stonith_resource_name >을 노드에 해당하는 STONITH 리소스의 이름으로 바꿉니다. 리소스 이름은 < resource_agent>-<host_mac> 형식을 사용합니다. fencing.yaml 파일의 FencingConfig 섹션에서 리소스 에이전트 및 호스트 MAC 주소를 찾을 수 있습니다.
  6. 오버클라우드 데이터베이스는 교체 절차 중 계속 실행되고 있어야 합니다. 다음 절차 중에 Pacemaker에서 Galera를 중지하지 않도록 하려면 실행 중인 컨트롤러 노드를 선택하고, 언더클라우드에서 컨트롤러 노드의 IP 주소를 사용하여 다음 명령을 실행합니다.

    (undercloud) $ ssh tripleo-admin@192.168.0.45 "sudo pcs resource unmanage galera-bundle"
  7. 클러스터에서 교체된 컨트롤러 노드의 OVN northbound 데이터베이스 서버를 삭제합니다.

    1. 교체할 OVN northbound 데이터베이스 서버의 서버 ID를 가져옵니다.

      $ ssh tripleo-admin@<controller_ip> sudo podman exec ovn_cluster_north_db_server ovs-appctl -t /var/run/ovn/ovnnb_db.ctl cluster/status OVN_Northbound 2>/dev/null|grep -A4 Servers:

      & lt;controller_ip& gt;를 활성 컨트롤러 노드의 IP 주소로 바꿉니다.

      출력은 다음과 유사합니다.

      Servers:
      96da (96da at tcp:172.17.1.55:6643) (self) next_index=26063 match_index=26063 466b (466b at tcp:172.17.1.51:6643) next_index=26064 match_index=26063 last msg 2936 ms ago
      ba77 (ba77 at tcp:172.17.1.52:6643) next_index=26064 match_index=26063 last msg 2936 ms ago

      이 예에서 172.17.1.55 는 교체 중인 컨트롤러 노드의 내부 IP 주소이므로 northbound 데이터베이스 서버 ID는 96da 입니다.

    2. 이전 단계에서 얻은 서버 ID를 사용하여 다음 명령을 실행하여 OVN northbound 데이터베이스 서버를 제거합니다.

      $ ssh tripleo-admin@172.17.1.52 sudo podman exec ovn_cluster_north_db_server ovs-appctl -t /var/run/ovn/ovnnb_db.ctl cluster/kick OVN_Northbound 96da

      이 예에서는 172.17.1.52 를 활성 컨트롤러 노드의 IP 주소로 바꾸고 96da 를 OVN northbound 데이터베이스 서버의 서버 ID로 바꿉니다.

  8. 클러스터에서 교체된 컨트롤러 노드의 OVN southbound 데이터베이스 서버를 삭제합니다.

    1. 교체할 OVN southbound 데이터베이스 서버의 서버 ID를 가져옵니다.

      $ ssh tripleo-admin@<controller_ip> sudo podman exec ovn_cluster_south_db_server ovs-appctl -t /var/run/ovn/ovnsb_db.ctl cluster/status OVN_Southbound 2>/dev/null|grep -A4 Servers:

      & lt;controller_ip& gt;를 활성 컨트롤러 노드의 IP 주소로 바꿉니다.

      출력은 다음과 유사합니다.

      Servers:
      e544 (e544 at tcp:172.17.1.55:6644) last msg 42802690 ms ago
      17ca (17ca at tcp:172.17.1.51:6644) last msg 5281 ms ago
      6e52 (6e52 at tcp:172.17.1.52:6644) (self)

      이 예에서 172.17.1.55 는 교체 중인 컨트롤러 노드의 내부 IP 주소이므로 southbound 데이터베이스 서버 ID는 e544 입니다.

    2. 이전 단계에서 가져온 서버 ID를 사용하여 다음 명령을 실행하여 OVN southbound 데이터베이스 서버를 제거합니다.

      $ ssh tripleo-admin@172.17.1.52 sudo podman exec ovn_cluster_south_db_server ovs-appctl -t /var/run/ovn/ovnsb_db.ctl cluster/kick OVN_Southbound e544

      이 예에서는 172.17.1.52 를 활성 컨트롤러 노드의 IP 주소로 바꾸고 e544 를 OVN southbound 데이터베이스 서버의 서버 ID로 바꿉니다.

  9. 다음 정리 명령을 실행하여 클러스터가 다시 참여하지 않도록 합니다.

    & lt;replaced_controller_ip >를 교체하려는 컨트롤러 노드의 IP 주소로 바꿉니다.

    $ ssh tripleo-admin@<replaced_controller_ip> sudo systemctl disable --now tripleo_ovn_cluster_south_db_server.service tripleo_ovn_cluster_north_db_server.service
    
    $ ssh tripleo-admin@<replaced_controller_ip> sudo rm -rfv /var/lib/openvswitch/ovn/.ovn* /var/lib/openvswitch/ovn/ovn*.db
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.