16.3. 컴퓨팅 노드 제거 또는 교체


경우에 따라 오버클라우드에서 컴퓨팅 노드를 삭제해야 합니다. 예를 들어 문제가 있는 컴퓨팅 노드를 교체하거나 컴퓨팅 노드 그룹을 제거하여 클라우드를 축소해야 할 수 있습니다. 컴퓨팅 노드를 삭제하면 기본적으로 노드의 인덱스가 블록 목록에 추가되어 확장 작업 중에 인덱스를 재사용하지 않습니다.

오버클라우드 배포에서 노드를 삭제한 후 삭제된 컴퓨팅 노드를 교체할 수 있습니다.

사전 요구 사항

  • 제거하려는 노드에서 Compute 서비스가 비활성화되어 노드가 새 인스턴스가 예약되지 않습니다. Compute 서비스가 비활성화되어 있는지 확인하려면 다음 명령을 사용하여 컴퓨팅 서비스를 나열합니다.

    (overcloud)$ openstack compute service list

    Compute 서비스가 비활성화되지 않으면 Compture 서비스를 비활성화합니다.

    (overcloud)$ openstack compute service set <hostname> nova-compute --disable
  • & lt;hostname& gt;을 비활성화할 컴퓨팅 노드의 호스트 이름으로 바꿉니다.

    작은 정보

    --disable-reason 옵션을 사용하여 서비스가 비활성화되는 이유에 대한 간단한 설명을 추가합니다. 이 기능은 Compute 서비스를 재배포하려는 경우에 유용합니다.

  • 컴퓨팅 노드의 워크로드가 다른 컴퓨팅 노드로 마이그레이션되었습니다. 자세한 내용은 Migrating virtual machine instances between Compute nodes를 참조하십시오.
  • Instance HA가 활성화된 경우 다음 옵션 중 하나를 선택합니다.

    • 컴퓨팅 노드에 액세스할 수 있으면 root 사용자로 컴퓨팅 노드에 로그인하고 shutdown -h now 명령을 사용하여 완전히 종료합니다.
    • 컴퓨팅 노드에 액세스할 수 없는 경우 컨트롤러 노드에 root 사용자로 로그인하여 컴퓨팅 노드의 STONITH 장치를 비활성화한 다음 베어 메탈 노드를 종료합니다.

      $ sudo pcs stonith disable <compute_UUID>
    • stackrc 언더클라우드 인증 정보 파일을 소싱하고 baremetal 노드의 전원을 끕니다.

      $ source ~/stackrc
      (undercloud)$ openstack baremetal node power off <compute_UUID>
  • & lt;compute_UUID& gt;를 제거할 컴퓨팅 노드의 UUID로 바꿉니다.

절차

  1. stackrc 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
  2. 오버클라우드 스택의 이름을 확인합니다.

    (undercloud)$ openstack stack list
  3. 삭제하려는 컴퓨팅 노드의 UUID 또는 호스트 이름을 확인합니다.

    (undercloud)$ openstack server list
  4. 선택 사항: --update-plan-only 옵션과 함께 overcloud deploy 명령을 실행하여 템플릿에서 가장 최근 구성으로 플랜을 업데이트합니다. 이렇게 하면 컴퓨팅 노드를 삭제하기 전에 오버클라우드 구성이 최신 상태로 유지됩니다.

    (undercloud)$ openstack overcloud deploy --stack <overcloud> --update-plan-only \
      --templates  \
      -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
      -e /home/stack/templates/network-environment.yaml \
      -e /home/stack/templates/storage-environment.yaml \
      -e /home/stack/templates/rhel-registration/environment-rhel-registration.yaml \
      -e [...]

    & lt;overcloud >를 오버클라우드 스택 이름으로 교체합니다.

    참고

    오버클라우드 노드 블록 목록을 업데이트한 경우 오버클라우드 계획을 업데이트해야 합니다. 오버클라우드 노드를 블록 목록에 추가하는 방법에 대한 자세한 내용은 Blocklisting nodes 를 참조하십시오.

  5. 스택에서 컴퓨팅 노드를 삭제합니다.

    (undercloud)$ openstack overcloud node delete --stack <overcloud> \
     <node_1> ... [node_n]
    • & lt;overcloud >를 오버클라우드 스택 이름으로 교체합니다.
    • & lt;node_1 >을 바꾸고 선택적으로 [node_n] 까지 모든 노드를 삭제하려는 컴퓨팅 노드의 Compute 서비스 호스트 이름 또는 UUID로 바꿉니다. UUID와 호스트 이름을 혼합하여 사용하지 마십시오. UUID만 사용하거나 호스트 이름만 사용하십시오.

      참고

      노드의 전원이 이미 꺼진 경우 이 명령은 경고 메시지를 반환합니다.

      Ansible failed, check log at /var/lib/mistral/overcloud/ansible.log
      WARNING: Scale-down configuration error. Manual cleanup of some actions may be necessary. Continuing with node removal.

      전원이 꺼진 노드로 인해 발생하는 문제를 해결하기 위해 노드는 수동으로 연결할 수 없는 컴퓨팅 노드를 제거할 때 1~8단계를 완료한 다음 이 절차의 다음 단계를 진행합니다.

  6. 컴퓨팅 노드가 삭제될 때까지 기다립니다.
  7. 삭제한 각 노드의 네트워크 에이전트를 삭제합니다.

    (undercloud)$ source ~/overcloudrc
    (overcloud)$ for AGENT in $(openstack network agent list \
      --host <scaled_down_node> -c ID -f value) ; \
      do openstack network agent delete $AGENT ; done

    & lt;scaled down node >를 삭제한 노드의 호스트 이름으로 바꿉니다.

  8. 명령 출력을 확인합니다. RHOSP 16.1.7 이전 버전의 버그로 인해 에이전트를 삭제할 수 없다는 메시지가 표시될 수 있습니다.

    Bad agent request: OVN agents cannot be deleted.

    10.0.0.1 에이전트 요청 메시지가 표시되지 않으면 다음 단계를 진행합니다.

    VMDK 에이전트 요청 메시지가 표시되면 네트워크 에이전트 삭제: 버그 해결 방법으로 이동합니다. 해결 방법 절차를 완료한 후 여기로 돌아가서 다음 단계로 진행합니다.

  9. 노드 삭제가 완료되면 오버클라우드 스택의 상태를 확인합니다.

    (overcloud)$ source ~/stackrc
    (undercloud)$ openstack stack list
    Expand
    표 16.2. 결과
    상태설명

    UPDATE_COMPLETE

    컴퓨팅 노드 삭제가 성공적으로 완료되었습니다. 다음 단계를 진행합니다.

    UPDATE_FAILED

    컴퓨팅 노드 삭제에 실패했습니다.

    컴퓨팅 노드 삭제에 실패하는 일반적인 이유는 삭제하려는 노드에서 연결할 수 없는 IPMI 인터페이스입니다.

    삭제에 실패하면 프로세스를 수동으로 완료해야 합니다. 연결할 수 없는 컴퓨팅 노드를 제거하여 컴퓨팅 노드 제거를 완료합니다.

  10. 인스턴스 HA가 활성화된 경우 다음 작업을 수행합니다.

    1. 컴퓨팅 노드의 Pacemaker 리소스를 정리합니다.

      $ sudo pcs resource delete <compute_UUID>
      $ sudo cibadmin -o nodes --delete --xml-text '<node id="<compute_UUID>"/>'
      $ sudo cibadmin -o fencing-topology --delete --xml-text '<fencing-level target="<compute_UUID>"/>'
      $ sudo cibadmin -o status --delete --xml-text '<node_state id="<compute_UUID>"/>'
      $ sudo cibadmin -o status --delete-all --xml-text '<node id="<compute_UUID>"/>' --force
    2. 노드의 STONITH 장치를 삭제합니다.

      $ sudo pcs stonith delete <compute_UUID>
  11. 오버클라우드에서 삭제된 Compute 노드를 교체하지 않는 경우 노드 수가 포함된 환경 파일의 ComputeCount 매개변수를 줄입니다. 일반적으로 이 파일의 이름은 node-info.yaml로 지정됩니다. 예를 들어 한 노드를 삭제한 경우 노드 수를 4개의 노드에서 3개의 노드로 줄입니다.

    parameter_defaults:
      ...
      ComputeCount: 3

    노드 개수를 줄이면 openstack overcloud deploy를 실행할 때 director에서 새 노드를 프로비저닝하지 않습니다.

    오버클라우드 배포에서 삭제된 컴퓨팅 노드를 교체하는 경우 삭제된 컴퓨팅 노드 배치를 참조하십시오.

16.3.1. 연결할 수 없는 컴퓨팅 노드 제거 완료

연결할 수 없는 노드로 인해 openstack overcloud node delete 명령이 실패한 경우 오버클라우드에서 컴퓨팅 노드 제거를 수동으로 완료해야 합니다.

사전 요구 사항

절차

  1. 오버클라우드 스택의 UUID를 확인합니다.

    (undercloud)$ openstack stack list
  2. 수동으로 삭제하려는 노드의 UUID를 확인합니다.

    (undercloud)$ openstack baremetal node list
  3. 삭제할 노드를 유지보수 모드로 설정합니다.

    (undercloud)$ openstack baremetal node maintenance set <UUID>
    • 유지보수 모드에 배치할 노드의 UUID로 <UUID>를 바꿉니다.
  4. Compute 서비스가 베어 메탈 서비스와 상태를 동기화할 때까지 기다립니다. 이 작업은 최대 4분이 걸릴 수 있습니다.
  5. source 명령으로 오버클라우드 설정을 로드합니다.

    (undercloud)$ source ~/overcloudrc
  6. 노드에서 새 인스턴스가 예약되지 않도록 오버클라우드의 삭제된 노드에서 Compute 서비스가 비활성화되었는지 확인합니다.

    (overcloud)$ openstack compute service list

    Compute 서비스를 비활성화하지 않으면 비활성화합니다.

    (overcloud)$ openstack compute service set <hostname> nova-compute --disable
    • & lt;hostname& gt;을 컴퓨팅 노드의 호스트 이름으로 바꿉니다.

      작은 정보

      --disable-reason 옵션을 사용하여 서비스가 비활성화되는 이유에 대한 간단한 설명을 추가합니다. 이 기능은 Compute 서비스를 재배포하려는 경우에 유용합니다.

  7. 삭제된 컴퓨팅 노드에서 Compute 서비스를 삭제합니다.

    (overcloud)$ openstack compute service delete <service_id>
    • & lt;service_id >를 삭제된 노드에서 실행 중인 Compute 서비스의 ID로 바꿉니다.
  8. 배치 서비스에서 리소스 공급자로 삭제된 Compute 서비스를 제거합니다.

    (overcloud)$ openstack resource provider list
    (overcloud)$ openstack resource provider delete <UUID>
  9. source 명령으로 언더클라우드 설정을 로드합니다.

    (overcloud)$ source ~/stackrc
  10. 스택에서 컴퓨팅 노드를 삭제합니다.

    (undercloud)$ openstack overcloud node delete --stack <overcloud> <node>
    • <overcloud>를 오버클라우드 스택의 이름 또는 UUID로 바꿉니다.
    • & lt;node >를 삭제하려는 컴퓨팅 노드의 컴퓨팅 서비스 호스트 이름 또는 UUID로 바꿉니다.

      참고

      노드의 전원이 이미 꺼진 경우 이 명령은 경고 메시지를 반환합니다.

      Ansible failed, check log at `/var/lib/mistral/overcloud/ansible.log`
      WARNING: Scale-down configuration error. Manual cleanup of some actions may be necessary. Continuing with node removal.

      이 메시지는 무시해도 됩니다.

  11. 오버클라우드 노드가 삭제될 때까지 기다립니다.
  12. source 명령으로 오버클라우드 설정을 로드합니다.

    (undercloud)$ source ~/overcloudrc
  13. 삭제한 노드의 네트워크 에이전트를 삭제합니다.

    (overcloud)$ for AGENT in $(openstack network agent list \
      --host <scaled_down_node> -c ID -f value) ; \
      do openstack network agent delete $AGENT ; done
    • & lt;scaled_down_node >를 삭제한 노드 이름으로 교체합니다.
  14. 명령 출력을 확인합니다. RHOSP 16.1.7 이전 버전의 버그로 인해 에이전트를 삭제할 수 없다는 메시지가 표시될 수 있습니다.

    Bad agent request: OVN agents cannot be deleted.

    이 메시지가 표시되지 않으면 다음 단계로 진행합니다.

    이 메시지가 표시되면 네트워크 에이전트 삭제의 절차를 완료합니다: 버그 해결 방법. 해결 방법 절차를 완료한 후 여기로 돌아가서 다음 단계로 진행합니다.

  15. source 명령으로 언더클라우드 설정을 로드합니다.

    (overcloud)$ source ~/stackrc
  16. 노드 삭제가 완료되면 오버클라우드 스택의 상태를 확인합니다.

    (undercloud)$ openstack stack list
    Expand
    표 16.3. 결과
    상태설명

    UPDATE_COMPLETE

    컴퓨팅 노드 삭제가 성공적으로 완료되었습니다. 다음 단계를 진행합니다.

    UPDATE_FAILED

    컴퓨팅 노드 삭제에 실패했습니다.

    노드가 유지보수 모드에 있는 동안 컴퓨팅 노드 삭제가 실패하면 하드웨어에 문제가 있을 수 있습니다. 하드웨어를 확인하십시오.

  17. 인스턴스 HA가 활성화된 경우 다음 작업을 수행합니다.

    1. 노드의 Pacemaker 리소스를 정리합니다.

      $ sudo pcs resource delete <scaled_down_node>
      $ sudo cibadmin -o nodes --delete --xml-text '<node id="<scaled_down_node>"/>'
      $ sudo cibadmin -o fencing-topology --delete --xml-text '<fencing-level target="<scaled_down_node>"/>'
      $ sudo cibadmin -o status --delete --xml-text '<node_state id="<scaled_down_node>"/>'
      $ sudo cibadmin -o status --delete-all --xml-text '<node id="<scaled_down_node>"/>' --force
    2. 노드의 STONITH 장치를 삭제합니다.

      $ sudo pcs stonith delete <device-name>
  18. 오버클라우드에서 삭제된 Compute 노드를 교체하지 않는 경우 노드 수가 포함된 환경 파일의 ComputeCount 매개변수를 줄입니다. 일반적으로 이 파일의 이름은 node-info.yaml로 지정됩니다. 예를 들어 한 노드를 삭제한 경우 노드 수를 4개의 노드에서 3개의 노드로 줄입니다.

    parameter_defaults:
      ...
      ComputeCount: 3
      ...

    노드 개수를 줄이면 openstack overcloud deploy를 실행할 때 director에서 새 노드를 프로비저닝하지 않습니다.

    오버클라우드 배포에서 삭제된 컴퓨팅 노드를 교체하는 경우 삭제된 컴퓨팅 노드 배치를 참조하십시오.

16.3.2. 네트워크 에이전트 삭제: 버그 해결

컴퓨팅 노드를 삭제한 후 연결된 네트워크 에이전트를 삭제해야 합니다. 배포 시 RHOSP 16.1.7 또는 이전 버전을 사용하는 경우 버그로 인해 네트워크 에이전트를 예상대로 삭제할 수 없습니다. BZ1788336-ovn-controllers가 에이전트로 나열되지만 제거할 수는 없습니다.

이 버그로 인해 지시에 따라 에이전트를 삭제하려고 하면 Networking 서비스에 다음과 같은 오류 메시지가 표시됩니다.

Bad agent request: OVN agents cannot be deleted.

해당 오류 메시지가 표시되면 다음 단계를 수행하여 에이전트를 삭제합니다.

사전 요구 사항

  • 다음 오류 메시지에 표시된 대로 컴퓨팅 노드를 제거한 후 네트워크 에이전트를 삭제하려고 합니다.

    Bad agent request: OVN agents cannot be deleted.

절차

  1. 오버클라우드 노드를 나열합니다.

    (undercloud)$ openstack server list
  2. root 권한이 있는 사용자로 컨트롤러 노드에 로그인합니다.

    $ ssh heat-admin@controller-0.ctlplane
  3. 아직 수행하지 않은 경우 ovn_controller 컨테이너의 ovn-sbctl 명령에 대한 액세스를 간소화하도록 명령 별칭을 설정합니다. 자세한 내용은 OVN 문제 해결 명령의 별칭 생성을 참조하십시오.
  4. ovn-controller.log 파일에서 IP 주소를 가져옵니다.

    $ sudo less /var/log/containers/openvswitch/ovn-controller.log

    ovn-controller.log 가 비어 있는 경우 ovn-controller.log.1.

  5. IP 주소가 올바른지 확인합니다.

    $ ovn-sbctl list encap |grep -a3 <IP_address_from_ovn-controller.log>

    <IP_address_from_ovn-controller.log>를 컨트롤러 로그 파일의 IP 주소로 바꿉니다.

  6. IP 주소가 포함된 섀시를 삭제합니다.

    $ ovn-sbctl chassis-del <chassis-name>

    <chassis-id>를 이전 단계에서 ovn-sbctl list encap 명령의 출력에서 섀시_name 값으로 바꿉니다.

  7. Chassis_Private 테이블을 확인하여 섀시가 제거되었는지 확인합니다.

    $ ovn-sbctl find Chassis_private chassis="[]"
  8. 섀시가 나열된 경우 다음 명령을 사용하여 각각 제거합니다.

    $ ovn-sbctl destroy Chassis_Private <listed_name>

    & lt;listed_name >을 삭제할 섀시 이름으로 바꿉니다.

  9. 컴퓨팅 노드 제거를 완료하려면 프로시저로 돌아갑니다.

16.3.3. 삭제된 Compute 노드 교체

오버클라우드 배포에서 삭제된 컴퓨팅 노드를 교체하려면 새 컴퓨팅 노드를 등록 및 검사하거나 삭제된 컴퓨팅 노드를 다시 추가할 수 있습니다. 또한 노드를 프로비저닝하도록 오버클라우드를 설정해야 합니다.

절차

  1. 선택 사항: 삭제된 컴퓨팅 노드의 인덱스를 재사용하려면 컴퓨팅 노드가 제거될 때 거부 목록을 대체하도록 역할의 removalPoliciesMode 및 removalPolicies 매개변수를 구성합니다.

    parameter_defaults:
      <RoleName>RemovalPoliciesMode: update
      <RoleName>RemovalPolicies: [{'resource_list': []}]
  2. 삭제된 컴퓨팅 노드를 교체합니다.

    • 새 컴퓨팅 노드를 추가하려면 새 노드를 등록, 검사, 태그를 지정하여 프로비저닝을 준비합니다. 자세한 내용은 기본 오버클라우드 설정을 참조하십시오.
    • 수동으로 제거한 컴퓨팅 노드를 다시 추가하려면 유지보수 모드에서 노드를 삭제합니다.

      $ openstack baremetal node maintenance unset <node_uuid>
  3. 기존 오버클라우드를 배포하는 데 사용한 openstack overcloud deploy 명령을 재실행합니다.
  4. 배포 프로세스가 완료될 때까지 기다립니다.
  5. director가 새 컴퓨팅 노드를 성공적으로 등록했는지 확인합니다.

    $ openstack baremetal node list
  6. 역할 업데이트를 위해 Removed PoliciesMode 를 설정하기 위해 1단계를 수행한 경우, 컴퓨팅 노드가 제거될 때 현재 거부 목록에 해당 역할에 대한 Removed PoliciesMode 를 재설정하고, 를 추가하여 Compute 노드 인덱스를 현재 거부 목록에 추가해야 합니다.

    parameter_defaults:
      <RoleName>RemovalPoliciesMode: append
  7. 기존 오버클라우드를 배포하는 데 사용한 openstack overcloud deploy 명령을 재실행합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동