Nova – Compute

Probabilmente Nova è il più famoso fra i progetti di OpenStack, il più complicato e il più distribuito. Fornisce server virtuali su richiesta. Un grande numero di processo coopera per trasformare le richieste API degli utenti finali in macchine virtuali funzionanti.

Questi sono i componenti principali di Nova con le relative funzioni:

  • nova-api : una API REST-ful che accetta comandi in ingresso e interagisce con il Cloud di OpenStack;
  • nova-compute: un daemon che crea e distrugge le istanze di macchine virtuali tramite le API dell’Hypervisor:
  • nova-scheduler: prende una richiesta dalla coda e determina su quale host deve venir eseguita;
  • nova-conductor: fornisce i servizi per nova-compute, come finire gli update del database e gestire le task avviate;
  • nova database: raccoglie la maggior parte delle informazioni relativea build-time e run-time;
  • La coda inoltre funziona da hub centrale per scambiare messaggi fra daemon. Normalmente ciò viene implementato con RabbitMQ.;
  • Nova inoltre fornisce dei servizi di console per permettere all’utente finale di accedere alla console delle sue istanze virtuali tramite proxy. Vari daemon vengono impiegati (nova-console, nova-novncproxy e nova-consoleauth);
  • nova-network : un daemon molto simile a nova-compute. Raccoglie le task di networking dalla coda e le esegue per gestire il networking (ad esempio impostare le interfacce o cambiare le regole di iptables). Questa funzione verrà trasferita su Neutron, un componente separato;
  • nova-volume : gestisce la creazione, la connessione e la disconnessione dei volumi persistenti alle macchine virtuali. Questa funzione verrà trasferita su Cinder.

openstack nova compute

Nova inoltre interagisce con molti altri servizi di OpenStack: Keystone per l’autenticazione, Glance per le immagine e Horizon per l’interfaccia Web. Le interazioni con Glance sono alla base di OpenStack. Il processo API può fare upload e query a Glance mentre nova-compute esegue il download delle immagini per poi lanciarle.


Storicamente, la maggior parte dello sviluppo di OpenStack è stato fatto con KVM: ciò ti mette in condizione di cercare sui vari forum aiuto per i problemi. Tutte le feature che sono supportate in KVM lo sono anche in QEMU.

Anche Microsoft Hyper-V e VMware ESXi stanno ricevendo molto supporto, ora che Hyper-V è disponibile con una licenza free. ESXi può anche essere usato con una licenza free, tuttavia il supporto delle API è limitato alla modalità read-only, a meno di comprare una licenza.

Nova ha supporto per XenServer e XCP tramite il layer virt XenAPI. Tieni a mente che ciò non implica che siano supportate le altre piattaforme basate su Xen come RHEL o SUSE, che è fornita con il layer libvirt (Xen via libvirt).

Nova supporta anche il provisioning da bare metal grazie al progetto Ironic che rende possibile l’implementazione di OpenStack su hardware nello stesso modo con cui l’utente finale crea macchine virtuali. Di default vengono usati PXE e IPMI assieme per fare il provisioning e accendere/spegnere le macchine, Ironic supporta anche plugin di terze parti che possono implementari funzioni aggiuntive. Alcuni vendor, su tutti HP Helion, usano Ironic per OpenStack

Glance – Image Store

Glance si occupa della ricerca, registrazione e consegna dei servizi per immagini di dischi e server.
Questi sono i suoi componenti con relative funzioni:

  • glance-api: accetta le richieste API per la ricerca di immagini, il recupero e il salvataggio;
  • glance-registry: salva, processa e recupera i metadata delle immagini (dimensioni, tipi, ecc);
  • glance-database: un database per salvare i metadata delle immagini:
  • un repository per lo storage dei file delle immagini. Glance suport i filesystem comuni, i dispositivi a blocchi Ceph, Amazon S3, HTTP e Swift.

Glance accetta le richieste API per le immagini (o metadata di immagini) da utenti finali o dai componenti di Nova, e può salvare i suoi file nel servizio di storage ad oggetti, Swift o altri repository di storage.

openstack glance image store

L'autore

Giuseppe Paternò

Giuseppe Paternò

IT Architect ed esperto in sicurezza informatica, ha un ampio background nel mondo dell'Open Source. Ha lavorato come consulente presso aziende quali RedHat, Canonical, Sun e IBM, oltre a essere Managing Director della multinazionale svizzera GARL. Si occupa inoltre di tecnologie legate al Cloud, tra cui  CloudStack e OpenStack.