Nova, la virtualizzazione secondo OpenStack / 1

1 dicembre 2014

Fabrizio Soppelsa

- RHCE, Autore di Linux&C, Autore di Linux Journal

OpenStack

Dopo aver affrontato Keystone, vediamo Nova, il servizio di compute di OpenStack. È il programma che si occupa di far funzionare e gestire le VM (chiamate istanze). Non virtualizza direttamente in quanto hypervisor, ma si basa su altri sistemi di virtualizzazione: astrae l’interfaccia di virtualizzazione, dialogando con i driver della virtualizzazione scelta e fornendo una ricca API (compatibile EC2).

I driver di Nova attualmente disponibili sono libvirtd, qemu, vSphere, lxc, docker, Hyper-V, Xen, ma dai regolari sondaggi della community emerge che la scelta più popolare è libvirtd (KVM).

Presente fin dalla prima versione di OpenStack – Austin – insieme a Glance e Swift, Nova è stato nel tempo scorporato in moduli che poi sono diventati progetti a loro volta. L’architettura di OpenStack si è arricchita di Cinder, gestione storage, e Neutron (ex Quantum), gestione rete, che erano una volta integrati in Nova e ora sono programmi distinti. Solo da poco, nova-network è stato deprecato in favore di Neutron ed esistono sicuramente installazioni di OpenStack che usano ancora nova-network.

Perché uno dovrebbe usare Nova invece di usare direttamente KVM, per esempio? Nova è un progetto molto complesso il cui obiettivo è garantire la disponibilità del calcolo su ambienti composti da hypervisor anche fisicamente eterogenei e perfino geograficamente sparsi. Quando si clicca su Lancia Istanza, Nova – interagendo con il resto di OpenStack – si preoccupa di trovare (scheduling) un hypervisor adatto, mette le attività in coda (queueing), alloca le risorse, istanzia l’immagine, aggancia le reti, associa i volumi, e molto altro, per esempio può iniettare le chiavi SSH o altre configurazioni. Ecco che con OpenStack Nova c’è un pannello unico e un’API unica per l’uso di grandissimi ambienti di virtualizzazione, con una gestione solida degli errori e una configurazione centralizzata della sicurezza.

Le operazioni tipiche di cui si occupa Nova sono:

  • Lanciare istanze
  • Terminare istanze
  • Reboot e stop
  • Attach di volumi
  • Detach di volumi
  • Console
  • Log

Si può interagire con Nova attraverso Horizon o con la CLI. Per questa prima panoramica vediamo Horizon. Nei prossimi articoli invece ci addentreremo meglio in Nova, ne capiremo il funzionamento e useremo solo la CLI.

Sotto Project, ci sono le sezioni abilitate per i progetti. Nova è Compute. Aprendo la scheda Instances, si raggiunge il pannello di gestione delle istanze.

Screen Shot 2014-11-29 at 14.24.04

Ogni istanza ha un nome, uno status, una o più schede di rete associate, una zona, e varie caratteristiche come la dimensione (flavor), gruppi, gruppi di sicurezza e così via.

Da Horizon si possono eseguire le operazioni di “ordinaria amministrazione”, come creare una VM:

Screen Shot 2014-11-29 at 14.31.24

Creare uno snapshot, spegnere, riavviare, modificare o associarne le proprietà (rete):

Screen Shot 2014-11-29 at 14.28.05

Ottenere i log o la console a video:

Screen Shot 2014-11-29 at 14.32.02

Nova è il cavallo di battaglia di OpenStack, e un servizio sempre presente nelle installazioni. È troppo grande e complesso per essere trattato in poco spazio, perciò stay tuned su Extraordy, per le prossime puntate!