Differenza tra bare-metal cloud e Metal As A Service (MAAS)

Differenza tra bare-metal cloud e Metal As A Service (MAAS)

Bare-metal cloud

Un servizio di bare-metal cloud permette di installare o reinstallare un determinato sistema operativo su macchine fisiche, in maniera totalmente automatica e senza interventi manuali sull’hardware.

I bare-metal cloud ricadono nella categoria IaaS (Infrastructure as a Service), poiché permettono di richiedere risorse base, cioè di elaborazione, memoria e rete, sulle quali il cliente potrà eseguire un qualsiasi software. La caratteristica principale che contraddistingue questo tipo di cloud è la natura fisica, e non virtuale, delle risorse richiedibili.

La possibilità di richiedere server fisici, invece di macchine virtuali, porta ad alcuni vantaggi, che, in determinati ambiti, potrebbero essere notevolmente importanti:

  • la possibilità di eseguire il software direttamente sulla macchina fisica elimina completamente l’overhead legato alla virtualizzazione. Questa caratteristica potrebbe essere molto utile per tutte quelle tipologie di software che hanno esigenze prestazionali molto elevate;
  • le tecniche di virtualizzazione mascherano l’hardware fisico con un hardware In alcuni contesti, le applicazioni potrebbero richiedere di accedere direttamente all’hardware fisico. La possibilità di richiedere una macchina fisica risolve questo problema. In realtà, alcune tecnologie di virtualizzazione permettono di assegnare il completo controllo di un dispositivo fisico ad una macchina virtuale; tale tecnica è chiamata device passthrough, ma l’hardware e l’hypervisor devono supportarla;
  • la possibilità di allocare una macchina fisica permette di assegnare l’intero hardware ad una determinata Poiché l’hardware non è più condiviso, viene eliminata la possibilità che applicazioni differenti, in esecuzione sulle proprie macchine virtuali, interferiscano tra loro. Per questo, anche l’isolamento tra i vari utenti e le loro applicazioni è migliorato.

Naturalmente, gestire delle macchine fisiche è più complesso rispetto alla gestione di macchine virtuali. Per questo, una soluzione di questo tipo dovrebbe essere adottata solamente per specifici ambiti. Alcuni delle principali problematiche sono:

  • impossibilità di migrare una determinata macchina da una locazione all’altra, come invece può avvenire nel contesto delle macchine virtuali, che possono essere spostate facilmente da un host all’altro;
  • l’hardware, non essendo virtualizzato, potrebbe presentare alcune differenze tra le varie macchine, provocando, potenzialmente, dei problemi al momento del deployment del software. Inoltre, tale differenza, potrebbe compromettere la possibilità di utilizzare immagini preinstallate;
  • salvare lo stato di una macchina fisica, per effettuare operazioni di backup e ripristino, è molto più complesso;
  • l’hardware, non essendo condiviso, potrebbe essere non sfruttato appieno.

In realtà, questi ultimi problemi elencati, potrebbero essere attenuati dal software di bare-metal cloud utilizzato, o dal software che verrà installato sulle varie macchine fisiche.

In generale, i software per la realizzazione di un bare-metal cloud prevedono la presenza di uno o più nodi di gestione, denominati controller, che offriranno il servizio di allocazione on demand delle macchine fisiche, gestendo il processo di installazione e configurazione. Solitamente, tali controller, alla richiesta di allocazione di una nuova macchina, operano nella seguente modalità:

  1. il controller sceglie una delle possibili macchine, non ancora allocate, che rispetti gli eventuali vincoli della richiesta;
  2. il controller avvia un server DHCP (Dynamic Host Configuration Protocol) per fornire un indirizzo IP alla macchina, ed un server TFTP (Trivial File Transfer Protocol) o HTTP per fornirgli i file di boot;
  3. la macchina viene avviata, costringendo il firmware ad effettuare un boot da rete PXE (Preboot Execution Environment); questo solitamente avviene attraverso specifiche tecnologie che ne permettono l’avvio e la gestione da remoto;
  4. la macchina acquisisce quindi un indirizzo di rete e l’indirizzo del server TFTP, da cui scaricherà i vari file di boot; tali file avvieranno il processo di installazione del sistema operativo su uno dei dischi fisici;
  5. la macchina viene dunque riavviata, avviando il sistema operativo appena installato;
  6. infine, viene avviato il processo di configurazione del sistema operativo, attraverso degli strumenti di configurazione automatica.

Differenza tra bare-metal cloud e Metal As A Service (MAAS)

MAAS (Metal As A Service)

Con il termine MAAS (Metal As A Service) si indica un software che permette l’installazione e la configurazione automatica di macchine fisiche, realizzato da Canonical Ltd., la stessa società che gestisce la distribuzione Linux Ubuntu. In generale, MAAS permette di gestire un insieme di macchine fisiche in maniera analoga a come un hypervisor o un servizio cloud gestisce le proprie macchine virtuali: è possibile effettuare il deployment o la distruzione di macchine come se fossero ospitate, ad esempio, su un servizio cloud pubblico, come Amazon AWS, Google GCE, o Microsoft Azure.

MAAS integra al suo interno un insieme di servizi, tra cui un’interfaccia Web, un insieme di API (Application Programming Interface), una CLI (Command Line Interface), un ambiente di boot PXE (Preboot Execution Environment), un sistema di gestione delle immagini dei sistemi operativi ed un insieme di script di configurazione, che permettono all’amministratore di gestire, in maniera semplice e veloce, l’installazione e la configurazione di un determinato sistema operativo su un insieme di macchine fisiche. In realtà, MAAS è in grado di gestire anche macchine virtuali, analogamente a come gestisce quelle fisiche; purché queste possano effettuare il boot di rete tramite PXE.

Principali tecnologie

MAAS, per poter installare e configurare le varie macchine da remoto, senza la necessità di dover preinstallare del software su di esse, utilizza varie tecnologie. Le principali, sono:

  1. PXE (Preboot Execution Environment): consiste in una modalità standard per permettere, a client che supportano PXE, il boot di un software, che potrebbe essere un sistema operativo, attraverso la rete. Tali file vengono forniti da un server, che può gestire il boot di più client. L’unico requisito che il client deve soddisfare è quello di possedere una scheda di rete abilitata per il PXE, che sia utilizzabile dal firmware presente su quel sistema. PXE si basa su due protocolli standard, DHCP (Dynamic Host Configuration Protocol) per l’assegnazione dell’indirizzo di rete e TFTP (Trivial File Transfer Protocol) per lo scambio dei file di boot. UEFI supporta PXE, per cui, un client con tale firmware, sarà abilitato al suo utilizzo.
  2. BMC (Baseboard Management Controller): PXE permette di avviare del software su una macchina senza sistema operativo. Permane, però, il problema, su come controllare, da remoto, l’accensione e lo spegnimento della macchina. Tale problema viene risolto sfruttando dei BMC, cioè dei microcontrollori esterni, presenti sulla scheda madre della macchina, che permettono di controllarla da remoto, attraverso un canale di comunicazione esterno. MAAS ha la capacità di comunicare con tali dispositivi, che solitamente sono presenti nelle macchine di classe server, per gestirne l’accessione, lo spegnimento e altri tipi di configurazioni.
  3. Curtin e cloud-init: Attraverso PXE è possibile avviare, su una macchina priva di software, un sistema operativo. Tale sistema è però solamente in esecuzione; per questo è necessaria una tecnologia che permetta di installarlo su uno dei dischi rigidi del sistema. Tale operazione viene effettuata attraverso il tool Curtin, che permette di definire le operazioni di installazione attraverso degli script. Successivamente all’installazione, sarà necessario configurare il sistema. Tale operazione viene effettuata attraverso il tool cloud-init. Cloud-init è un pacchetto software che contiene un insieme di utility necessarie all’inizializzazione di istanze cloud. MAAS, tramite cloud-init, specifica un insieme di impostazioni e script da eseguire per configurare il sistema operativo.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *