Italiano English
Modifica History Actions

Differenze per "KVM"

Differenze tra le versioni 9 e 23 (in 14 versioni)
Versione 9 del 2011-12-09 17:00:36
Dimensione: 4582
Commento:
Versione 23 del 2011-12-10 12:57:37
Dimensione: 4685
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 14: Linea 14:
Ricordiamoci di modificare /etc/fstab per commentare la linea in cui monta /data, altrimenti la macchina non riparte!!!
Linea 17: Linea 18:
L'idea è quella di lasciare eth0 così com'è ed aggiungere delle tap. Ogni tap è su un bridge diverso. Ogni bridge è dato in pasto a una macchina kvm.
Questa configurazione è stata copiata da quella "ufficiale" di Hetzner: http://wiki.hetzner.de/index.php/KVM
Le macchine di hetzner nascono con un eth0 con settato l'ip della macchina "host" (nel nostro caso 176.9.66.117). In più abbiamo una /29 (176.9.211.208/29).
Abbiamo anche una /64 ipv6 (2a01:4f8:150:8461::/64). Ci troviamo il gateway sapendo che le subnet ipv6 di hetzner sono /59.
Quindi il nostro gateway sara il primo ip disponibile della relativa /59. Nel nostro caso 2a01:4f8:150:8460::1.
Linea 20: Linea 22:
Essendo la subnet assegnataci 176.9.211.208/29 abbiamo: Modifichiamo /etc/network/interfaces in questo modo:
Linea 22: Linea 24:
brctl addbr br0
ifconfig br0 176.9.211.209 netmask 255.255.255.248 up
tunctl -b -u root -t qtap0
brctl addif br0 qtap0
ifconfig qtap0 up 0.0.0.0 promisc
auto br0
iface br0 inet static
        address 176.9.66.117
        broadcast 176.9.66.127
        netmask 255.255.255.224
        gateway 176.9.66.97

        bridge_ports eth0
        bridge_stp on
        bridge_maxwait 5

iface br0 inet6 static
        address 2a01:4f8:150:8461::1
        netmask 59
        gateway 2a01:4f8:150:8460::1
Linea 28: Linea 41:
Sembra che ogni interfaccia qtapX sarà assegnata a una diversa macchina virtuale.
In questo caso si dovrà anche generare un diverso mac per ogni macchina.


IP presi
{{{
ale (orazio) 176.9.211.210
claudyuss (corona) 176.9.211.211
hispanico (guinness) 176.9.211.212
}}}
Linea 51: Linea 70:
# This script will run the first time the virtual machine boots
# It is ran as root.
Linea 54: Linea 71:
# Expire the user account
passwd -e administrator
echo "start on stopped rc RUNLEVEL=[2345]" > /etc/init/ttyS0.conf
echo "stop on runlevel [!2345]" >> /etc/init/ttyS0.conf
echo "respawn" >> /etc/init/ttyS0.conf
echo "exec /sbin/getty -L 115200 ttyS0 xterm" >> /etc/init/ttyS0.conf
start ttyS0
Linea 57: Linea 77:
# Install openssh-server
apt-get update
apt-get install -qqy --force-yes openssh-server
Linea 64: Linea 81:
{{{
vmbuilder kvm ubuntu --suite=oneiric --flavour=virtual --arch=amd64 --mirror=http://de.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=176.9.211.210 --gw=176.9.211.209 --part=vmbuilder.partition --templates=mytemplates --user=administrator --name=Administrator --pass=howtoforge --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/libvirt/images/ale/boot.sh --mem=3000 --hostname=ale --bridge=br0
}}}
con questo comando abbiamo creato un file tipo ''/var/lib/libvirt/images/ale/ubuntu-kvm/tmpXl3TL2.qcow2'' contenente l'immagine della macchina.
A questo punto dobbiamo copiarla sulla nostra partizione LVM che abbiamo creato in precedenza:
Linea 71: Linea 84:
cd /var/lib/libvirt/images/ale/ubuntu-kvm
qemu-img convert tmpXl3TL2.qcow2 -O raw /dev/beers/ale
}}}
cd /var/lib/libvirt/images/ale/
Linea 75: Linea 86:
a questo punto a possiamo rimuovere il file di immagine:
{{{
rm tmpXl3TL2.qcow2
IP=176.9.211.210 HOSTNAME=ale VMNAME=ale LVMGROUP=beers LVMVOL=ale USER=orazio PASSWORD=acab123 GATEWAY=176.9.211.209 UBUNTU=oneiric

vmbuilder kvm ubuntu --suite=${UBUNTU} --flavour=virtual --arch=amd64 --mirror=http://de.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=$IP --gw=$GATEWAY --part=vmbuilder.partition --raw=/dev/mapper/${LVMGROUP}-${LVMVOL} --templates=mytemplates --user=$USER --name=$USER --pass=$PASSWORD --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --addpkg=avahi-daemon --addpkg=openssh-server --mem=3000 --hostname=$HOSTNAME --bridge=br0 --firstboot=/var/lib/libvirt/images/${VMNAME}/boot.sh
Linea 85: Linea 96:
modificandolo per dirgli che la nostra macchina non parte più da un file ma da una partizione LVM: aggiungendo la parte per avere la console seriale:
Linea 88: Linea 99:
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/dev/vg0/vm5'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
[...]
<serial type="pty">
    <source path="/dev/pts/4"/>
    <target port="1"/>
</serial>

Questa è una guida che spiega come installare KVM su una macchina di Hetzner utilizzando LVM per le partizioni delle macchine virtuali.

Partizionare la macchina

Lanciare in rescue system e lanciare l'utility di hetzner installimages. L'utility ti chiederà di modificare un file di configurazione. La nostra modifica è questa:

PART swap swap 1G                                                                                                                                      
PART /boot ext3 300M                                                                                                                                   
PART / ext4 200G                                                                                                                                       
PART /data ext3 all                                                                                                                                   

Installiamo la macchina (nel nostro caso ubuntu 11.10) ed entriamo in ssh. Quindi smontiamo /data (che è sulla partizione raid /dev/md3) e ci creiamo dei logical volume con LVM (vedi LVM ). Ricordiamoci di modificare /etc/fstab per commentare la linea in cui monta /data, altrimenti la macchina non riparte!!! Noi abbiamo creato /dev/beers/ale , /dev/beers/lambic , /dev/beers/guinness etc etc. di 400 GB l'uno.

Interfaccia di rete

Le macchine di hetzner nascono con un eth0 con settato l'ip della macchina "host" (nel nostro caso 176.9.66.117). In più abbiamo una /29 (176.9.211.208/29). Abbiamo anche una /64 ipv6 (2a01:4f8:150:8461::/64). Ci troviamo il gateway sapendo che le subnet ipv6 di hetzner sono /59. Quindi il nostro gateway sara il primo ip disponibile della relativa /59. Nel nostro caso 2a01:4f8:150:8460::1.

Modifichiamo /etc/network/interfaces in questo modo:

auto br0
iface br0 inet static
        address         176.9.66.117
        broadcast       176.9.66.127
        netmask         255.255.255.224
        gateway         176.9.66.97

        bridge_ports    eth0
        bridge_stp      on
        bridge_maxwait  5

iface br0 inet6 static
        address         2a01:4f8:150:8461::1
        netmask         59
        gateway         2a01:4f8:150:8460::1

IP presi

ale (orazio) 176.9.211.210
claudyuss (corona) 176.9.211.211
hispanico (guinness) 176.9.211.212

Creare la propria macchina

Ognuno di noi ha una partizione LVM in /dev/beers/XXXX (corona, guinness, ale etc). Questo è un esempio per tirare su la macchina "ale" (ip 176.9.211.210).

mkdir -p /var/lib/libvirt/images/ale/mytemplates/libvirt
cp /etc/vmbuilder/libvirt/* /var/lib/libvirt/images/ale/mytemplates/libvirt/
vi /var/lib/libvirt/images/ale/vmbuilder.partition

modificarlo tipo:

root 395000
swap 5000

Creare un file che viene eseguito al primo avvio della macchina virtuale:

vi /var/lib/libvirt/images/ale/boot.sh

scrivendoci dentro:

echo "start on stopped rc RUNLEVEL=[2345]" >  /etc/init/ttyS0.conf
echo "stop on runlevel [!2345]" >> /etc/init/ttyS0.conf
echo "respawn"  >> /etc/init/ttyS0.conf
echo "exec /sbin/getty -L 115200 ttyS0 xterm" >>  /etc/init/ttyS0.conf
start ttyS0

dare questi comandi cambiando opportunamente i parametri:

cd /var/lib/libvirt/images/ale/

IP=176.9.211.210 HOSTNAME=ale VMNAME=ale LVMGROUP=beers LVMVOL=ale USER=orazio PASSWORD=acab123 GATEWAY=176.9.211.209 UBUNTU=oneiric 

vmbuilder kvm ubuntu --suite=${UBUNTU} --flavour=virtual --arch=amd64 --mirror=http://de.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=$IP --gw=$GATEWAY --part=vmbuilder.partition --raw=/dev/mapper/${LVMGROUP}-${LVMVOL} --templates=mytemplates --user=$USER --name=$USER --pass=$PASSWORD --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --addpkg=avahi-daemon --addpkg=openssh-server --mem=3000 --hostname=$HOSTNAME --bridge=br0  --firstboot=/var/lib/libvirt/images/${VMNAME}/boot.sh

editiamo il file xml con le impostazioni della macchina virtuale

virsh edit ale

aggiungendo la parte per avere la console seriale:

[...]
<serial type="pty">
    <source path="/dev/pts/4"/>
    <target port="1"/>
</serial>

ricarichiamo le impostazioni e facciamo partire la macchina:

virsh --connect qemu:///system
define /etc/libvirt/qemu/ale.xml
start ale

Se tutto va bene possiamo ora connetterci alla macchina virtuale come administrator e password "howtoforge".

=== Links guida marco

http://wiki.netgroup.uniroma2.it/doku.php?id=virtual_machine_creation_with_kvm_on_ubuntu_server_11.04