Proxmox VE 에서 VM 고가용성 (HA) 설정하기

리눅스/OS 일반|2024. 6. 28. 15:59
반응형

사전 준비가 필요합니다.

- PVE 3대 : 최소 세 대 이상의 노드로 구성된 클러스터가 필요

- 공유 스토리지 설정 : VM 의 디스크가 공유 스토리지에 있어야 합니다. 이 스토리지는 클러스터 내의 모든 노드에서 접근 가능해야 합니다.

- NFS 공유 스토리지 추가하기 : https://sysdocu.tistory.com/1941

 

 

1. 고가용성 그룹 구성

 

HA 그룹을 구성하면 특정 노드 그룹에 리소스를 할당할 수 있습니다.

- 데이터센터 > HA > '추가' 버튼 > HA > '그룹' 에서 '생성' 버튼을 누릅니다.

 

새로운 ID 값 (ha-test / 영문으로 시작해야 함) 과 각 노드 앞에 체크박스를 체크하고 (테스트 노드가 3개 이므로 모두 체크), 우선순위를 설정 (순서대로 1, 2, 3) 합니다.

옵션은 nofailback 만 체크합니다.

- restricted 옵션 : HA 리소스가 특정 노드에서만 실행되도록 제한하는 설정입니다.

- nofailback 옵션 : HA 클러스터에서 장애가 발생한 후, 장애가 복구되었을 때 리소스가 원래 노드로 자동으로 이동하지 않도록 합니다.

 

* 주의 : 운용 중인 VM 에 HA 그룹을 설정하면 장애가 없어도 우선순위에 따라 VM 이 자동으로 마이그레이션 될 수 있습니다.

 

 

2. 공유 스토리지를 기반으로 한 VM 생성

 

디스크가 노드에 존재하면 해당 노드 다운시 데이터를 옮기지 못합니다.

그러므로 공유 스토리지에 디스크를 생성해야하는데, 방법은 간단하므로 여기에서는 생략하고 넘어가겠습니다.

 

 

3. 고가용성 대상 선택

 

아래 메뉴에서 고가용성 구성을 원하는 대상을 선택합니다.

- 데이터센터 > HA > '추가' 버튼 > HA 구성을 원하는 VM (124 / test-private-124 / 192.168.142.124) 을 선택, 그룹은 먼저 생성한 것 (ha-test) 을 선택합니다.

 

* 옵션 설명
최대 재시작 (Max Restart) : 동일한 노드에서 VM 이나 컨테이너를 다시 시작할 최대 횟수. 오류에 의한 중단일 수 있으므로 같은 노드에서 부팅 시도를 해봅니다.
최대 재배치 (Max Relocate) : 다른 노드로 이동하여 VM 이나 컨테이너를 다시 시작할 최대 횟수. 
- 일반적인 업무 : Max Restart = 3, Max Relocate = 1
- 중요한 업무 : Max Restart = 5, Max Relocate = 2
- 고가용성이 필요한 업무 : Max Restart = 3, Max Relocate = 2

Max Restart 회수가 다 소진되면 마이그레이션을 시도 (Relocate) 하게 됩니다.

 

CLI 에서 동일하게 옵션을 설정하는 방법입니다.

# ha-manager set vm:124 --max_restart 3 --max_relocate 2

 

상단 상태 창에서 출력되는 내용이 CLI 에서도 확인 가능합니다.

# ha-manager status
quorum OK
master pve3 (active, Mon Jul  1 13:42:47 2024)
lrm pve1 (active, Mon Jul  1 13:42:50 2024)
lrm pve2 (idle, Mon Jul  1 13:42:47 2024)
lrm pve3 (idle, Mon Jul  1 13:42:47 2024)
service vm:124 (pve1, started)

 

현재 pve1 에서 Active 상태인 것을 확인할 수 있습니다.

 

VM의 HA 상태를 enabled 로 변경하여 자동 재시작 및 이동이 가능하도록 설정합니다.

이 부분은 원래 웹 UI 에서 HA 리소스 선택할때 '상태 요청' 옵션에서 선택할 수 있어야 하는데, Started, Stoped 등은 있지만 이상하게 Enabled 는 표시되지 않습니다. 그래서 CLI 에서 적용해 줍니다.

# ha-manager set vm:124 --state enabled

 

설정을 확인합니다.

참고로, max_relocate 와 max_restart 는 기본값 (1) 을 사용할 경우 출력되지 않습니다.

# ha-manager config
vm:124
group HA888
max_relocate 3
max_restart 3
state enabled

 

 

3. 테스트

 

1) VM 정지

pve1 에서 실행중인 VM (ID: 124) 을 정지 시킵니다.

Proxmox HA 는 VM 이 정지되었음을 감지하고, 설정된 최대 재시작 (Max Restart) 회수만큼 동일한 노드에서 재시작을 시도합니다.

 

2) 노드 정지

VM 이 가동되는 노드 (pve1) 를 셧다운 합니다.

Proxmox HA 는 노드의 장애를 감지하고, 해당 노드에서 실행 중이던 VM 들을 다른 노드로 자동으로 이동하여 재시작합니다.

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글()