[S.Li.P] Clustering di 2 server per vm

Marco Lim marco.lisciandrello a gmail.com
Mar 9 Lug 2019 14:10:00 CEST


Grazie a tutti per i consigli, grazie Lucio soprattutto per la spiegazione
teorica.

>Escludiamo quindi definitivamente il cluster HPC

L'esclusione del cluster HPC, credo di averla capita. Il mio obbiettivo era
quello di avere risorse di memoria RAM di un server sommate a quelle
dell'altro (così come anche le potenze di calcolo dei processori), ma da
quello che ho capito se non si usa HPC, non si può fare. Avevo individuato
PVM [1], ma a questo punto sarà da percorrere la strada "ortogonalmente
opposta" di HA.

>Se vuoi sommare lo spazio su disco di dischi fisicamente installati in
server diversi, la strada si chiama SAN (Storage Area Network). Una SAN è
una rappresentazione virtuale, utilizzabile attraverso la rete, di uno
spazio di archiviazione (storage). Uno dei >possibili protocolli per
implementare una SAN è iSCSI (con la "i" davanti come se fosse un prodotto
Apple, ma non lo è).
>Una volta realizzata la SAN iSCSI, per esempio con una macchina virtuale
per ognuno dei due server fisici, dovrai metterci sopra un filesystem
(formattarla con LVM+ext4, btrfs o simili per intendersi). Anche per questo
serve un'apposita macchina virtuale. >Dovrai poi pubblicare lo stesso
filesystem attraverso un opportuno protocollo di rete: scegli GFS2 di
RedHat se vuoi fare le cose in grande, oppure pubblica semplicemente via
NFS se non vuoi diventare vecchio prima di aver raggiunto il tuo scopo.
>Arrivato qui avrai la macchina virtuale appena citata che condivide in
rete un filesystem, per esempio via NFS, il cui spazio è la somma degli
spazi delle partizioni dei singoli dischi sui singoli server che avevi
deciso di dedicare al volume unico condiviso. >Naturalmente se vuoi che
tutto ciò sia anche affidabile oltre che figo a raccontarsi, i singoli
dischi dei singoli server dovrebbero essere messi in RAID, ma per imparare
non è necessario

Quello che avevo intenzione di fare era proprio quello hai descritto, però
non sapevo dove installare la SAN con iSCSI se sull'OS della macchina
fisica (debian) di entrambi i server o creare una macchina virtuale (per
entrambi i server) dove al suo interno ci sarà l'iSCSI installato. a quel
punto installare il filesystem NFS, ma dove vm o macchina fisica?

>Detta così e considerando che lo scopo è imparare, suggerisco di non usare
nessun software specifico per ora, ma di usare solo KVM e libvirt, con i
rispettivi comandi da terminale. Impari i concetti base e, chiariti quelli,
sarà poi semplice anche per te >scegliere il software che meglio si adatta
alle esigenze reali di quello che eventualmente andrai a fare con quanto
avrai imparato.

Lo scopo è didattico ovviamente, quindi usare KVM con virsh o VM Manager
ecc..., sono d'accordo. però magari bisogna attaccare qualche altro
applicativo per gestire il resto (Cluster ecc??) che mi sfugge...
Tra le ricerche avevo anche trovato PROMOX VE [2] che mi aveva già
consigliato Davide che forse risponde al quesito.

intanto provo a mettere due dati, così magari si capisce di cosa si sto
parlando:

Server1:
HP Proliant DL360 G5
2 x Quad-Core Intel Xeon Processor L5420 (2.50 GHz, 50 Watts, 1333 FSB)
64GB di RAM
4 HDD da 500GB in RAID 1+0 (1,5TB) (il raid l'ho impostato così ma non è
vincolante) con Smart Array E200
OS macchina fisica: debian buster 10.0


Server2:
HP Proliant DL380 G5
2 x Quad-Core Intel Xeon Processor E5410 (2.33 GHz, 80 Watts, 1333 FSB)
64GB di RAM
2 HDD da 72GB in RAID 0 (140 GB) con Smart Array P400
OS Macchina fisica: debian buster 10.0

Virtual Machine:
VM1, VM2, VMx... che siano gestibili indipendentemente da quale server vado
chiamare, una specie di namespace unico

spero che sia un pò più chiaro, scusate ma non mi è facile spiegare quello
che vorrei fare.

Grazie in anticipo.



[1]http://guide.debianizzati.org/index.php/Clustering_con_PVM
[2]https://pve.proxmox.com/wiki/Main_Page

On Tue, Jul 9, 2019 at 11:51 AM Lucio Crusca via SLiP <
slip a liszt.softwareliberopinerolo.org> wrote:

> Il 08/07/19 23:11, Marco Lim ha scritto:
> > Grazie della risposta, in realtà la cosa servirebbe in primis a capire
> come installare un sistema di cluster (sicuramente non per livello
> professionale, ma puramente didattico).
>
> Il problema è che la parola "cluster" è troppo generica per andare in
> cerca di un software specifico, perché come dicevo ci sono diversi tipi di
> cluster che contemplano soluzioni software completamente diverse fra loro.
>
> > Per quanto riguarda l'utilizzo sarebbe quello di avere la potenza ma
> soprattutto le risorse  dei servers come se fosse uno solo.
>
> Per capirci, introduco un po' di teoria. Possiamo distinguere le risorse
> dei server in due categorie: risorse pre-rilasciabili, preemptible in
> inglese, (tempo di CPU, memoria RAM) e risorse non pre-rilasciabili (files
> su disco, canali di comunicazione, stampanti e periferiche in generale).
>
> Le risorse preemptible possono essere temporaneamente sottratte ad un
> programma in esecuzione, mettendolo prima in pausa, senza che questo se ne
> accorga: quando il programma viene fatto ripartire, prima di tutto il
> sistema operativo (Linux) dedica di nuovo a lui le risorse che gli aveva
> sottratto quando lo aveva messo in pausa.
>
> Le risorse non preemptible, se venissero sottratte durante l'esecuzione ad
> un programma, non potrebbero essere più riassegnate al programma nello
> stesso stato in cui si trovavano quando gli sono state sottratte e di
> conseguenza non si possono togliere al programma nemmeno mettendolo in
> pausa: se altri programmi necessitano di una di queste risorse, sono
> costretti a mettersi in coda ed attendere che il programma che la sta
> usando termini.
>
> Le risorse preemptible tipicamente determinano la potenza di calcolo
> massima del server. Le risorse non preemptible costituiscono gli anelli
> deboli della catena.
>
> Un cluster può esistere per UNO di due motivi: sommare fra loro le risorse
> preemptible, ottenendo maggior potenza di calcolo complessiva, oppure
> rendere più affidabili, attraverso la ridondanza, quelle non preemptible,
> ottenendo anelli deboli della catena che sono meno deboli. Purtroppo questi
> due obiettivi sono ortogonali fra loro, cioè remano in direzioni diverse. È
> sicuramente possibile creare un cluster che sia allo stesso tempo
> affidabile e potente (quasi) come la somma dei server che lo compongono, ma
> è una cosa che non interessa a nessuno, perché quel "quasi" diventa tanto
> più grande quanto meno ci si focalizza su uno solo dei due obiettivi.
> Esistono quindi software specifici per risolvere l'una o l'altra
> problematica, ma non entrambe nello stesso momento.
>
> > Servirebbe per creare una specie di laboratorio virtuale di PC dove
> installare vari OS e vari applicativi.
>
> Escludiamo quindi definitivamente il cluster HPC, che comunque, a fini
> puramente didattici, potrai poi installare successivamente creando macchine
> virtuali apposite (ma tieni conto che nel caso reale non si fa mai con le
> macchine virtuali).
>
> Detta così e considerando che lo scopo è imparare, suggerisco di non usare
> nessun software specifico per ora, ma di usare solo KVM e libvirt, con i
> rispettivi comandi da terminale. Impari i concetti base e, chiariti quelli,
> sarà poi semplice anche per te scegliere il software che meglio si adatta
> alle esigenze reali di quello che eventualmente andrai a fare con quanto
> avrai imparato.
>
> Se vuoi sommare lo spazio su disco di dischi fisicamente installati in
> server diversi, la strada si chiama SAN (Storage Area Network). Una SAN è
> una rappresentazione virtuale, utilizzabile attraverso la rete, di uno
> spazio di archiviazione (storage). Uno dei possibili protocolli per
> implementare una SAN è iSCSI (con la "i" davanti come se fosse un prodotto
> Apple, ma non lo è).
>
> Una volta realizzata la SAN iSCSI, per esempio con una macchina virtuale
> per ognuno dei due server fisici, dovrai metterci sopra un filesystem
> (formattarla con LVM+ext4, btrfs o simili per intendersi). Anche per questo
> serve un'apposita macchina virtuale. Dovrai poi pubblicare lo stesso
> filesystem attraverso un opportuno protocollo di rete: scegli GFS2 di
> RedHat se vuoi fare le cose in grande, oppure pubblica semplicemente via
> NFS se non vuoi diventare vecchio prima di aver raggiunto il tuo scopo.
>
> Arrivato qui avrai la macchina virtuale appena citata che condivide in
> rete un filesystem, per esempio via NFS, il cui spazio è la somma degli
> spazi delle partizioni dei singoli dischi sui singoli server che avevi
> deciso di dedicare al volume unico condiviso. Naturalmente se vuoi che
> tutto ciò sia anche affidabile oltre che figo a raccontarsi, i singoli
> dischi dei singoli server dovrebbero essere messi in RAID, ma per imparare
> non è necessario.
>
> Da qui in avanti puoi iniziare a creare macchine viruali che vivono sul
> filesystem condiviso via NFS (ovvero il cui hard disk virtuale è
> semplicemente un file che risiede su quel filesystem) e che quindi possono
> essere migrate da un server fisico all'altro anche mentre sono accese (con
> opportuni comandi di libvirt).
>
> Essendo tutto virtuale, avrai comunque un problema di dipendenze, ovvero
> dovrai fare in modo (attraverso uno script per esempio) che i server fisici
> prima di tutto facciano partire le macchine virtuali della SAN, poi montino
> il volume NFS e solo allora facciano partire le altre macchine virtuali del
> tuo laboratorio, perché prima di allora saranno inaccessibili.
>
> --
> SLiP mailing list
> SLiP a liszt.softwareliberopinerolo.org
> https://liszt.softwareliberopinerolo.org/listinfo/slip
>


-- 
Marco LIM

Please don't print this message!!
3R
Reuse, Reduce, Recycle!!!!
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://liszt.softwareliberopinerolo.org/pipermail/slip/attachments/20190709/ad072fef/attachment.html>


Maggiori informazioni sulla lista SLiP