13.3. Compute 노드 삭제

오버클라우드에서 Compute 노드를 삭제해야 하는 경우가 있을 수 있습니다. 예를 들면 문제가 있는 Compute 노드를 교체해야 할 수 있습니다.

중요

오버클라우드에서 Compute 노드를 삭제하기 전에 노드에서 다른 Compute 노드로 워크로드를 마이그레이션합니다. 자세한 내용은 11장. Compute 노드 간에 가상 머신 마이그레이션을 참조하십시오.

절차

  1. source 명령으로 오버클라우드 설정을 로드합니다.

    $ source ~/stack/overcloudrc
  2. 노드에서 새 인스턴스가 예약되지 않도록 오버클라우드에서 발신 노드의 Compute 서비스를 비활성화합니다.

    (overcloud) $ openstack compute service list
    (overcloud) $ openstack compute service set [hostname] nova-compute --disable
    작은 정보

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

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

    (overcloud) $ source ~/stack/stackrc
  4. 오버클라우드 노드를 삭제하는 경우 로컬 템플릿 파일을 사용하여 director에서 오버클라우드 스택을 업데이트해야 합니다. 먼저 오버클라우드 스택의 UUID를 확인합니다.

    (undercloud) $ openstack stack list
  5. 삭제할 노드의 UUID를 확인합니다.

    (undercloud) $ openstack server list
  6. 다음 명령을 실행하여 스택에서 노드를 삭제하고 그에 따라계획을 업데이트합니다.

    (undercloud) $ openstack overcloud node delete --stack [STACK_UUID] --templates -e [ENVIRONMENT_FILE] [NODE1_UUID] [NODE2_UUID] [NODE3_UUID]
    중요

    오버클라우드를 생성할 때 추가 환경 파일을 전달한 경우 -e 또는 --environment-file 옵션을 사용하여 오버클라우드를 불필요하게 수동으로 변경하지 않도록 환경 파일을 다시 지정합니다.

  7. 작업을 계속 진행하기 전 openstack overcloud node delete 명령 실행이 완전히 종료되었는지 확인합니다. openstack stack list 명령을 사용하여 overcloud 스택이 UPDATE_COMPLETE 상태가 되었는지 확인합니다.

    중요

    동일한 호스트 이름을 사용하여 Compute 서비스를 재배포하려는 경우 재배포된 노드에 기존 서비스 레코드를 사용해야 합니다. 이 경우에는 다음 절차의 나머지 단계를 생략하고 동일한 호스트 이름을 사용하여 Compute 서비스 재배포에 설명된 지침을 따르십시오.

  8. 노드의 Compute 서비스를 삭제합니다.

    (undercloud) $ source ~/stack/overcloudrc
    (overcloud) $ openstack compute service list
    (overcloud) $ openstack compute service delete [service-id]
  9. 노드의 Open vSwitch 에이전트를 삭제합니다.

    (overcloud) $ openstack network agent list
    (overcloud) $ openstack network agent delete [openvswitch-agent-id]
  10. 배치 서비스에서 리소스 공급자로 삭제된 Compute 서비스를 제거합니다.

    (overcloud) $ openstack resource provider list
    (overcloud) $ openstack resource provider delete [uuid]
    참고

    배치 서비스를 사용하려면 python2-osc-placement 패키지를 설치합니다.

이제 오버클라우드에서 노드를 삭제하여 다른 용도로 노드를 다시 프로비저닝할 수 있습니다.

동일한 호스트 이름을 사용하여 Compute 서비스 재배포

비활성화된 Compute 서비스를 재배포하려면 동일한 호스트 이름을 가진 노드를 다시 실행한 후에 Compute 서비스를 다시 활성화합니다. 예를 들면 다음과 같습니다.

(overcloud) $ openstack compute service set compute-1.localdomain nova-compute --disable --disable-reason "gets re-provisioned"
(overcloud) $ openstack compute service list --long
...
| 80 | nova-compute | compute-1.localdomain | nova  | disabled | up | 2018-07-13T14:35:04.000000 | gets re-provisioned |
...
(overcloud) $ openstack compute service set compute-1.localdomain nova-compute --enable