17.3. 컨트롤러 교체를 위한 클러스터 준비

기존 노드를 교체하기 전에 Pacemaker가 더 이상 실행되지 않는지 확인한 후 Pacemaker 클러스터에서 해당 노드를 삭제해야 합니다.

절차

  1. 컨트롤러 노드의 IP 주소 목록을 가져옵니다.

    (undercloud) $ openstack server list -c Name -c Networks
    +------------------------+-----------------------+
    | Name                   | Networks              |
    +------------------------+-----------------------+
    | 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를 중지합니다. 이 예제에서는 overcloud-controller-1의 Pacemaker를 중지합니다.

    (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs status | grep -w Online | grep -w overcloud-controller-1"
    (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs cluster stop overcloud-controller-1"
    참고

    기존 노드를 실제로 사용할 수 없거나 중지된 경우에는 해당 노드에서 Pacemaker가 이미 중지되었으므로 위 작업을 수행하지 않아도 됩니다.

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

    (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs cluster node remove overcloud-controller-1"

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

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

    (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs host deauth overcloud-controller-1"

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

  5. 오버클라우드 데이터베이스는 교체 절차 중 계속 실행되고 있어야 합니다. 다음 절차 중에 Pacemaker에서 Galera를 중지하지 않도록 하려면 실행 중인 컨트롤러 노드를 선택하고, 언더클라우드에서 컨트롤러 노드의 IP 주소를 사용하여 다음 명령을 실행합니다.

    (undercloud) $ ssh heat-admin@192.168.0.47 "sudo pcs resource unmanage galera-bundle"