Clúster Proxmox
Contingut
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)
- Node 2:
- Hostname: pxmx2.gsb
- Adreça: 192.168.57.51 (xarxa virtual de només amfitrió de VirtualBox)
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 dades →Clúster.
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.
Una vegada creat, veiem que ja ens surt la informació del clúster: format per un sol node, de moment.
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
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.
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 dades →Emmagatzematge →Afegeix →NFS
Afegirem els 2 shares emplenant els camps amb els valors corresponents per a cada una de les comparticions
Després podem veure que a la informació dels volums d'emmagatzematge, ja hi surten els que hem afegit
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
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ó
Esperarem fins que s'acabi de pujar l'arxiu a la unitat d'emmagatzematge
Un cop pujat, podem veure que apareix la ISO dins del contingut d'aquella unitat
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.
Configurem els paràmetres de recursos com ara disc dur, RAM, CPU...
Una vegada creada, veiem la VM a la llista de "recursos" que pengen del node 1; en aquest cas.
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
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.