Tworzenie klastra wirtualizacyjnego Proxmox VE

Avatar photo
  • Konrad Kowalski
  • 26/02/2018
  • Proxmox VE
  • 4 komentarze
Proxmox VE

Proxmox VE umożliwia łączenie pojedynczych serwerów w grupy tzw. klaster serwerowy. Budowa klastra w Proxmox VE nie jest skomplikowaną czynnością. Wszystkie operacji można dokonać z poziomu konsoli serwera za pomocą dedykowanego narzędzia pvecm (Proxmox VE Cluster Manager).

Co daje budowa klastra serwerowego w Proxmox VE ?

  • Centralny punkt zarządzania klastrem – zarządzanie serwerami fizycznymi, maszynami wirtualnymi itp. z jednego miejsca (np. w WebUI). W przypadku posiadania kilku serwerów Proxmox nie trzeba się logować na każdy z nich oddzielnie w celu np. włączenia czy wyłączenia VM – wszystko widoczne jest z jednego miejsca.
  • Multi-master klaster – Z dowolnego serwera w klastrze można zarządzać całym klastrem (nie ma jednego głównego serwera, od którego wszystko zależy).
  • pmxcfs – specjalny system plików Proxmox służący do przechowywania konfiguracji, która jest replikowana w czasie rzeczywistym na pozostałe serwery w klastrze (używany jest do tego celu corosync)
  • Migracja maszyn wirtualnych między serwerami w klastrze – prosta i szybka migracja offline lub LiveMigrate
  • Usługi klastrowe – możliwość konfiguracji wysokiej dostępności (HA), globalnych zasad firewalla, centralne zarządzanie użytkownikami oraz przepisywanie im uprawnień do całego klastra itp.

Jakie wymagania trzeba spełnić aby utworzyć klaster Proxmox VE ?

  • Wszystkie serwery w klastrze powinny być w jednej sieci i mieć możliwość komunikacji między sobą (corosync używa do komunikacji IP Multicast)
  • Na serwerach w klastrze należy dbać o synchronizację daty i czasu
  • Do komunikacji miedzy serwerami zestawiany jest tunel SSH, należy zezwolić na taką komunikację miedzy serwerami Proxmox
  • W celu aktywacji i korzystania z funkcji wysokiej dostępności należy posiadać w klastrze co najmniej trzy serwery w takiej samej wersji Proxmox VE
  • Do komunikacji klastrowej zalecane jest używanie dedykowanej karty sieciowej (nie powinno się używać jednego interfejsu sieciowego do prowadzenia komunikacji wewnątrz klastrowej/zarządzającej i jednoczesnego używania go do wypuszczania ruchu z maszyn wirtualnych czy łączenia z systemami storage, opóźnienia i obciążenie łącza może doprowadzić do problemów z działaniem klastra)

Tworzenie klastra Proxmox VE

Po zainstalowaniu Proxmox VE na wybranych serwerach należy skonfigurować na nich ostateczne ustawienia sieci tj. adresacja IP, hostname itp. Zmiana tych parametrów po utworzeniu klastra nie będzie możliwa.

Po wykonaniu tych czynności należy zalogować się na jeden z serwerów, który będzie członkiem nowego klastra. Ważna uwaga: Klaster można utworzyć na serwerze, który posiada już maszyny wirtualne – ale każdy kolejny serwer dołączany do klastra nie może ich zawierać. Po dołączeniu do klastra kolejnego serwera z VM straciłby on swoją konfigurację, która zostałaby nadpisana nową, pobraną z serwerów, które są już w klastrze.

W celu utworzenia klastra należy użyć polecenia pvecm create:

root@pve9:~# pvecm create NAZWA-KLASTRA
Corosync Cluster Engine Authentication key generator.
Gathering 1024 bits for key from /dev/urandom.
Writing corosync key to /etc/corosync/authkey.

Aby sprawdzić status klastra można skorzystać z polecenia pvecm status

root@pve9:~# pvecm status
Quorum information
------------------
Date:             Fri Feb  9 13:08:01 2018
Quorum provider:  corosync_votequorum
Nodes:            1
Node ID:          0x00000001
Ring ID:          1/4
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   1
Highest expected: 1
Total votes:      1
Quorum:           1  
Flags:            Quorate 

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 192.168.8.26 (local)

Status klastra wyświetlany jest również w WebUI

proxmox klaster health

Aby wyświetlić serwery w klastrze należy użyć polecenia pvecm nodes

root@pve9:~# pvecm nodes

Membership information
----------------------
    Nodeid      Votes Name
         1          1 pve9 (local)

Klaster Proxmox VE – dodawanie nowego serwera

Aby dodać kolejny nowy serwer Proxmox do klastra należy zalogować się na serwer Proxmox, który ma zostać dodany do klastra a następnie użyć polecenia pvecm add

pvecm add ADRES-IP-SERWERA-KTÓRY-JEST-JUŻ-W-KLASTRZE

Należy pamiętać aby dodawać nowe serwery bez maszyn wirtualnych, gdyż podczas dodawania serwera do klastra zostanie utracona ich konfiguracja. Podczas dodawania nowego serwera do klastra zostanie nawiązane połączenie SSH do serwera w istniejącym klastrze – należy zaakceptować chęć nawiązania połączenia oraz podać hasło użytkownika root serwera do którego nawiązywane jest połączenie.

pvecm add 192.168.8.26

The authenticity of host '192.168.8.26 (192.168.8.26)' can't be established.
ECDSA key fingerprint is SHA256:123456789abcdefghijklmnoprstuwzxyjs012345w.
Are you sure you want to continue connecting (yes/no)? yes
[email protected]'s password: 
copy corosync auth key
stopping pve-cluster service
backup old database
waiting for quorum...OK
generating node certificates
merge known_hosts file
restart services
successfully added node 'pve8' to cluster.

Jeśli wszystko przebiegło poprawnie serwer powinien zostać dodany do klastra Proxmox VE. Pvecm raportuje obecność dwóch serwerów w klastrze.

root@pve9:~# pvecm status
Quorum information
------------------
Date:             Fri Feb  9 13:55:00 2018
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000001
Ring ID:          2/8
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           2  
Flags:            Quorate 

Membership information
----------------------
    Nodeid      Votes Name
0x00000002          1 192.168.8.25
0x00000001          1 192.168.8.26 (local)

Pvecm nodes również wyświetla obecność dwóch serwerów w klastrze.

root@pve9:~# pvecm nodes

Membership information
----------------------
    Nodeid      Votes Name
         2          1 pve8
         1          1 pve9 (local)

Status w WebUI:

proxmox kluster 2

Od tej chwili wszystkie VM powinny być widoczne z jednego miejsca w widoku Datacenter. Kolejne serwery można dodawać w sposób analogiczny jak opisano w artykule.

Warto przeczytać

4 komentarze

Możesz dodawać komentarze do tego artykułu.


  • Witam, mam takie pytanie: czy instalację certyfikatów ssl przeprowadzić przed tworzeniem klastra czy można grzebać w ssl później?

    Bartosz Wierzejewski 7 lat ago Reply


  • przy próbie tworzenia clastra nie wyskoczył błąd jednak przy próbie sprawdzenia: pvecm status
    Cannot initialize CMAP service
    natomiast przy uruchomieniu jakiegokolwiek vm wywala błąd: claster not ready – no quorum (500),

    Da się przywrócić w normalny sposób do standalone node ? Czy trzeba przeinstalowywać proxmoxa ?

    Dariusz 7 lat ago Reply


  • Sam sobie odpowiem:

    błędne ustawienie hosts (niezgadzały się wpisy w hosts z adresami IP),
    poprawa w corosync.conf również adresy IP
    potem: service corosync restart
    i działa jako klaster 🙂

    Dariusz 7 lat ago Reply


Dodaj komentarz