Proxmox가 설치된 2대의 서버로 가상화 클러스터 구성하기

새로 구입한 GMKtec M5 pro 미니PC에 Private Cloud를 구축하여 운영할 수 있는 가상화 시스템인 Proxmox를 설치하고 기존에 사용하던 슬림PC에 설치되어 있는 VMWare ESXi를 삭제한 다음 Proxmox를 추가로 설치했다. 즉 2대의 PC에 Proxmox가 설치되어 있는 상태다. 그리고 이 두 대의 PC에는 랜카드(이더넷)가 각각 2개와 3개가 설치되어 있다. 그래서 인터넷과 연결된 게이트웨이에 한 포트를 연결하고 남는 포트는 두 대의 PC를 직접 연결하여 클러스터링에 활용하기로 했다.

Proxmox 클러스터 목표 시스템 구성도

목표 시스템의 구성도는 다음과 같다.

Proxmox 2대로 클러스터 구성하기
Proxmox 2대로 클러스터 구성하기

실제 구성에는 HGWD-1G와 PC 사이에는 HUB가 있고 HGWD-1G와 노트북(그램) 사이에는 무선공유기도 있지만 모든 네트워크는 192.168.219.0/24 대역만 사용하도록 통합하여 구성했다. 무선 공유기도 HUB 모드로 구성을 변경해 사용하고 있다.

그리고 Proxmox 기상화 클러스터를 구성하기 전에 두 대의 PC를 크로스 케이블을 사용해 HUB를 거치지 않고 직접 연결한 다음 각각 10.0.0.199와 10.0.0.109 IP를 할당하여 10.0..0.0/24 네트워크로 묶어 주어야 한다.


두 노드를 직접 연결하는 네트워크 설정하기

먼저 다음과 같이 두 대의 PC에 Proxmox를 설치했다. blogger 라는 클러스터를 생성할 PC가 prxmx이고 blogger 클러스터에 가입할 PC가 prxmx2 이다.

크로스 케이블을 연결할 랜카드 디바이스를 찾아 각각의 서버에서 다음과 같이 네트워크 구성을 해야 한다.

먼저 prxmx에서 다음과 같이 “>_ Shell”에 들어가서 prxmx2 서버에 접속한 다음 /etc/network 디렉토리에 있는 interfaces 라는 파일을 vi로 연 다음 다음과 같이 10.0.0.199/24 IP 대역을 할당한다.

이렇게 추가 네트워크 인터페이스를 설정하는 이유는 서비스를 위한 네트워크 트래픽과 클러스터 관리를 위한 매니지먼트 트래픽을 분리하기 위한 것도 있지만… 그냥 구성해보고 싶었다. Proxmox는 데비안 계열의 리눅스를 기반으로 하기 때문에 데비안과 동일한 방법을 사용하면 된다.

두 번째 Proxmox가 설치된 PC에서도 동일하게 설정해준다. IP 마지막 자리를 동일하게 설정하여 구분이 쉽도록 했다.

proxmox 추가 네트워크 인터페이스 설정
proxmox 추가 네트워크 인터페이스 설정 (두 번째 PC)

이렇게 두 대의 PC에 추가 네트워크 인터페이스를 설정한 다음 두 PC를 리부팅하고 랜포트를 크로스 케이블로 직접 연결하면 서로 PIng도 되고 SSH도 된다. 요즘 네트워크 인터페이스(랜 카드)는 좋아서 아무 랜케이블이나 꼽으면 알아서 크로스로 통신을 해준다. 다이렉트 케이블이냐 크로스 케이블이냐를 구분할 필요가 없다. (무척 오래되었다.)

구성된 네트워크 인터페이스는 다음과 같이 “시스템” – “네트워크” 메뉴에서 확인할 수 있다.

두 번째 proxmox 노드의 네트워크 구성도 동일하게 확인할 수 있다.


첫 번째 노드에서 클러스터 생성하기

클러스터를 생성하고 클러스트에 가입하는 방법은 커맨드라인에서 수행하는 방법과 GUI에서 수행하는 방법이 있는데 GUI로 진행했다. 일단 한 노드에서 클러스터를 생성하고 다른 노드에서 클러스터에 가입하면 관리자 페이지는 어느 노드로 접속해도 관계없이 동일한 권한으로 작업을 수행할 수 있지만 클러스터를 생성한 노드에서 클러스터를 삭제하면 모두 클러스터에서 탈퇴(?)된다는 이야기가 있다. 그래서 최초 클러스터를 생성한 노드를 메인 노드로 식별하고 관리하는 것이 좋다.

먼저 IP가 192.168.219.199인 prxmx 노드에서 클러스터를 생성한다.

클러스터의 메인 노드로 사용할 prxmx 노드에서 “데이터센터” 메뉴를 선택하고 “클러스터” 메뉴로 이동하면 “클러스터 생성” 버튼이 보인다. 이 버튼을 누른다. 현재는 “독립 실행형 노드”로 표시되어 있음을 알 수 있다.

먼저 클러스터 이름을 정한다. 여기서는 필자의 블로그 이름을 지정했다. 그리고 클러스터가 동작할 네트워크를 선택하게 되는데 나중에 추가한 10.0.0.199 네트워크를 선택했다. 이 네트워크 인터페이스는 두 번째 노드(prxmx2)와의 통신만 가능한 네트워크다. 즉 Proxmox 클러스터 전용 네트워크다. 엔터프라이즈급 시스템을 구축하는 경우 이중화 또는 SAN, NAS 스토리지를 전용 네트워크를 구성해 다른 트래픽이 발생하지 않도록 하여 최고의 성능을 유지하도록 구성하는데, 비슷한 구성이라고 보면 된다.

어쨌든 Proxmox에 생성할 가상 서버들이 외부와 통신할 때 사용하는 219.168.219.199가 아닌 Proxmox 노드끼리만 통신할 수 있도록 구성된 전용 네트워크인 10.0.0.199를 클러스터 네트워크로 선택한다.

“생성” 버튼을 클릭하면 다음과 같이 클러스터 생성 태스크가 정상적으로 완료되었다는 결과가 보인다.

Proxmox 클러스터 생성 결과
Proxmox 클러스터 “blogger” 생성 결과

클러스터 생성 작업은 여기까지가 전부다. 다음과 같이 클러스터의 참여정보를 보면 blogger 클러스터에 클러스터를 생성한 첫 번째 노드 즉 prxmx (10.0.0.199)가 노드로 등록되어 있음을 알 수 있다.

이제 두 번째 노드(prxmx2 – 10.0.0.109)에서 blogger 클러스터에 가입하는 과정을 진행하면 된다.


두 번째 노드에서 클러스터 가입하기

두 번째 노드인 prxmx2에서 blogger 클러스터에 가입하기 위해서는 “참여 정보 (가입 정보)”가 필요하다. 앞 화면의 “클러스터 정보” 화면에서 “참여 정보”를 클릭하면 다음과 같이 다른 노드에서 클러스터에 가입할 때 입력해야 하는 참여 정보(가입 정보)를 보여준다.

여기에서 IP주소와 지문 그리고 참여 정보를 복사하거나 이 창을 그대로 둔 상태에서 두 번째 노드(prxmx2 – 10.0.0.109)에 접속하여 “데이터센터” – “클러스터” 메뉴로 이동한 다음 “클러스터 가입” 버튼을 클릭한다.

“클러스터 가입” 버튼을 누르면 아래 화면처럼 가입 정보를 입력하는 창이 실행되는데 “클러스터 가입정보”에서 나와 있는 IP, 지문, 참여 정보 중 참여 정보를 복사해 입력한다.

참여정보를 붙여넣기하면 참여정보에 포함되어 있는 피어주소, 지문 정보 등을 인코딩 된 참여 정보에서 추출하여 자동으로 입력해 준다.

클러스터의 메인 노드(prxmx – 10.0.0.199)와 연동할 네트워크 인터페이스를 선택하고 클러스터 메인노드의 접속 비밀번호(root의)를 입력한 다음 완료하면 된다.

그런데… 인코딩된 “참여 정보”를 복사해 붙여 넣기 했을 때 가입 과정에서 에러가 발생하는 경우가 있었다. 그럴 땐 “클러스터 참가를 도와드립니다 : 인코딩된 클러스터~~~” 옵션의 체크(v)를 해제하고 다음과 같이 수동으로 입력하면 가입이 되기도 한다. (에러의 이유는 알 수 없었다. 나중에 발견한 것이지만 피어주소를 10.0.0.199를 입력하면 어떨까 싶다. )

피어의 주소가 클러스터 네트워크가 아닌 서비스 네트워크 인터페이스의 IP 주소가 입력된 것을 나중에 알아챘는데 그 이유를 따로 확인해봐야 할 듯 하다. 어쨌든 피어주소, 비밀번호, 지문정보 그리고 클러스터 네트워크 링크를 선택하고 “가입”을 누른다.

클러스터의 가입이 완료되면 다음과 같이 결과 창이 표시된다.

이후 Proxmox VE 관리자 웹페이지에 접속하면 노드가 2대 임이 표시되며 한 쪽의 관리자페이지에서 두 대의 관리 작업을 모두 수행할 수 있다.

두 대의 PC에 Proxmox VE를 설치하고 클러스터를 구성해보았다.

*** 추가 ****

2025년 11월에 클러스터 노드를 1대 추가하여 세대의 노드로 홈랩을 구축하였다.

#proxmox #cluster #cloud

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다