Red Hat Training

A Red Hat training course is available for RHEL 8

17.5. 클러스터에서 리소스 이동

Pacemaker는 한 노드에서 다른 노드로 이동하도록 리소스를 구성하고 필요한 경우 수동으로 리소스를 이동하는 다양한 메커니즘을 제공합니다.

클러스터 리소스를 수동으로 이동하는 것과 같이 pcs resource move 및 pcs resource relocate 명령을 사용하여 클러스터의 리소스를 수동으로 이동할 수 있습니다. 이러한 명령 외에도 클러스터 리소스 비활성화, 활성화 및 금지에 설명된 대로 리소스를 활성화, 비활성화, 금지하여 클러스터 리소스의 동작을 제어할 수도 있습니다.

정의된 수의 오류 후 새 노드로 이동하도록 리소스를 구성할 수 있으며, 외부 연결이 끊어질 때 리소스를 이동하도록 클러스터를 구성할 수 있습니다.

17.5.1. 오류로 인한 리소스 이동

리소스를 생성할 때 해당 리소스에 대한 migration-threshold 옵션을 설정하여 정의된 실패 횟수 후에 새 노드로 이동하도록 리소스를 구성할 수 있습니다. 임계값에 도달하면 이 노드는 더 이상 다음까지 실패한 리소스를 실행할 수 없습니다.

  • 리소스의 failure-timeout 값에 도달합니다.
  • 관리자는 pcs resource cleanup 명령을 사용하여 리소스 실패 횟수를 수동으로 재설정합니다.

migration-threshold 값은 기본적으로 INFINITY 로 설정됩니다. INFINITY 는 내부적으로 매우 크지만 제한된 숫자로 정의됩니다. 값이 0이면 migration-threshold 기능이 비활성화됩니다.

참고

리소스의 migration-threshold 설정은 리소스가 상태 손실 없이 다른 위치로 이동하는 마이그레이션용 리소스를 구성하는 것과 같지 않습니다.

다음 예제에서는 dummy_resource 라는 리소스에 10의 마이그레이션 임계값을 추가하여 10번 실패 후 리소스가 새 노드로 이동함을 나타냅니다.

# pcs resource meta dummy_resource migration-threshold=10

다음 명령을 사용하여 전체 클러스터의 기본값에 마이그레이션 임계값을 추가할 수 있습니다.

# pcs resource defaults update migration-threshold=10

리소스의 현재 실패 상태 및 제한을 확인하려면 pcs resource failcount show 명령을 사용합니다.

마이그레이션 임계값 개념에는 두 가지 예외가 있습니다. 즉, 리소스를 시작하거나 중지하지 못하면 발생합니다. 클러스터 속성 start-failure-is-fataltrue (기본값)로 설정된 경우 시작 실패로 인해 failcountINFINITY 로 설정되고 항상 리소스가 즉시 이동합니다.

중지 오류는 약간 다르며 중요합니다. 리소스가 중지되지 않고 STONITH가 활성화된 경우 클러스터는 노드를 펜싱하여 다른 위치에서 리소스를 시작할 수 있습니다. STONITH가 활성화되지 않은 경우 클러스터는 계속할 방법이 없으며 다른 위치에서 리소스를 시작하지 않지만 실패 시간 초과 후 다시 중지하려고 합니다.

17.5.2. 연결 변경으로 리소스 이동

외부 연결이 손실될 때 리소스를 이동하도록 클러스터를 설정하는 작업은 2단계 프로세스입니다.

  1. ping 리소스를 클러스터에 추가합니다. ping 리소스는 동일한 이름의 시스템 유틸리티를 사용하여 시스템 목록(DNS 호스트 이름 또는 IPv4/IPv6 주소로 지정됨)에 연결할 수 있는지를 테스트하고 결과를 사용하여 pingd 라는 노드 특성을 유지 관리합니다.
  2. 연결이 끊어지면 리소스를 다른 노드로 이동할 리소스에 대한 위치 제한 조건을 구성합니다.

다음 테이블에서는 ping 리소스에 대해 설정할 수 있는 속성을 설명합니다.

표 17.1. ping 리소스의 속성

필드설명

바베이도니아

추가 변경이 발생할 때까지 대기(감사) 시간입니다. 이렇게 하면 클러스터 노드가 약간 다른 시간에 연결이 손실되는 경우 리소스가 클러스터 전체에서 발생하는 것을 방지할 수 있습니다.

multiplier

연결된 ping 노드 수가 이 값을 곱하여 점수를 얻습니다. ping 노드가 여러 개 구성된 경우 유용합니다.

host_list

현재 연결 상태를 확인하기 위해 연결할 머신입니다. 허용되는 값에는 확인 가능한 DNS 호스트 이름, IPv4 및 IPv6 주소가 포함됩니다. 호스트 목록의 항목은 공백으로 구분되어 있습니다.

다음 예제 명령은 gateway.example.com 에 대한 연결을 확인하는 ping 리소스를 생성합니다. 실제로는 네트워크 게이트웨이/라우터에 대한 연결을 확인합니다. 모든 클러스터 노드에서 리소스가 실행되도록 ping 리소스를 복제본으로 구성합니다.

# pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=gateway.example.com clone

다음 예제에서는 Webserver 라는 기존 리소스에 대한 위치 제한 조건을 구성합니다. 그러면 현재 실행 중인 호스트가 gateway.example.com에 ping할 수 없는 경우 Webserver 리소스가 gateway.example.com 에 ping할 수 있는 호스트로 이동합니다.

# pcs constraint location Webserver rule score=-INFINITY pingd lt 1 or not_defined pingd