Documentazione di Ubuntu → Ubuntu 10.04 → Guida a Ubuntu server → Virtualizzazione → OpenNebula

## OpenNebula

OpenNebula consente di posizionare e riposizionare dinamicamente le macchine virtuali all'interno di un insieme di risorse hardware. In questo modo è possibile disporre le macchine virtuali in qualsiasi posizione disponibile.

In questa sezione viene indicato come configurare un cluster OpenNebula utilizzando tre computer: un host front-end e due nodi utilizzati per eseguire le macchine virtuali. I nodi necessitano di aver configurato un ponte (bridge) affinché le macchine virtuali possano accedere la rete locale. Per maggiori informazioni, consultare la sezione chiamata «Bridging».

### Installazione

Da un front-end, in un terminale, digitare:

    sudo apt-get install opennebula

Su ogni nodo invece digitare:

    sudo apt-get install opennebula-node

Per copiare le chiavi SSH, l'utente oneadmin necessita di una password. Su tutti i computer eseguire:

    sudo passwd oneadmin

Copiare la chiave SSH dell'utente oneadmin nel file `authorized_keys` dei nodi e del front-end:

    sudo scp /var/lib/one/.ssh/id_rsa.pub oneadmin@node01:/var/lib/one/.ssh/authorized_keys
    sudo scp /var/lib/one/.ssh/id_rsa.pub oneadmin@node02:/var/lib/one/.ssh/authorized_keys
    sudo sh -c "cat /var/lib/one/.ssh/id_rsa.pub >> /var/lib/one/.ssh/authorized_keys"

La chiave SSH dei nodi deve essere aggiunta al file `/etc/ssh/ssh_known_hosts` sul front-end. Per fare ciò, collegarsi via ssh su ogni nodo con un utente diverso da oneadmin, quindi uscire dalla sessione SSH ed eseguire il seguente comando per copiare la chiave SSH da `~/.ssh/known_hosts` a `/etc/ssh/ssh_known_hosts`:

    sudo sh -c "ssh-keygen -f .ssh/known_hosts -F node01 1>> /etc/ssh/ssh_known_hosts"
    sudo sh -c "ssh-keygen -f .ssh/known_hosts -F node02 1>> /etc/ssh/ssh_known_hosts"

Sostituire node01 e node02 con i nomi host appropriati.

In questo modo, l'utente oneadmin può eseguire scp senza l'utilizzo di una password o senza alcun intervento manuale per mettere in produzione un'immagine sui nodi.

Nel front-end creare una directory per archiviare le immagini delle VM, fornendo accesso a tale directory all'utente oneadmin:

    sudo mkdir /var/lib/one/images
    sudo chown oneadmin /var/lib/one/images/

Infine, copiare il file del disco di una macchina virtuale in `/var/lib/one/images`. È possibile creare una macchina virtuale utilizzando vmbuilder. Per maggiori informazioni, consultare la sezione chiamata «JeOS e vmbuilder».

### Configurazione

Il cluster OpenNebula è ora pronto per essere configurato ed è possibile aggiungere le macchine virtuali al cluster.

Da un terminale digitare:

    onehost create node01 im_kvm vmm_kvm tm_ssh
    onehost create node02 im_kvm vmm_kvm tm_ssh

Creare un file modello di Virtual Network chiamato `vnet01.template`:

    NAME            = "LAN"
    TYPE            = RANGED
    BRIDGE          = br0
    NETWORK_SIZE    = C
    NETWORK_ADDRESS = 192.168.0.0

Assicurarsi di cambiare l'indirizzo 192.168.0.0 con quello della propria rete.

Utilizzando l'utilità onevnet, aggiungere la rete virtuale a OpenNebula:

    onevnet create vnet01.template

Creare un file VM Template chiamato `vm01.template`:

    NAME   = vm01
    CPU    = 0.5
    MEMORY = 512

    OS      = [ BOOT   = hd ]

    DISK   = [
      source   = "/var/lib/one/images/vm01.qcow2",
      target   = "hda",
      readonly = "no" ]

    NIC    = [ NETWORK="LAN" ]

    GRAPHICS = [type="vnc",listen="127.0.0.1",port="-1"]

Avviare la macchina virtuale utilizzando onevm:

    onevm submit vm01.template

Usare il comando onevm list per visualizzare informazioni riguardo le macchine virtuali, inoltre, il comando onevm show vm01 visualizza informazioni più dettagliate riguardo una specifica macchina virtuale.

### Riferimenti

- Per maggiori informazioni, consultare il sito web di OpenNebula.

- È anche possibile trovare supporto nei canali IRC #ubuntu-virt e #ubuntu-server sul server Freenode.

- Also, the OpenNebula Ubuntu Wiki page has more details.

UEC |  | Capitolo 20. Cluster