클러스터링된 풀
클러스터링은 GFS2 SR을 사용하는 리소스 풀에 필요한 추가 기능을 제공합니다. GFS2에 대한 자세한 내용은 스토리지 구성을 참조하십시오.
클러스터는 클러스터되지 않은 풀의 호스트보다 더 긴밀하게 연결되고 조정되는 Citrix Hypervisor 호스트 풀입니다. 클러스터의 호스트는 선택한 네트워크에서 서로 일정한 통신을 유지합니다. 클러스터의 모든 호스트는 클러스터에 있는 모든 호스트의 상태를 인식합니다. 이 호스트 조정을 통해 클러스터는 GFS2 SR의 콘텐츠에 대한 액세스를 제어할 수 있다.
참고:
클러스터링 기능은 GFS2 SR이 포함된 풀에만 유용합니다. 풀에 GFS2 SR이 포함되어 있지 않은 경우 풀에서 클러스터링을 활성화하지 마십시오.
Quorum
클러스터의 각 호스트는 항상 클러스터에 있는 대부분의 호스트 (자체 포함) 와 통신해야 합니다. 이 상태를 Quorum이 있는 호스트라고 합니다. 호스트에 Quorum이 없는 경우 해당 호스트는 자체 울타리를 호스트합니다.
처음에 쿼럼을 달성하기 위해 통신해야 하는 호스트 수는 클러스터가 쿼럼을 유지하는 데 필요한 호스트 수와 다를 수 있습니다.
다음 표에는 이 동작이 요약되어 있습니다. n 값은 클러스터 풀의 총 호스트 수입니다.
쿼럼 달성에 필요한 호스트 수 | 할당량을 유지하는 데 필요한 호스트 수 | |
---|---|---|
풀에 있는 홀수 호스트 수 | (n+1)/2 | (n+1)/2 |
풀의 호스트 수가 짝수임 | (n/2)+1 | n/2 |
홀수 풀
홀수 풀의 쿼럼 값을 달성하려면 클러스터의 총 호스트 수인 (n+1) /2) 의 절반이 더 필요합니다. 이는 풀이 쿼레이트 상태를 유지하기 위해 연결 가능한 상태로 유지되어야 하는 최소 호스트 수이기도 합니다.
예를 들어, 호스트가 5개인 클러스터 풀에서 클러스터가 활성화되고 쿼레이트 상태를 유지하려면 호스트 3개에 연결할 수 있어야 합니다 [(5+1) /2 = 3].
가능한 경우 클러스터된 풀에 홀수 수의 호스트를 사용하는 것이 좋습니다. 이렇게 하면 호스트가 쿼레이트 집합이 있는지 여부를 항상 확인할 수 있습니다.
짝수 번호가 매겨진 풀
콜드 스타트에서 짝수 번호가 지정된 클러스터 풀의 전원이 켜지면 호스트에 Quorum이 생기기 전에 (n/2) +1개의 호스트를 사용할 수 있어야 합니다. 호스트에 Quorum이 있으면 클러스터가 활성화됩니다.
그러나 연결 가능한 호스트 수가 n/2 이상인 경우 짝수 번호가 매겨진 활성 풀은 쿼레이트 상태를 유지할 수 있습니다. 따라서 호스트 수가 짝수인 실행 중인 클러스터를 정확히 절반으로 분할할 수 있습니다. 실행 중인 클러스터는 클러스터 자체 울타리의 절반과 Quorum이 있는 클러스터의 절반을 결정합니다. 클러스터 분할 이전에 활성 상태로 표시된 가장 낮은 ID의 노드를 포함하는 클러스터의 절반은 활성 상태로 유지되고 나머지 절반은 자체 방어됩니다.
예를 들어, 호스트가 4개인 클러스터 풀에서 클러스터가 활성화되려면 호스트 3개에 연결할 수 있어야 합니다 [4/2 + 1 = 3]. 클러스터가 활성화된 후 할당량을 유지하려면 2개의 호스트에만 접속할 수 있어야 하며 [4/2 = 2], 해당 호스트 집합에는 활성 상태인 것으로 알려진 가장 낮은 노드 ID를 가진 호스트가 포함되어야 합니다.
셀프 펜싱
호스트가 Quorum이 없음을 감지하면 몇 초 내에 자체 울타리를 수행합니다. 호스트가 자체 울타리를 하면 호스트가 즉시 다시 시작됩니다. 호스트가 하드 종료를 수행하기 때문에 호스트에서 실행 중인 모든 VM이 즉시 중지됩니다. 고가용성을 사용하는 클러스터된 풀에서 Citrix Hypervisor는 다른 풀 구성원의 다시 시작 구성에 따라 VM을 다시 시작합니다. 자체 차단된 호스트가 다시 시작되고 클러스터에 다시 참여하려고 시도합니다.
클러스터의 라이브 호스트 수가 Quorum 값보다 작아지면 나머지 모든 호스트는 Quorum을 잃게 됩니다.
이상적인 시나리오에서는 클러스터된 풀에 항상 Quorum에 필요한 것보다 많은 라이브 호스트가 있으며 Citrix Hypervisor는 울타리를 사용하지 않습니다. 이 시나리오의 가능성을 높이려면 클러스터된 풀을 설정할 때 다음 권장 사항을 고려하십시오.
-
하드웨어 중복성이 양호한지 확인합니다.
-
클러스터 네트워크에 전용 본드 네트워크를 사용합니다. 본딩된 NIC가 동일한 L2 세그먼트에 있는지 확인합니다. 자세한 내용은 네트워킹을 참조하십시오.
-
풀과 GFS2 SR 간에 스토리지 다중 경로 지정을 구성합니다. 자세한 내용은 스토리지 다중 경로 지정을 참조하십시오.
클러스터된 풀 만들기
시작하기 전에 다음 사전 요구 사항이 충족되었는지 확인합니다.
-
클러스터된 풀의 모든 Citrix Hypervisor 서버에는 최소 2GiB의 제어 도메인 메모리가 있어야 합니다.
환경에 따라 호스트에 이보다 더 많은 제어 도메인 메모리가 필요할 수 있습니다. 호스트의 제어 도메인 메모리가 부족하면 풀의 네트워크가 불안정해질 수 있습니다. 네트워크 불안정은 GFS2 SR을 사용하는 클러스터된 풀에 문제를 일으킬 수 있습니다. 제어 도메인 메모리의 양을 변경하고 메모리 동작을 모니터링하는 방법에 대한 자세한 내용은 메모리 사용량을 참조하십시오.
-
클러스터의 모든 호스트는 클러스터 네트워크에 대해 정적 IP 주소를 사용해야 합니다.
-
호스트가 3개 이상 포함된 풀에서만 클러스터링을 사용하는 것이 좋습니다. 두 개의 호스트로 구성된 풀은 전체 풀을 자체 보호하는 데 민감합니다.
- 풀의 호스트 간에 방화벽이 있는 경우 호스트가 다음 포트를 사용하여 클러스터 네트워크에서 통신할 수 있는지 확인합니다.
- TCP: 8892, 8896, 21064
- UDP: 5404, 5405
자세한 내용은 Citrix 기술에서 사용되는 통신 포트를 참조하십시오.
-
기존 풀을 클러스터링하는 경우 고가용성을 사용하지 않도록 설정해야 합니다. 클러스터링을 사용하도록 설정한 후 고가용성을 다시 사용하도록 설정할 수 있습니다.
- 클러스터된 풀에는 다른 트래픽에 사용되지 않는 연결된 네트워크를 사용하는 것이 좋습니다.
원하는 경우 XenCenter를 사용하여 풀에서 클러스터링을 설정할 수 있습니다. 자세한 내용은 Citrix Hypervisor 센터 제품 설명서를 참조하십시오.
xe CLI를 사용하여 클러스터된 풀을 생성하려면 다음과 같이 하십시오.
-
군집화 네트워크로 사용할 결합 네트워크를 만듭니다.
참고:
클러스터링된 풀에는 연결된 전용 네트워크를 사용하는 것이 좋습니다. 이 네트워크를 다른 트래픽에 사용하지 마십시오.
풀 마스터로 사용할 Citrix Hypervisor 서버에서 다음 단계를 완료합니다.
-
Citrix Hypervisor 서버에서 콘솔을 엽니다.
-
다음 명령을 사용하여 리소스 풀의 이름을 지정합니다.
xe pool-param-set name-label="New Pool" uuid=<pool_uuid>
-
다음 명령을 사용하여 연결된 NIC에 사용할 네트워크를 만듭니다.
xe network-create name-label=bond0
새 네트워크의 UUID가 반환됩니다.
-
다음 명령을 사용하여 결합에 사용할 PIF의 UUID를 찾습니다.
xe pif-list
-
액티브-액티브 모드, 액티브-패시브 모드 또는 LACP 본드 모드에서 본드 네트워크를 생성합니다. 사용하려는 본드 모드에 따라 다음 작업 중 하나를 완료합니다.
-
액티브-액티브 모드 (기본값) 에서 본드를 구성하려면
bond-create
명령을 사용하여 본드를 만듭니다. 쉼표를 사용하여 매개 변수를 구분하고, 새로 생성된 네트워크 UUID와 연결할 PIF의 UUID를 지정합니다.xe bond-create network-uuid=<network_uuid> / pif-uuids=<pif_uuid_1>,<pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4>
4개의 NIC를 결합할 때 2개의 NIC와 4개의 UUID를 결합하는 경우 2개의 UUID를 입력합니다. 명령을 실행하면 본드의 UUID가 반환됩니다.
-
액티브-패시브 또는 LACP 본드 모드에서 본드를 구성하려면 동일한 구문을 사용하고 선택적
mode
매개 변수를 추가한 후lacp
또는active-backup
를 지정합니다.xe bond-create network-uuid=<network_uuid> pif-uuids=<pif_uuid_1>, / <pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4> / mode=balance-slb | active-backup | lacp
-
풀 마스터에서 연결된 네트워크를 만든 후 다른 Citrix Hypervisor 서버를 풀에 조인하면 네트워크 및 연결 정보가 자동으로 가입 서버에 복제됩니다.
자세한 내용은 네트워킹을 참조하십시오.
-
-
세 개 이상의 Citrix Hypervisor 서버로 구성된 리소스 풀을 만듭니다.
(마스터가 아닌) 풀 멤버인 각 Citrix Hypervisor 서버에서 다음 단계를 반복합니다.
- Citrix Hypervisor 서버에서 콘솔을 엽니다.
-
다음 명령을 사용하여 Citrix Hypervisor 서버를 풀 마스터의 풀에 가입합니다.
xe pool-join master-address=master_address master-username=administrators_username master-password=password
master-address
매개 변수의 값은 풀 마스터인 Citrix Hypervisor 서버의 정규화된 도메인 이름으로 설정해야 합니다.password
는 풀 마스터가 설치될 때 설정된 관리자 암호여야 합니다.
자세한 내용은 호스트 및 리소스 풀을 참조하십시오.
-
이 네트워크에 속한 모든 PIF에 대해
disallow-unplug=true
을(를) 설정합니다.-
다음 명령을 사용하여 네트워크에 속한 PIF의 UUID를 찾습니다.
xe pif-list
-
리소스 풀의 Citrix Hypervisor 서버에서 다음 명령을 실행합니다.
xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
-
-
풀에서 클러스터링을 사용하도록 설정합니다. 리소스 풀의 Citrix Hypervisor 서버에서 다음 명령을 실행합니다.
xe cluster-pool-create network-uuid=<network_uuid>
이전 단계에서 생성한 연결된 네트워크의 UUID를 제공합니다.
클러스터된 풀 제거
클러스터된 풀을 제거할 수 있습니다. 클러스터된 풀을 제거한 후에도 풀은 계속 존재하지만 더 이상 클러스터되지 않으므로 GFS2 SR을 더 이상 사용할 수 없습니다.
클러스터된 풀을 제거하려면 다음 명령을 실행합니다.
xe cluster-pool-destroy cluster-uuid=<uuid>
클러스터된 풀 관리
클러스터된 풀을 관리할 때 다음 방법을 사용하면 풀이 Quorum을 잃을 위험을 줄일 수 있습니다.
클러스터된 풀에서 호스트 추가 또는 제거
클러스터된 풀에서 호스트를 추가하거나 제거할 때는 클러스터의 모든 호스트가 온라인 상태인지 확인하십시오.
XenCenter를 사용하여 클러스터된 풀에서 호스트를 추가하거나 제거할 수 있습니다. 자세한 내용은 풀에 서버 추가 및 풀에서 서버 제거를 참조하십시오.
또한 xe CLI를 사용하여 클러스터된 풀에서 호스트를 추가하거나 제거할 수도 있습니다. 자세한 내용은 xe CLI를 사용하여 풀에 호스트 추가 및 리소스 풀에서 Citrix Hypervisor 호스트 제거를 참조하십시오.
호스트가 완전히 종료되었는지 확인
호스트가 완전히 종료되면 다시 시작될 때까지 클러스터에서 일시적으로 제거됩니다. 호스트가 종료되는 동안에는 클러스터의 Quorum 값에 포함되지 않습니다. 호스트 부재로 인해 다른 호스트가 Quorum을 잃지는 않습니다.
그러나 호스트가 강제로 또는 예기치 않게 종료되면 오프라인 상태가 되기 전에 클러스터에서 제거되지 않습니다. 이 호스트는 클러스터의 Quorum 값에 포함됩니다. 종료되면 다른 호스트의 Quorum이 손실될 수 있습니다.
호스트를 강제로 종료해야 하는 경우 먼저 클러스터에 있는 라이브 호스트 수를 확인합니다. 명령을 사용하여 이 작업을 수행할 수 corosync-quorumtool
있습니다. 명령 출력에서 라이브 호스트 수는 의 Total votes:
값이고 쿼럼을 유지하는 데 필요한 라이브 호스트 수는 의 값입니다 Quorum:
.
-
라이브 호스트 수가 할당량을 유지하는 데 필요한 호스트 수와 같으면 호스트를 강제로 종료하지 마세요. 이렇게 하면 전체 클러스터가 차단됩니다.
대신 호스트를 강제로 종료하기 전에 다른 호스트를 복구하고 라이브 호스트 수를 늘려 보십시오.
-
라이브 호스트 수가 할당량을 유지하는 데 필요한 호스트 수에 근접하면 호스트를 강제로 종료할 수 있습니다. 하지만 이렇게 하면 풀의 다른 호스트에 문제가 있는 경우 클러스터가 완전 펜싱에 더 취약해집니다.
항상 가능한 한 빨리 종료 호스트를 다시 시작하여 클러스터의 복원력을 높이십시오.
유지 관리 모드 사용
호스트에서 Quorum이 손실될 수 있는 작업을 수행하기 전에 호스트를 유지 보수 모드로 설정합니다. 호스트가 유지 보수 모드에 있으면 실행 중인 VM이 호스트에서 풀의 다른 호스트로 마이그레이션됩니다. 또한 해당 호스트가 풀 마스터인 경우 해당 역할은 풀의 다른 호스트로 전달됩니다. 이러한 작업으로 인해 유지 보수 모드의 호스트가 자체 방어되는 경우에도 VM이 손실되거나 풀에 대한 Citrix Hypervisor 센터 연결이 끊어지지 않습니다.
유지 보수 모드의 호스트는 여전히 클러스터의 Quorum 값에 포함됩니다.
클러스터된 풀에 속하는 호스트의 IP 주소는 해당 호스트가 유지 보수 모드에 있을 때만 변경할 수 있습니다. 호스트의 IP 주소를 변경하면 호스트가 클러스터에서 나갑니다. IP 주소가 성공적으로 변경되면 호스트가 클러스터에 다시 참여합니다. 호스트가 클러스터에 다시 연결되면 유지 보수 모드에서 해제할 수 있습니다.
자체 차단되어 있거나 오프라인 상태인 호스트를 복구합니다
자체 울타리가 있는 호스트를 복구하는 것이 중요합니다. 이러한 클러스터 멤버는 오프라인 상태인 동안 클러스터의 Quorum 수에 포함되며 연결할 수 있는 클러스터 멤버의 수가 감소합니다. 이 경우 후속 호스트 오류가 발생하여 클러스터가 Quorum을 잃고 완전히 종료될 위험이 높아집니다.
또한 클러스터에 오프라인 호스트가 있으면 특정 작업을 수행할 수 없습니다. 클러스터된 풀에서 풀의 모든 구성원이 풀 멤버쉽의 모든 변경에 동의해야 변경이 성공할 수 있습니다. 클러스터 구성원에 연결할 수 없는 경우 Citrix Hypervisor는 클러스터 구성원을 변경하는 작업 (예: 호스트 추가 또는 호스트 제거) 을 금지합니다.
호스트를 복구할 수 없는 것으로 표시
하나 이상의 오프라인 호스트를 복구할 수 없는 경우 클러스터된 풀에 해당 호스트를 삭제하도록 지시할 수 있습니다. 이러한 호스트는 풀에서 영구적으로 제거됩니다. 풀에서 호스트를 제거한 후에는 더 이상 쿼럼 값에 포함되지 않습니다.
호스트를 복구할 수 없는 것으로 표시하려면 다음 명령을 사용합니다.
xe host-forget uuid=<host_uuid>
잊어버린 호스트 복구
클러스터된 풀에서 호스트를 삭제하라는 명령을 받은 후에는 호스트를 풀에 다시 추가할 수 없습니다.
클러스터된 풀에 다시 참여하려면 호스트에 XenServer를 다시 설치하여 풀에 새 호스트로 표시되도록 해야 합니다. 그런 다음 일반적인 방법으로 호스트를 클러스터된 풀에 가입시킬 수 있습니다.
클러스터링된 풀 문제 해결
클러스터된 풀에 문제가 발생하는 경우 클러스터된 풀 문제 해결을참조하십시오.
제약 조건
- 클러스터된 풀은 풀당 최대 16개의 호스트만 지원합니다.
- 클러스터된 풀에서 HA를 활성화하려면 하트비트 SR이 GFS2 SR이어야 합니다.
- 클러스터 트래픽의 경우 두 개 이상의 서로 다른 네트워크 스위치를 사용하는 연결된 네트워크를 사용해야 합니다. 이 네트워크를 다른 용도로 사용하지 마십시오.
- XenCenter를 사용하여 클러스터 네트워크의 IP 주소를 변경하려면 클러스터링과 GFS2를 일시적으로 사용하지 않도록 설정해야 합니다.
- 클러스터가 작동 중이고 VM이 실행 중인 동안에는 클러스터링 네트워크의 연결을 변경하지 마십시오. 이 작업으로 인해 클러스터가 차단 될 수 있습니다.
- 클러스터링을 사용하는 호스트가 하나 이상 포함된 클러스터링 네트워크에 IP 주소 충돌 (동일한 IP 주소를 갖는 여러 호스트) 이 있는 경우 호스트가 차단되지 않습니다. 이 문제를 해결하려면 IP 주소 충돌을 해결하십시오.