Openlab 01 - Workshop Virtualisierung/Xen

Aus Opennet
Wechseln zu: Navigation, Suche

< Openlab 01 - Workshop Virtualisierung

Xen unter Lenny

  1. Xen und Bonding geht unter Lenny immer noch nicht. Patch hier.
  2. Installiert man einen Gast mit xen-create-image sollte man in /etc/xen-tools/xen-tools.conf folgende Zeile eintragen: debootstrap-cmd=/usr/sbin/debootstrap --include=udev
  3. Der Gast Konfiguration muß man folgende Zeile hinzufügen: extra = "console=hvc0 xencons=tty clocksource=jiffies"
  4. Der fstab des Gastes fehlt außerdem noch folgender Eintrag: none /dev/pts devpts defaults 0 0

Kickoff

Xen installieren

# Pakete installieren
apt-get install xen-linux-system-2.6.18-6-xen-686 xen-tools xen-utils-common libc6-xen bridge-utils
# Anpasungen der Konfig (Wo liegen die Filesystem Images und welcher Kernel wird verwendet)
sed -ie "s/# dir = \/home\/xen/dir = \/xen/" /etc/xen-tools/xen-tools.conf
sed -ie "s/2.6.16-2/2.6.18-6/g" /etc/xen-tools/xen-tools.conf

Nun sollte man in /etc/xen/xend-config.sxp noch (network-script network-bridge) einkommentieren oder wenn man nicht eth0 als standard Interface verwendet die Zeile (network-script 'network-bridge netdev=bond0') verwenden. Danach muß xend einmal reloaded werden. Nun sollte das Bridge Device xenbr0 existieren.

Als nächstes wird eine DomU installiert und anschließend gestartet.

xen-create-image --debootstrap --swap 128Mb --memory 128Mb --dist etch --dhcp --hostname xen01
# Statt --dhcp kann auch eine feste IP angegeben werden --ip 192.168.1.222 --netmask 255.255.255.0 --gateway 192.168.1.1 
xm create /etc/xen/xen01.cfg 
xm list
xm console 1

Live Migration

Seit DRBD v8.0.6 unterstützt drbd für Xen Live Migration. Dabei wird eine DomU fast ohne Unterbrechung zwischen zwei Hosts verschoben. Normalerweise geht das nur wenn beide Hosts über ein geteiltes Laufwerk (iSCSI/FC Disk) verfügen. Aber mit einer DRBD Active/Active Konfiguration geht das nun auch. Dafür gibt es in den DRBD Sourcen ein Shell Script das bei der installation nach /etc/xen/scripts/block-drbd kopiert wird und das Handling übernimmt.

Ausgangsbasis ist eine mit xen-create-image erstellte DomU die als Imagedatei in /xen/domains/xen01/disk.img liegt. Sowie zwei Dom0 die eine DRBD0 (r0) Resource teilen die erfolgreich eingerichtet ist. Die DRBD Konfiguration sieht folgendermaßen aus.

# /etc/drbd.conf

global {
    usage-count yes;
}

common {
  syncer { rate 10M; }
}

resource r0 {
  protocol C;

  handlers {
    pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
    pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
    #outdate-peer "/usr/sbin/drbd-peer-outdater";
  }

  disk {
    on-io-error   detach;
  }

  net {
    # Wichtig
    allow-two-primaries;
    after-sb-0pri discard-zero-changes;
    after-sb-1pri discard-secondary;
    # Wichtig
    after-sb-2pri disconnect;
    rr-conflict disconnect;

  }

  syncer {
    rate 10M;
    al-extents 257;
  }

  on xen0a {
    device     /dev/drbd0;
    disk       /dev/sda3;
    address    10.72.241.100:7788;
    flexible-meta-disk  internal;
  }

  on xen0b {
    device    /dev/drbd0;
    disk      /dev/sda3;
    address   10.72.241.101:7788;
    meta-disk internal;
  }

}

Nun mounten wir r0 auf einem der Rechner und kopieren den Inhalte des DomU Image auf r0.

mount /dev/drb0 /drb0
mount -o loop /xen/domains/xen01/disk.img /mnt
cp -a /mnt /drbd0/

Nun werden die Laufwerke wieder ausgehängt und folgende Zeile an der DomU konfiguration geändert.

ALT: disk = [ 'file:/xen/domains/xen01/disk.img,sda1,w', 'file:/xen/domains/xen01/swap.img,sda2,w' ]
NEU: disk = [ 'drbd:r0,sda1,w', 'file:/xen/domains/xen01/swap.img,sda2,w' ]

Jetzt sollten wir die DomU auf beiden Dom0 starten können.

# auf dom0-a
xm create /etc/xen/xen01.cfg
xm list
xm shutdown xen01
# auf dom0-b
xm create /etc/xen/xen01.cfg
xm list

Um ein automatisches Migrate (oder auch eine Live Migrate) machen zu können müssen wir den xend-relocation-server starten. Dazu ergänzenm wir /etc/xen/xend-config.sxp um folgende Zeile und starten xend neu:

(xend-relocation-server yes)

Nun läßt sich eine laufende DomU mit folgender Anweisung auf die Nachbar Dom0 schieben. Das dauert ca. 2 Sekunden. Alle Prozesse laufen dabei weiter.

xm migrate --live xen01 <neighbour-ip>
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge