2958
Commento:
|
5597
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
Questa è una guida che spiega come installare KVM su una macchina di Hetzner utilizzando LVM per le partizioni delle macchine virtuali. == Partizionare la macchina == |
|
Linea 7: | Linea 10: |
PART lvm beers-swap 30G PART lvm beers all LV beers corona /root/vmcorona ext4 400G LV beers guinnes /root/vmguinness ext4 400G LV beers ale /root/vmale ext3 400G LV beers lambic /root/vmlambic 400G LV beers peroni /root/vmperoni 400G LV beers free /root/vmfree 400G |
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. |
Linea 18: | Linea 17: |
LV beers-swap swcorona /root/swcorona swap 5G LV beers-swap swguinnes /root/swguinnes swap 5G LV beers-swap swale /root/swale swap 5G LV beers-swap swlambic /root/swlambic swap 5G LV beers-swap swperoni /root/swperoni swap 5G LV beers-swap swfree /root/swfree swap 5G |
== Interfaccia di rete == 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 Essendo la subnet assegnataci 176.9.211.208/29 abbiamo: {{{ 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 }}} 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. MIGLIORARE, la parte di rete non si è ben capita! IP presi {{{ ale (orazio) 176.9.211.210 claudyuss (corona) 176.9.211.211 hispanico (guinness) 176.9.211.212 }}} ==== IPv6 ==== Ci è stata assegnata 2a01:4f8:150:8461:: / 64 Abbiamo configurato ipv6 sulla macchina host così: {{{ ip -6 a add 2a01:4f8:150:8461::1/59 dev eth0 ip route add default via 2a01:4f8:150:8460::1 }}} dove l'indirizzo del gw ce lo siamo trovato col primo indirizzo disponibile della /59 (questa cosa su hetzner non è documentata o è documentata in tedesco). == 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 |
Linea 27: | Linea 79: |
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 vmbuilder kvm ubuntu --suite=natty --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 }}} 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: {{{ cd /var/lib/libvirt/images/ale/ubuntu-kvm qemu-img convert tmpXl3TL2.qcow2 -O raw /dev/beers/ale }}} a questo punto a possiamo rimuovere il file di immagine: {{{ rm tmpXl3TL2.qcow2 }}} editiamo il file xml con le impostazioni della macchina virtuale {{{ virsh edit ale }}} modificandolo per dirgli che la nostra macchina non parte più da un file ma da una partizione LVM: {{{ [...] <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> }}} 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 |
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
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
Essendo la subnet assegnataci 176.9.211.208/29 abbiamo:
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
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. MIGLIORARE, la parte di rete non si è ben capita!
IP presi
ale (orazio) 176.9.211.210 claudyuss (corona) 176.9.211.211 hispanico (guinness) 176.9.211.212
IPv6
Ci è stata assegnata 2a01:4f8:150:8461:: / 64 Abbiamo configurato ipv6 sulla macchina host così:
ip -6 a add 2a01:4f8:150:8461::1/59 dev eth0 ip route add default via 2a01:4f8:150:8460::1
dove l'indirizzo del gw ce lo siamo trovato col primo indirizzo disponibile della /59 (questa cosa su hetzner non è documentata o è documentata in tedesco).
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 vmbuilder kvm ubuntu --suite=natty --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
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:
cd /var/lib/libvirt/images/ale/ubuntu-kvm qemu-img convert tmpXl3TL2.qcow2 -O raw /dev/beers/ale
a questo punto a possiamo rimuovere il file di immagine:
rm tmpXl3TL2.qcow2
editiamo il file xml con le impostazioni della macchina virtuale
virsh edit ale
modificandolo per dirgli che la nostra macchina non parte più da un file ma da una partizione LVM:
[...] <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>
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