Infrastruttura iperconvergente
Sono passate poche settimane dalla pubblicazione di questa immagine su twitter e da allora sono stato contattato da molte persone per avere maggiori informazioni sulle infrastrutture iperconvergenti.
Infrastrutture hyper..cosa?
Con il termine “iperconvergente” andiamo a definire un’infrastruttura IT che sposta l’attenzione dall’hardware al software e condensa le risorse di elaborazione, storage e rete in un sistema unificato. Un’infrastruttura iperconvergente è costituita da risorse di elaborazione (macchine virtuali) gestite tramite hypervisor, storage software e connettività di rete; il tutto (spesso) gestito da una singola interfaccia.
In soldoni, andiamo a sostituire delle componenti hardware quali SAN, orchestratori, ecc con componenti software. Un esempio di questo approccio è ben incarnato da Proxmox Virtual Environment che mette a disposizione dell’utente un’interfaccia centralizzata per la gestione del cluster a 360°.
Anche di Proxmox abbiamo già parlato, ma oggi capiremo come progettare un’infrastruttura iperconvergente utilizzando solo software FLOSS.
I vantaggi ?
L’infrastruttura iperconvergente è vantaggiosa sicuramente per i deployment in piccoli datacenter e in cloud privati, per ambienti di test o per le applicazioni di edge computing. Ecco alcuni vantaggi di un’infrastruttura iperconvergente:
- costo ridotto - le infrastrutture iperconvergenti sono in genere più economiche, perché vengono eseguite su server commerciali standard e non su appliance specializzate. Hanno inoltre un footprint ridotto, poiché più funzioni possono essere eseguite su un singolo server. A fronte di una riduzione dell’hardware fisico necessario, si ottengono un consolidamento delle risorse, minore spazio e consumi ridotti con un risparmio sui costi complessivi;
- scalabilità e flessibilità aumentate - l’iperconvergenza consente di espandere le risorse di elaborazione, storage e rete in funzione delle esigenze del momento, senza dover ricorrere all’acquisto di componenti hardware proprietari, conferendo quindi una notevole flessibilità;
- gestione semplificata - otteniamo un’infrastruttura complessivamente più facile da utilizzare e gestire anche da esperti IT non necessariamente specializzati su tutte le componenti in gioco.
Progetto
Per poter avere un cluster in alta affidabilità prenderemo in considerazione uno scenario composto da 3 nodi; su questi nodi andremo ad installare e configurare Proxmox VE e le altre componenti software necessarie al corretto funzionamento del cluster. Per lo storage ci affideremo a Ceph.
Non volendo avere “single point of failure”, dobbiamo ragionare in termini di ridondanza di tutte le componenti e quindi, nel caso specifico, dobbiamo prevedere una scheda di rete (10G) con almeno due porte e: se vogliamo utilizzare degli switch, prevediamo di inserirne almeno due; se invece optiamo per una rete full mesh collegheremo ogni interfaccia ad un server diverso. Questo ci permetterà di avere una rete dedicata allo storage Ceph.
Una volta risolta la questione della rete per lo storage, dobbiamo pensare alla rete per gestire il cluster e una rete per pubblicare le VM e i servizi in generale. Anche in questo caso dobbiamo prevedere almeno due schede di rete e almeno due switch. Non sarà possibile optare per una rete full mesh in quanto il cluster resterebbe isolato. Se vogliamo essere conservativi, possiamo decidere di avere una rete per la gestione del cluster e una rete per pubblicare le macchine virtuali e i container.
Quindi facendo i conti abbiamo:
- 3 server;
- 2 switch (min 10G);
- 2 switch (min 1G).
Questa è la lista della spesa minima per avere un cluster affidabile da mettere in produzione.
NB: in questo esempio non abbiamo trattato nello specifico le caratteristiche dei server (la quantità e tipologia dei dischi, ram. cpu, alimentatori, ecc) e questa scelta interferisce anche con la parte do networking. Es: se optiamo per l’acquisto di dischi NVME o SSD e decidiamo di gestire la rete con degli switch sarebbe opportuno pensare a switch da 25/40Gbps.
Le variabili in gioco sono davvero tante e non ha senso vagliare in questo post tutte le possibilità. Se la cosa diventa interessante, potrei fare un post dove vediamo passo passo la creazione di un cluster partendo dalle esigenze di un cliente e quindi anche la scelta dell’hardware.
Le opinioni in quanto tali sono opinabili e nulla ti vieta di approfondire l’argomento.
Risorse: