같은 LAN이라면 GUI에서 바로 Join하면 되는데, 내 서버는 서로 다른 위치에 있어 같은 LAN을 쓸 수 없다. 그래도 Cluster를 구성하고 싶었고, 이 글은 서로 다른 LAN에 있는 분산 노드를 대상으로 한다.
홈랩을 하면서 가장 고생했던 작업 중 하나였다. 이 موضوع는 Thuận Bùi 형님의 블로그에도 글이 없어서, 최대한 자세히 정리한다.
VGA를 뽑은 뒤에는 1편처럼 Proxmox를 설치했고, 역시 nomodeset 이슈를 피할 수 없었다.
그 다음 PCIe 포트 인덱스를 24편에 나온 명령으로 고정했다.
Proxmox에 Tailscale 설치
Cluster에 참여할 두 PVE 모두에 설치한다.
curl -fsSL https://tailscale.com/install.sh | sh
systemctl enable --now tailscaled
tailscale up --ssh
실행 후 로그인 링크가 나온다.
Tailscale 설정
두 노드의 IP를 기억하기 쉽도록 변경했다.
pve: 100.122.1.1
pve2: 100.122.2.2

Cluster 생성
Cluster가 없는지 확인한 뒤 Create Cluster를 클릭하고 필요한 정보를 입력한다. LAN은 사용할 수 있는 유일한 LAN을 넣으면 된다.

예전 1편에서 남아 있던 초기 설정이다.

통신 포트 설정(192.168.111.2)을 바꾸려면 아래처럼 corosync.conf를 수정한다.
nano /etc/pve/corosync.conf
강조된 부분에 PVE 노드의 Tailscale IP를 입력했다.

수정 후 corosync를 재시작한다.
systemctl restart corosync
pvecm status
이제 Cluster IP Address가 원하는 값으로 변경된다.

Cluster 참여
참여 전에 다음 조건을 확인한다.
- 두 PVE 노드가 서로 ping이 되는지
- SSL이 PVE 자체 서명(cert)인지
14편에서 Cloudflare Origin SSL을 사용했기 때문에, PVE 서명 인증서로 되돌려야 했다.
PVE2 노드의 Shell에서 실행:
pvecm add 100.122.1.1 --link0 100.122.2.2

다음처럼 표시되고, Cluster에 노드가 보이면 성공이다.
결과
아래처럼 보이면 성공!

자주 발생한 오류 정리
PVE에서 Cluster 삭제
Cluster를 초기화하려면 CLI에서만 가능하다. GUI에는 삭제 버튼이 없다.
systemctl stop pve-cluster corosync
pmxcfs -l
rm /etc/corosync/*
rm /etc/pve/corosync.conf
killall pmxcfs
systemctl start pve-cluster
Proxmox WebUI 접속 불가
SSH로 들어가 아래 명령 실행:
pvecm updatecerts --force
systemctl restart pveproxy
PVE2가 Cluster에 들어왔지만 다운됨
SSL Cert 문제나 PVE2 접속 불가, 또는 PVE2가 crash/shutdown된 경우:
pvecm expected 1
pvecm delnode pve2
설명: Proxmox 노드는 모두 동등하며 master/slave 개념이 없다. 민주적 구조라 quorum을 1로 강제로 설정해야 한다. PVE(노드1)가 통제권을 갖도록 하는 것인데, 자세한 내용은 26편에서 다룰 예정이다.
Comments
Join the conversation
Leave a comment
No comments yet
Be the first to share your thoughts!