Proxmox VE: 2 노드 HA 기능 테스트(Part 2 QDevice 추가)

적어도 3 nodes가 있어야 HA 기능을 제대로 사용할 수 있다고 합니다(HA 구성 요구사항). 그런데 저는 2 nodes밖에 없어서 QDevice(Quorum Device)를 사용해야만 HA 기능을 테스트해 볼 수 있습니다.
먼저 “왜 QDevice를 사용해야하는지?” 알아보겠습니다. PVE 클러스터는 과반수(Quorum)를 만족해야 정상적으로 동작합니다. 즉, N개의 노드가 있다면 (N/2 + 1)개 이상이 살아 있어야 클러스터가 유지됩니다. 노드 2개로 클러스터를 구성할 경우, 한쪽 노드가 다운되면 Quorum을 잃어서 전체 클러스터가 작동 중지되므로 QDevice를 추가해서 투표 수를 늘려야 Quorum을 유지할 수 있습니다.

QDevice 쿼럼를 설치하는 방법은 아래와 같이 2가지 방법이 있습니다.

  1. 외부 서버(VM 또는 Physical)에 쿼럼 설치(권장)
    • 외부 서버에서 corosync-qnetd 패키지를 설치합니다. 외부 서버에는 Debian Linux가 설치된 것으로 가정하겠습니다.
      apt-get update
      apt-get install corosync-qnetd -y
      systemctl enable --now corosync-qnetd
      
    • 모든 Proxmox Cluster Node에서 QNetd 패키지와 QDevice 패키지를 설치합니다.
      apt-get update
      apt-get install corosync-qnetd corosync-qdevice -y
      systemctl enable --now corosync-qnetd
      pvecm qdevice setup <QDEVICE_IP_ADDRESS>
      
    • QDevice가 정상적으로 추가되었는지 확인합니다. Reloading corosync.conf...Done 이 표시되면 정상적으로 설정된 것입니다.
      pvecm status
      
  2. Proxmox Cluster 내부에 쿼럼 설치
    • 모든 Proxmox Cluster Node에 QNetd 패키지와 QDevice 패키지를 설치합니다.
      apt-get update
      apt-get install corosync-qnetd corosync-qdevice -y
      systemctl enable --now corosync-qnetd
      
    • 클러스터 노드에서 QDevice 활성화합니다. 참고로 QDevice 설정사항을 삭제하려면 pvecm qdevice remove 명령어를 사용합니다.
      pvecm qdevice setup <QDEVICE_IP_ADDRESS>
      
    • QDevice 설정을 확인합니다.
      pvecm status
      

저는 첫 번째 방법으로 QDevice를 추가하여 HA 기능 테스트를 진행하겠습니다. 아래는 QDevice를 추가하는 절차입니다.

  1. VirtualBox에 Debian Linux를 설치했습니다. 설치할 때 네트워크 어댑터는 브리지 유형을 선택해야 합니다. 그래야 동일한 네트워크 대역의 IP를 설정할 수 있고, 외부에서 ssh 연결이 가능합니다.
    Proxmox QDevice 설치

    root@qdevice:~# apt-get update
    root@qdevice:~# apt-get install corosync-qnetd -y
    root@qdevice:~# systemctl enable --now corosync-qnetd
    
  2. pvecm status 명령어를 사용해서 Cluster 의 현재 상태를 먼저 확인해 보겠습니다. two nodes로 구성된 클러스터입니다.
    root@node1:~# pvecm status
    Cluster information
    -------------------
    Name:             kvmcluster
    Config Version:   2
    Transport:        knet
    Secure auth:      on
    
    Quorum information
    ------------------
    Date:             Tue Feb 18 10:26:46 2025
    Quorum provider:  corosync_votequorum
    Nodes:            2
    Node ID:          0x00000001
    Ring ID:          1.12
    Quorate:          Yes
    
    Votequorum information
    ----------------------
    Expected votes:   2
    Highest expected: 2
    Total votes:      2
    Quorum:           2  
    Flags:            Quorate 
    
    Membership information
    ----------------------
        Nodeid      Votes Name
    0x00000001          1 192.168.100.141 (local)
    0x00000002          1 192.168.100.142
    
  3. node1과 node2에서 각각 QNetd 패키지와 QDevice 패키지를 설치하고 실행합니다.
    root@node1:~# apt-get install corosync-qnetd corosync-qdevice -y
    root@node1:~# systemctl enable --now corosync-qnetd
    
    root@node2:~# apt-get install corosync-qnetd corosync-qdevice -y
    root@node2:~# systemctl enable --now corosync-qnetd
    
  4. node1에서 QDevice를 설정해 보겠습니다. 58.xxx.xxx.143는 Debian Linux의 IP address 입니다.
    $ root@node1:~# pvecm qdevice setup 58.xxx.xxx.143
    /bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    <!--more-->
    Reloading corosync.conf...
    Done
    
  5. pvecm status 명령어를 사용해서 Cluster의 상태를 다시 확인해 보겠습니다. QDevice가 추가된 것을 확인하실 수 있습니다.
    root@node1:~# pvecm status
    Cluster information
    -------------------
    Name:             kvmcluster
    Config Version:   3
    Transport:        knet
    Secure auth:      on
    
    Quorum information
    ------------------
    Date:             Tue Feb 18 10:32:21 2025
    Quorum provider:  corosync_votequorum
    Nodes:            2
    Node ID:          0x00000002
    Ring ID:          1.12
    Quorate:          Yes
    
    Votequorum information
    ----------------------
    Expected votes:   3
    Highest expected: 3
    Total votes:      3
    Quorum:           2  
    Flags:            Quorate Qdevice 
    
    Membership information
    ----------------------
        Nodeid      Votes    Qdevice Name
    0x00000001          1    A,V,NMW 192.168.100.141 (local)
    0x00000002          1    A,V,NMW 192.168.100.142 
    0x00000000          1            Qdevice
    

You may also like...

답글 남기기

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