Proxmox VE: 2 노드 HA 기능 테스트(Part 1 요구사항)
HA를 구성하기 위해서는 아래와 같은 요구사항을 만족해야 합니다.
- 최소 3개의 클러스터 노드(신뢰할 수 있는 쿼럼을 얻기 위해)
2 개의 노드로 구성된 Cluster에 HA 환경을 설정하기 위해서는 QDevice를 추가해야 합니다. - VM 및 컨테이너를 위한 공유 스토리지
공유 스토리지에 설치된 VM 및 LXC만 HA 기능을 사용할 수 있습니다. 저는 NFS 저장소를 활용할 예정입니다.
- 하드웨어 Redundancy (모든 곳)
- 신뢰할 수 있는 “서버” 구성 요소 사용
- 하드웨어 워치독 – 사용할 수 없으면 Linux 커널 소프트웨어 워치독(softdog)으로 fallback
기본적으로 모든 하드웨어 워치독 모듈은 보안상의 이유로 차단됩니다. 올바르게 초기화되지 않으면 장전된 총과 같습니다. 하드웨어 워치독을 활성화하려면 /etc/default/pve-ha-manager 파일에서 로드할 모듈을 지정해야 합니다. 이 구성은 시작 시 지정된 모듈을 로드하는 watchdog-mux 서비스에서 읽습니다. watchdog-mux 서비스는 여러 서비스에서 watchdog을 공유하고 관리할 수 있도록 하는 다중화 레이어로, watchdogd가 단독으로 watchdog을 점유하는 것을 방지하고, 여러 프로세스가 사용할 수 있도록 관리하고 제어하는 역할을 합니다.$ root@node1:~# cat /etc/default/pve-ha-manager # select watchdog module (default is softdog) #WATCHDOG_MODULE=ipmi_watchdog (BMC 칩셋 필요) #WATCHDOG_MODULE=iTCO_wdt (Intel 칩셋 기반) #WATCHDOG_MODULE=softdog (명시적으로 softdog 선언) $ root@node1:/etc/default# systemctl status watchdog-mux ● watchdog-mux.service - Proxmox VE watchdog multiplexer Loaded: loaded (/lib/systemd/system/watchdog-mux.service; static) Active: active (running) since Wed 2025-02-19 12:53:57 KST; 2h 11min ago Main PID: 1463 (watchdog-mux) Tasks: 1 (limit: 114903) Memory: 200.0K CPU: 239ms CGroup: /system.slice/watchdog-mux.service └─1463 /usr/sbin/watchdog-mux Feb 19 12:53:57 node1 systemd[1]: Started watchdog-mux.service - Proxmox VE watchdog multiplexer. Feb 19 12:53:57 node1 watchdog-mux[1463]: Watchdog driver 'Software Watchdog', version 0
- 선택적 하드웨어 Fencing 장치
- 노드 장애 시 Fencing은 오류가 있는 노드가 오프라인 상태가 되도록 보장합니다. 이는 다른 노드에서 복구될 때 리소스가 두 번 실행되지 않도록 하는 데 필요합니다. 이는 정말 중요한 작업인데, 이것이 없다면 다른 노드에서 리소스를 복구할 수 없기 때문입니다. 장애 노드가 Fencing되지 않으면 공유 리소스에 여전히 액세스할 수 있는 알 수 없는 상태되어 정말 위험합니다. 스토리지 네트워크만 제외하고 모든 네트워크가 끊어졌다고 상상해 보세요. 이제 공용 네트워크에서 접근할 수 없지만 VM은 여전히 실행되고 공유 스토리지에 씁니다. 그런 다음 다른 노드에서 이 VM을 시작하면 두 노드에서 모두 쓰기 때문에 위험한 경쟁 조건이 발생합니다. 이러한 조건은 모든 VM 데이터를 파괴하고 전체 VM을 사용할 수 없게 만들 수 있습니다. 스토리지가 여러 마운트로부터 보호하는 경우에도 복구가 실패할 수 있습니다.
- 노드를 Fencing하는 방법에는 여러 가지가 있습니다. 예를 들어 노드의 전원을 차단하거나 통신을 완전히 비활성화하는 Fencing 장치가 있습니다. 이러한 Fencing 장치는 종종 매우 비싸고 시스템에 중요한 구성 요소를 추가로 가져오는데, 고장이 나면 서비스를 복구할 수 없기 때문입니다. 따라서 추가 외부 하드웨어가 필요 없는 더 간단한 펜싱 방법으로 “워치독 타이머를 사용”하여 수행할 수 있습니다.
- 정상적인 운영 중에 ha-manager는 정기적으로 워치독 타이머(watchdog timer)를 리셋하여 타이머가 만료되지 않도록 합니다. 하지만 하드웨어 장애나 프로그램 오류로 인해 서버가 워치독 타이머를 리셋하지 못하면, 타이머가 만료되어 서버 전체가 자동으로 재부팅됩니다. 최신 서버 마더보드에는 이러한 하드웨어 워치독이 포함되는 경우가 많지만 이를 구성해야 합니다. 워치독을 사용할 수 없거나 구성하지 않으면 Linux 커널 소프트독으로 돌아갑니다. 여전히 안정적이기는 하지만 서버 하드웨어와 독립적이지 않으므로 하드웨어 워치독보다 안정성이 낮습니다.