13장. 노드 재부팅

상황에 따라 언더클라우드와 오버클라우드에서 노드를 재부팅해야 합니다. 다음 절차는 다른 노드 유형을 재부팅하는 방법을 보여줍니다. 다음 참고 사항을 확인하십시오.

  • 한 역할에 있는 모든 노드를 재부팅하는 경우 각 노드를 개별적으로 재부팅하는 것이 좋습니다. 그러면 재부팅 중에 해당 역할에 대한 서비스를 유지하는 데 도움이 됩니다.
  • OpenStack Platform 환경의 노드를 모두 재부팅하는 경우 다음 목록을 사용하여 재부팅 순서를 지정합니다.

권장되는 노드 재부팅 순서

  1. director 재부팅
  2. 컨트롤러 노드 및 기타 구성 가능한 노드 재부팅
  3. Ceph Storage 노드 재부팅
  4. Compute 노드 재부팅

13.1. 언더클라우드 노드 재부팅

다음 절차에 따라 언더클라우드 노드를 재부팅합니다.

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. 언더클라우드를 재부팅합니다.

    $ sudo reboot
  3. 노드가 부팅될 때까지 기다립니다.

13.2. 컨트롤러 및 구성 가능한 노드 재부팅

다음 절차는 구성 가능한 역할을 기준으로 컨트롤러 노드 및 독립 실행형 노드를 재부팅합니다. 이렇게 하면 Compute 노드와 Ceph Storage 노드가 제외됩니다.

절차

  1. 재부팅할 노드를 선택합니다. 로그인하여 클러스터를 중지한 후 재부팅합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster stop
  2. 노드를 재부팅합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo reboot
  3. 노드가 부팅될 때까지 기다립니다.
  4. 노드에 대해 클러스터를 재활성화합니다.

    [heat-admin@overcloud-controller-0 ~]$ sudo pcs cluster start
  5. 노드에 로그인하여 서비스를 확인합니다. 예:

    1. 노드에서 Pacemaker 서비스를 사용하는 경우 노드가 클러스터에 다시 가입했는지 확인하십시오.

      [heat-admin@overcloud-controller-0 ~]$ sudo pcs status
    2. 노드가 Systemd 서비스를 사용하는 경우 모든 서비스가 활성화되었는지 확인하십시오.

      [heat-admin@overcloud-controller-0 ~]$ sudo systemctl status

13.3. Ceph Storage(OSD) 클러스터 재부팅

다음 절차에 따라 Ceph Storage(OSD) 노드 클러스터를 재부팅합니다.

절차

  1. Ceph MON 또는 Controller 노드에 로그인하고 Ceph Storage 클러스터 재조정을 일시적으로 비활성화합니다.

    $ sudo ceph osd set noout
    $ sudo ceph osd set norebalance
  2. 재부팅할 첫 번째 Ceph Storage 노드를 선택하고 로그인합니다.
  3. 노드를 재부팅합니다.

    $ sudo reboot
  4. 노드가 부팅될 때까지 기다립니다.
  5. 노드에 로그인하고 클러스터 상태를 확인합니다.

    $ sudo ceph -s

    pgmap이 모든 pgs를 정상적 (active+clean)으로 보고하는지 확인합니다.

  6. 노드에서 로그아웃하고, 다음 노드를 재부팅한 후 상태를 확인합니다. 모든 Ceph Storage 노드를 재부팅할 때까지 이 프로세스를 반복합니다.
  7. 완료되면 Ceph MON 또는 Controller 노드에 로그인하고 클러스터 재조정을 다시 활성화합니다.

    $ sudo ceph osd unset noout
    $ sudo ceph osd unset norebalance
  8. 최종 상태 검사를 수행하여 클러스터가 HEALTH_OK를 보고하는지 확인합니다.

    $ sudo ceph status

13.4. compute 노드 재부팅

다음 절차에 따라 compute 노드를 재부팅합니다. OpenStack Platform 환경에서 인스턴스 다운타임을 최소화할 수 있도록 이 절차에는 선택한 compute 노드에서 인스턴스를 마이그레이션하는 방법에 대한 지침도 포함되어 있습니다. 다음 워크플로우에 따라 실행합니다.

  • 새 인스턴스를 프로비저닝하지 않도록 재부팅할 compute 노드를 선택한 뒤 비활성화합니다.
  • 인스턴스를 다른 compute 노드로 마이그레이션합니다.
  • 빈 compute 노드 재부팅 및 활성화합니다.

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. 모든 Compute 노드 및 해당 UUID를 나열합니다.

    $ source ~/stackrc
    (undercloud) $ openstack server list --name compute

    재부팅하려는 compute 노드의 UUID를 확인합니다.

  3. 언더클라우드에서 Compute 노드를 선택하여 비활성화합니다.

    $ source ~/overcloudrc
    (overcloud) $ openstack compute service list
    (overcloud) $ openstack compute service set [hostname] nova-compute --disable
  4. Compute 노드에 모든 인스턴스를 나열합니다.

    (overcloud) $ openstack server list --host [hostname] --all-projects
  5. 다음 명령 중 하나를 사용하여 인스턴스를 마이그레이션합니다.

    1. 인스턴스를 선택한 특정 호스트로 마이그레이션합니다.

      (overcloud) $ openstack server migrate [instance-id] --live [target-host]--wait
    2. nova-scheduler에서 대상 호스트를 자동으로 선택하도록 합니다.

      (overcloud) $ nova live-migration [instance-id]
    3. 한 번에 모든 인스턴스를 실시간 마이그레이션합니다.

      $ nova host-evacuate-live [hostname]
      참고

      nova 명령으로 인해 몇 가지 사용 중단 경고가 표시될 수 있으며, 이러한 경고는 무시해도 됩니다.

  6. 마이그레이션이 완료될 때까지 기다립니다.
  7. 마이그레이션을 성공적으로 완료했음을 확인합니다.

    (overcloud) $ openstack server list --host [hostname] --all-projects
  8. 선택한 Compute 노드에 남은 항목이 없을 때까지 인스턴스를 계속 마이그레이션합니다.
  9. Compute 노드에 로그인하고 재부팅합니다.

    [heat-admin@overcloud-compute-0 ~]$ sudo reboot
  10. 노드가 부팅될 때까지 기다립니다.
  11. Compute 노드를 다시 활성화합니다.

    $ source ~/overcloudrc
    (overcloud) $ openstack compute service set [hostname] nova-compute --enable
  12. Compute 노드가 활성화되었는지 확인합니다.

    (overcloud) $ openstack compute service list