Clúster Proxmox

De Lordwektabyte Wiki
Salta a la navegació Salta a la cerca

Out of scope

En aquesta guia no es contempla el procés d'instal·lació del sistema operatiu de Proxmox a les màquines virtuals.

Previ

Aquesta pràctica es farà sense interactuar directament amb la consola del sistema Proxmox; ja sigui perquè es farà l'administració via web o bé connectant per SSH des de l'ordinador amfitrió; de manera que les captures de pantalla que hi hagi no seran de les consoles dels nodes del clúster sinó del client SSH i el navegador web del servidor. Per a no omplir l'escriptori de l'amftirió amb finestres innecessàries, podem iniciar les màquines virtuals sense entorn gràfic i així també estalviem una mica de recursos...

Partirem des del punt que tenim dues màquines amb el SO de Proxmox Virtual Environment instal·lat; corresponent als 2 nodes que conformaran el clúster:

  • Node 1:
Hostname: pxmx1.gsb
Adreça: 192.168.57.50 (xarxa virtual de només amfitrió de VirtualBox)
M11UF4EX11.png


  • Node 2:
Hostname: pxmx2.gsb
Adreça: 192.168.57.51 (xarxa virtual de només amfitrió de VirtualBox)
M11UF4EX12.png



Nota: sempre que ens referim a la web GUI dels nodes, ens referirem a accedir per navegador web a l'adreça del node en concret pel port 8006 (per defecte) mitjançant HTTPS.


Després de la instal·lació i el primer inici de les màquines, entrarem per SSH i editarem l'arxiu /etc/hosts per tal de fer-hi constar l'adreça IP de l'altre node amb el seu nom de host corresponent; de manera que afegirem els següents registres al fitxer de cada node.

192.168.57.50 pxmx1.gsb pxmx1
192.168.57.51 pxmx2.gsb pxmx2

Procediment

Muntatge del clúster

El primer pas serà des del node 1, per exemple, crear el clúster. Ho farem des de la interfície web des del menú Centre de dadesClúster.

M11UF4EX13.png


Des d'allà, farem clic al botó Create cluster i definirem un nom per al nou clúster. És important que, en el cas de diversos clústers en una mateixa xarxa, no hi hagi noms duplicats ja que crearien un conflicte.

M11UF4EX14.png


Una vegada creat, veiem que ja ens surt la informació del clúster: format per un sol node, de moment.

M11UF4EX15.png


Ara necessitarem saber la informació del clúster per a afegir-hi pxmx2. Farem clic a Join Information i copiarem el text del camp necessari amb el botó Copy Information

M11UF4EX16.png


Després, accedirem per la web al node 2 i anirem al mateix apartat de Clúster però farem clic a Join cluster i enganxarem la informació que ens ha donat el node 1, i introduirem la contrasenya de l'usuari root del node 1 per a poder-nos autenticar i afegir-se al clúster.

M11UF4EX17.png


Des del node 2, veiem que el cluster està format per pxmx1 i pxmx2


Compartició NFS

Passos previs

Per a aquest apartat, necessitarem tenir funcionant un servidor NFS. Podríem optar per a utilitzar el mateix ordinador amfitrió com a servidor NFS però per a emular una xarxa SAN, instal·laré un servidor NFS sobre una màquina virtual amb Debian 9 i la posaré a la mateixa xarxa que els 2 nodes Proxmox.

Tampoc contemplaré la instal·lació del SO sinó que partiré de la premisa que ja està instal·lat i es documentaran els passos per posar a punt el servei NFS en aquest SO. De la mateixa manera que s'ha estipulat abans, l'administració es farà a través de SSH de manera que tampoc hi haurà captures de pantalla del procediment sinó la llista d'ordres que introduirem a la consola.

Tal com als nodes, haurem d'editar l'arxiu /etc/hosts per a fer-hi constar la relació de noms de host amb les corresponents adreces IP:

192.168.57.50   pxmx1.gsb pxmx1
192.168.57.51   pxmx2.gsb pxmx2
192.168.57.52   nfs.gsb nfs

Haurem d'editar l'arxiu /etc/interfaces per a assignar una adreça IP estàtica a la interfície virtual de la xarxa "només amfitrió" de VirtualBox

allow-hotplug enp0s8
iface enp0s8 inet static
        address 192.168.57.52
        netmask 255.255.255.0
        network 192.168.57.0
        broadcast 192.168.57.255
        gateway 192.168.57.1

Aixecaré la interfície amb ifup enp0s8 i a partir d'aquí, l'administració es farà per SSH des de l'amfitrió.

Procediment

Instal·larem el servidor NFS

apt-get install nfs-kernel-server nfs-common

Crearem el directori que voldrem compartir (exportar); per exemple /srv/iso i /srv/vdisk

mkdir /srv/iso
mkdir /srv/vdisk

Canviarem els permisos perquè tothom pugui accedir-hi amb permisos de lectura i escriptura

chown nobody:nogroup /srv/iso
chown nobody:nogroup /srv/vdisk
chmod 755 /srv/iso
chmod 755 /srv/vdisk

Després editarem l'arxiu /etc/exports per a configurar-hi les rutes que volem compartir mitjançant NFS per la xarxa on hi ha els nodes de Proxmox

/srv/iso 192.168.57.0/24(rw,no_subtree_check,async,no_root_squash)
/srv/vdisk 192.168.57.0/24(rw,no_subtree_check,async,no_root_squash)

Podem comprovar que s'estiguin compartint amb la comanda següent

root@nfs:~# showmount -e nfs


Export list for nfs:
/srv/vdisk 192.168.57.0/24
/srv/iso   192.168.57.0/24

El pas següent és afegir aquestes comparticions com a unitats d'emmagatzematge per al cluster de Proxmox. Des de l'apartat Centre de dadesEmmagatzematgeAfegeixNFS

M11UF4EX19.png


Afegirem els 2 shares emplenant els camps amb els valors corresponents per a cada una de les comparticions

Compartició per a les imatges ISO


Compartició per a les imatges de Disc


Després podem veure que a la informació dels volums d'emmagatzematge, ja hi surten els que hem afegit

M11UF4EX112.png


Creació d'una nova màquina virtual

Per a crear una nova MV a Proxmox necessitarem carregar una imatge ISO del sistema operatiu que volguem instal·lar. En aquest cas, faré l'exemple amb CentOS 7 perquè és una ISO relativament petita i servirà per a fer un exemple que sigui il·lustratiu.

Importació ISO

Des de qualsevol dels 2 nodes que pengen del Centre de dades, obrirem el volum d'emmagatzematge que hem importat des del servidor NFS per a les ISOs

M11UF4EX113.png


Llavors, al requadre informatiu de la dreta, clicarem Contingut i farem clic a Carrega per a pujar un nou fitxer ISO des del nostre ordinador amfitrió

M11UF4EX114.png


Esperarem fins que s'acabi de pujar l'arxiu a la unitat d'emmagatzematge

M11UF4EX115.png


Un cop pujat, podem veure que apareix la ISO dins del contingut d'aquella unitat

Nota: aquest cop accedeixo des de l'emmagatzematge del node 2 i, efectivament, també hi ha accés perquè està compartit al cluster


Màquina virtual

Per a crear una nova màquina, ara que ja tenim la imatge ISO per a instal·lar el sistema, ho farem des del botó de dalt a la dreta: Crea VM i seguirem l'assistent per a assignar els diferents paràmetres i recursos a la nova MV.

Escollim primer un nom per a la màquina i en quin node del cluster situar-la


Triem quina imatge ISO volem arrencar


Configurem els paràmetres de recursos com ara disc dur, RAM, CPU...

Triem els paràmetres d'emmagatzematge de disc dur...


Una vegada creada, veiem la VM a la llista de "recursos" que pengen del node 1; en aquest cas.

M11UF4EX120.png



Nota: és important deshabilitar el KVM de la màquina virtual si estem virtualitzant el Proxmox mateix; ja que el suport KVM de l'amfitrió original (Fedora) no es reporta com a tal a les màquines virtuals dins dels nodes Proxmox ja que són màquines virtuals també


En acabar, farem clic dret i clicarem Inicia

Podem accedir a la consola de la màquina des de la mateixa Web GUI del Proxmox


Conclusions

  • L'entorn de Proxmox VE és una alternativa open-source i totalment vàlida per a oferir serveis virtualitzats a l'estil de ESXi de VMWare. Tot i que el rendiment, en comparació, pot ésser inferior al tractar-se d'un hipervisor de nivell 2 en comparació a ESXi que és de nivell 1, pot ser suficient per a muntar un laboratori de proves a casa per a poder executar diferents serveis i practicar amb ells podent prescindir de VirtualBox també, que queda a un nivell inferior.
  • Les opcions de monitorització que ofereix Proxmox són bastant equiparables a altres sistemes de pagament; de manera que tampoc fa falta pagar llicències de programari propietari per a poder tenir sota control el nostre servidor de virtualització.
  • Tot i ser una contrapartida ser un hipervisor de nivell 2, és un avantatge saber que per sota del sistema Proxmox existeix el Debian; de manera que podem encara donar un quart més de volta i poder-ho explotar al nivell que volguem tenint coneixements de Linux i, per exemple, muntar un clúster de nodes a través d'un túnel VPN que el mateix SO Debian posi en marxa a l'arrencada del sistema. D'aquesta manera podem tenir una infraestructura de virtualització molt propera al que seria un DFS (Distributed File System) o, si més no, un pseudo CPD (centre de processament de dades) distribuït entre localitzacions geogràfiques diferents.


Proxmox com a tal, és potent en un muntatge de clúster perquè:

  • Permet migracions de màquines virtuals entre nodes a mode on-the-fly sense necessitat d'aturar o suspendre-les; mantenint d'aquesta manera la disponibilitat.
  • Capacitat per a poder automatitzar tasques de backup, replicació, snapshots de màquines...
  • Possibilitat de convertir una màquiana virtual en template per a usar-la com a plantilla per a desenvolupar-ne d'altres. Aquesta funcionalitat supera amb escreix els clons enllaçats que podríem fer amb VirtualBox, per exemple. És interessant per tenir una imatge d'una màquina virtual base des de la qual es pugui fer una còpia i poder desenvolupar amb menys temps una màquina per a un altre servei sense necessitat de crear una nova màquina i reinstal·lar i configurar de nou el SO que volguem.
  • Referent a l'optimització de recursos usats en la màquina física, és interessant l'assignació dinàmica de RAM en funció de les necessitats de cada màquina virtual: el kernel Linux 3.x conté el mòdul de memory ballooning requerit per a poder-ho fer, mentre que Windows necessita drivers de tercers. Aquesta funcionalitat permet definir un màxim de RAM assignada a cada màquina, però si aquesta no la necessita tota, en un moment donat, la pot alliberar en favor de l'hipervisor perquè pugui ser assignada a una altra MV que sí la requereixi per canvis de càrrega de treball.


A més a més, encara que no s'hagi tractat en aquest manual, Proxmox també permet crear serveis containeritzats a l'estil Docker; encara que la tecnologia de darrere no sigui docker sinó LXC (Linux Container). Això permet optimitzar els recursos en el sentit que no necessitem crear màquines virtuals senceres sinó que ens pot servir basar-nos en un paradigma de micro-serveis.