Befehle für XEN

Aus Root-Wiki
Version vom 12. Juli 2010, 17:38 Uhr von Virtualmarc (Diskussion | Beiträge) (xm list)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Wenn Ihr XEN installiert (XEN installation) habt, könnt Ihr mit den folgenden Befehlen eure virtuellen Maschinen verwalten.

Linux Gastsystem installieren

Hier wird beschrieben, wie man ein Linux Gastsystem installiert.

Auf ein reelles Dateisystem installieren

Ist auf der Festplatte noch genug Platz für weitere Partitionen, kann man auf diesen ganz einfach das Betriebssystem über eine Bootfähige CD installieren.

Warning.png Warnung: Der Bootmanager darf NICHT in den MBR geschrieben werden, da XEN das virtuelle Linux starten soll und nicht GRUB

Für weitere VM's kann das installierte Linux auch kopiert werden.

Installieren in einem Image

Als erstes erstellen wir einen Ordner, in dem die Images gespeichert werden sollen.

Wir nehmen dafür jetzt einfach mal /var/images

mkdir /var/images

Images erstellen

Festplatten Image anlegen

Jetzt legen wir ein Festplattenimage an, dass wir in diesem Beispiel vm1disk nennen.

Als Größe verwenden wir in diesem Beispiel 1GB und formatieren dieses mit ext3:

dd if=/dev/zero of=/var/images/vm1disk bs=1024k count=1024
mkfs.ext3 /var/images/vm1disk
SWAP-Image anlegen

Als nächstes legen wir einen SWAP-Speicher mit der Größe von 256MB an:

dd if=/dev/zero of=/var/images/vm1swap bs=1024k count=256
mkswap /var/images/vm1swap
Yellowpin.png Notiz: Das count wird in MB angegeben!

Image in das Hostsystem einbinden

Jetzt müssen wir das Festplattenimage in das Hostsystem einbinden, dies geschieht mit dem folgendem Befehl, zuerst legen wir aber dafür in /mnt einen Ordner an:

mkdir /mnt/disk
mount -o loop /var/images/vm1disk /mnt/disk

Jetzt können wir die Betriebssystemdateien in das Image kopieren.

Installation von Debian über "debootstrap"

Installation von "debootstrap"

Das installieren von debootstrap geschieht mit dem folgendem Befehl:

apt-get install debootstrap
Installieren von Debian Lenny über "debootstrap"

Um Debian Lenny 32Bit über debootstrap zu installieren benutzen wir den folgenden Befehl:

debootstrap --arch i386 lenny /mnt/disk http://ftp.de.debian.org/debian/ 


Der Befehl besitzt die folgenden Parameter:

--arch = gibt die Architektur an, z.B. i386 für 32Bit oder amd64 für 64Bit.

Als nächstes folgt die Betriebssystemversion, z.B. etch, lenny oder sid

Danach folgt der Ordner, wohin es heruntergeladen werden soll, z.B. /mnt/disk

Als letztes folgt der Mirror-Server von dem das Image herunter geladen werden soll, z.B. http://ftp.de.debian.org/debian/

Konfigurieren des installierten Debian Lenny
In das Image mit chroot wechseln

Jetzt wechseln wir mit unserer Konsole in das Image, dies geschieht mit dem folgendem Befehl:

chroot /mnt/disk /bin/bash

Damit wir die Shell nicht verwechseln markieren wir diese mit einem (chroot):

export PS1="(chroot) $PS1"
Hostnamen setzen

Den Hostnamen der virtuellen Maschine kann in der Datei /etc/hostname gesetzt werden.

IP-Adresse setzen

Die IP-Adresse muss in /etc/network/interfaces gesetzt werden, dies kann z.B. so aussehen:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.1.11
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
Debian-Repo-Sources anpassen

In der Datei /etc/apt/sources.list können jetzt noch die Debian Repos angepasst werden.

fstab anpassen

Als nächstes müssen wir in dei Datei /etc/fstab folgendes rein schreiben:

/dev/sda1       /       ext3    errors=remount-ro       0       1
/dev/sda2       none    swap    sw                      0       0
proc            /proc   proc    defaults                0       0
tls deaktivieren

Wie auch auf dem Hostsystem sollte man auch auf dem Gastsystem tls deaktivieren.

Yellowpin.png Notiz: Die Datei existiert nicht unter jedem System!
mv /lib/tls /lib/tls.disabled
SSH-Server installieren

Damit wir nachher auf die virtuelle Maschine zugreifen können, installieren wir noch einen SSH-Server.

Dies geschieht mit dem folgendem Befehl:

apt-get install openssh-server
Yellowpin.png Notiz: Vorher muss wahrscheinlich noch die Paketliste mit apt-get update neu geladen werden!
Das chroot verlassen

Jetzt müssen wir das chroot wieder verlassen, dies geschieht einfach mit

exit
Einbindung des Images lösen

Jetzt müssen wir die Einbindung des Images wieder lösen.

Dies geschieht mit dem folgendem Befehl:

umount /mnt/disk


VM starten

Als erstes erstellen wir in /etc/xen eine Konfigurationsdatei mit dem Namen unserer VM, in unserem Beispiel heißt diese xenvm1.

Hier ist ein Beispiel-Inhalt:

kernel = "/boot/vmlinuz-2.6.26-1-xen-686"
## RAM-Speicher Zuweisung (in Megabyte) für die neue Domain
memory = 128
## Name des virtuellen Servers
name = "xenvm1"
### Liste von zugewiesenen Partitionen oder Imagedateien
## Eintrag für oben genannte debootstrap-Beispiel mit Image.
disk = [ 'file:/var/images/vm1disk,sda1,w', 'file:/var/images/vm1swap,sda2,w' ]
## Beispiel für reale Partitionen
#disk = [ 'phy:hda7,sda1,w', 'phy,sda2,w' ]
root = "/dev/sda1 ro"


Und dies sind die Parameter:

kernel gibt den zu verwendenden Kernel an,

memory gibt den RAM in MB an,

name gibt den Namen der VM an,

disk gibt das Laufwerk/Image von dem Dateisystem und dem SWAP an.

und root gibt das Rootdateisystem für die VM an.


Damit eine VM gestartet werden kann, muss der XEN-Daemon gestartet werden, falls dies noch nicht getan wurde.

Dies geschieht mit:

xend start


Zum starten der VM geben wir jetzt den folgenden Befehl ein:

xm create -c xenvm1 -vmid=1


Die Parameter dazu sind:

xenvm1 ist der Name der Konfigurationsdatei, vmid ist eine eindeutige Nummer der VM


Jetzt sollte man in der Konsole der VM gelandet sein, falls kein Fehler aufgetreten ist.

Um das Basis-System zu konfigurieren gibt man den folgenden Befehl ein:

base-config

VM automatisch starten

Wenn die VM automatisch beim Systemstart gestartet werden soll, dann muss eine Verknüpfung zur Konfigurationsdatei in den Ordner /etc/xen/auto/ erstellt werden.

Dies geschieht mit:

ln -s /etc/xen/xenvm1 /etc/xen/auto/

Administration der VMs

xm

xm ist das Hauptprogramm zur Verwaltung von XEN-VMs.

Wir haben es bereits oben benutzt um die VM zu starten, aber es kann auch wesentlich mehr.

xm list

Wenn man den folgenden Befehl eingibt

xm lst

sollte eine Ausgabe wie folgt kommen:

Name                              ID Mem(MiB) VCPUs State  Time(s)

Domain-0                           0       64     1 r-----   112.0

xenvm1                             3      128     1 ------    27.4


Erläuterung der einzelnen Spalten:

Name = Name der VM

ID = Eindeutige ID der VM

Mem(MiB) = Arbeitsspeicher der VM

VCPUs = Anzahl der zugewiesenen CPUs

State = Status der VM. Hier gibt es folgende: r = laufend, b = blockiert, p = pausiert, s = heruntergefahren, c = abgestürzt

Time(s) = Verbrauch von CPU-Rechenzeit in Sekunden


Eine detailliertere Ausgabe erhält man mit:

xm list -l

xm console

Mit diesem Befehl wechselt man zur Konsole der VM.

Mit dieser sieht man, was man sehen würde, wenn man wirklich an diesem PC sitzen würde.

Mit <Strg>+<F5> kann man diese wieder verlassen!

Beispel:

xm console 3

Die 3 ist dabei die ID der VM!

xm shutdown

Mit diesem Befehl kann man eine VM herunterfahren.

Beispiel:

xm shutdown 3

Die 3 ist wieder die ID der VM!

xm mem-set

Mit diesem Befehl kann man den Arbeitsspeicher für die VM ändern.

Beispel:

xm mem-set 3 256

Die 3 ist wieder unsere ID und die 256 sind die MB an RAM.

Der geänderte zugewiesene Speicher kann erst nach einem Neustart der VM benutzt werden.

xm new

Dieser Befehl fügt eine neue VM zum XEN VM Management hinzu.

Beispiel:

xm new xenvm1

xenvm1 ist hierbei die Konfigurationsdatei.

xm delete

Dieser Befehl löscht eine VM vom XEN VM Management.

Beispiel:

xm delete xenvm1

Wobei xenvm1 wieder unsere Konfigurationsdatei ist.

xm destroy

Bricht eine VM sofort ab.

Beispiel:

xm destroy xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

xm dump-core

"Dump Core" für eine VM.

Beispiel:

xm dump-core -L xenvm1 xenvm1.dmp

xenvm1 ist wieder unsere Konfigurationsdatei.

-L bzw. --live bedeutet, dass die VM nicht pausiert wird.

-C bzw. --crash bedeutet, dass die VM nach Beendigung des dump-Vorgangs abstürzen soll.

xenvm1.dmp ist der Dateiname des Images.

xm migrate

Migriert eine VM auf eine Maschiene.

Beispiel:

xm migrate -l xenvm1 xensys2

-l bzw. --live bedeutet, dass die Migration live stattfinden soll.

-p=NUM bzw. --port=NUM setzt einen speziellen Port.

-r=MBIT bzw. --ressource=MBIT begrenzt die Geschwindigkeit der Migration.

xensys2 ist der Hostname des Zielsystems.

xm pause

Pausiert eine VM.

Beispiel:

xm pause xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

xm reboot

Startet eine VM neu.

Beispiel:

xm reboot xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

xm resume

Setzt eine VM wieder fort.

Beispiel:

xm resume xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

-p bzw. --paused bedeutet, dass die VM nach dem fortsetzten nicht unpausiert wird.

xm save

Erstellt ein Backup von einer VM.

Beispiel:

xm save -c xenvm1 xenvm1.bak

-c bzw. --chechpoint bewirkt, dass die VM am laufen bleibt, nachdem das Backup erstellt wurde.

xenvm1 ist wieder unsere Konfigurationsdatei.

xm shell

Startet eine interaktive Shell.

Beispiel:

xm shell

xm start

Startet eine VM.

Beispiel:

xm start xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

-p bzw. --paused bewirkt, dass die VM nicht geunpaused wird, nachdem sie gestartet wurde.

-c bzw. --console_autoconnect bewirkt, dass man sofort nach dem starten in der Konsole der VM landet.

xm suspend

Friert eine VM ein.

Beispiel:

xm suspend xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

xm top

Zeigt Statistiken über Host und VM in Echtzeit.

Beispiel:

xm top

xm unpause

Setzt eine pausierte VM wieder fort.

Beispiel:

xm unpause xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

xm uptime

Zeit die Laufzeit aller oder einer VM an.

Beispiele:

xm uptime

oder

xm uptime xenvm1

xenvm1 ist wieder unsere Konfigurationsdatei.

xm vcpu-set

Setzt die Anzahl der aktiven VCPUs einer VM.

Beispiel:

xm vcpu-set xenvm1 2

xenvm1 ist wieder unsere Konfigurationsdatei. 2 ist die Anzahl der CPUs.

Grafische Administration

Es gibt auch grafische Tools, mit denen man XEN steuern kann.

Hierbei gibt es kostenpflichtige wie vadmin

und kostenlose wie ConVirt