Finalmente un nuovo articolo sul blog dopo diverse settimane di silenzio…

Il silenzio è stato duvuto (oltre a due settimane di ferie) appunto dalla sostituzitone di tutti (piccola bugia… ne manca ancora uno ^__^)  i nostri server con delle macchine virtuali.

La soluzione che abbiamo adottato è stata (dopo vari test con openvz) quella proposta da ubuntu con KVM/QEMU.
La troviamo FANTASTICA.

La pecca più grande è la mancanza (o perlomeno io non ho trovato nulla in proposito neppure con post in ubuntuforums )  di un processo di migrazione (sia online che offline).

Bando alle ciance… ecco l’ HOW-TO che ho seguito: (ho preso spunto dall’ottimo: help.ubuntu.com)

piattaforma da noi utilizzata:  intel quad 6600 + 8gb ram + 2 sata in raid 1 software + ubuntu hardy heron 64bit.
La scelta della versione a 64 bit è stata dettata dal fatto che nella versione a 32 bit alle macchine virtuali non era possibile assegnare più di 2 gb ram.
La nostra macchina host (quella non virtualizzata) ha l’unico compito di gestire le macchine virtuali… nulla di più.

Procediamo:

Installiamo hardy 64bit e verifichiamo prima di tuttoche il nostro processore supporti la virtualizzazione (essendo un quad ne siamo sicuri ma…)

egrep '(vmx|svm)' /proc/cpuinfo

Installiamo i pacchetti necessari:
apt-get install kvm libvirt-bin ubuntu-vm-builder

Modifichiamo /etc/network/interfaces per fare in modo di poter utilizzare le interfacce di rete in modalità bridge (non nattate)

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

e poi facciamo in modo che le macchine virtuali che creiamo lo utilizzino:

vi /usr/share/ubuntu-vm-builder/templates/libvirt.tmpl

<interface type="bridge">
   <mac address="%MAC%"></mac>
   <source bridge="br0"></source>
</interface>

Per creare una macchina virtuale: (modificare ovviamente i parametri a piacimento)

ubuntu-vm-builder kvm hardy \
--domain xxx \
--dest xxx \
--arch i386 \
--hostname xxx \
--mem 512 \
--user mionomei \
--pass miapassword \
--ip 192.168.1.17 \
--mask 255.255.255.0 \
--net 192.168.1.0 \
--bcast 192.168.1.255 \
--gw 192.168.1.254 \
--dns 192.168.1.1 \
--components main,universe \
--addpkg openssh-server \
--libvirt qemu:///system ;

(rispetto all’howto da cui ho preso spunto ho aggiunto l’installazione del pacchetto openssh-server poichè utilizzando le macchine virtuali come cli server voglio la possibilità di accedervi senza bisogno di gui)

Per shell di controllo:

virsh --connect qemu:///system

4 Responses to “KVM la virtualizzazione di ubuntu in produzione”

    Ciao ottimo articolo (ha funzionato perfettamente).
    Vorrei chiederti se sai se e’ possibile aggiungere una seconda interfaccia di rete alla macchina virtuale, magari che utilizzi un altro bridge?
    Grazie mille

    Domanda interessante non ci ho mai pensato… a settembre provo a fare qualche prova ma non ti assicuro nulla… il tempo è sempre poco ^__^

    ciao
    mARCO

    Ho notato che duplicando la sezione nel file xml all’ interno della cartella /etc/libvirt/qemu:

    riesco ad attivare una eth1.
    pero’ non ho capito se il ‘bridge’ di interface type e’ riferito al template di usr/share/ubuntu-vm-builder/templates/libvirt.tmpl .
    Ciao!!

    Anche io avrei provato a duplicare la riga in questo modo:

    <interface type=’bridge’>
    <mac address=’52:54:00:0b:30:0c’/>
    <source bridge=’br0′/>
    </interface>
    <interface type=’bridge’>
    <mac address=’52:54:00:0b:30:0d’/> <!– mac inventato –>
    <source bridge=’br1′/>
    </interface>

    il file del template serve per quando crei le macchine virtuali come immagino tu sappia, quindi i cambiamenti a quest’ultimo non influiscono sulle macchine esistenti ma solo sulle nuove.
    p.s. non ho modo prima di settemre di fare prove aggiungendo una NIC e creando un secondo bridge… fammi sapere se ne vieni a capo

    ciao

Something to say?

You must be logged in to post a comment.