Virtualisering med Xen

Forfatter: Trond Hasle Amundsen
Kontakt: t.h.amundsen@usit.uio.no
Dato: 2011-10-06

Notat

Dette dokumentet beskriver jhvordan du kan installere en RHEL5 eller RHEL4 domU Xen-instans på en tjenere som kjører RHEL5, uten å bruke noen form for grafisk verktøy. Vi bruker vår egen ks-generator og Red Hats virt-install.

Dokumentet er under arbeid og kan inneholde feil og mangler!

1   Krav til en Xen-tjener

Resten av dokumentet forutsetter av Xen er installert, og av RHEL5 kjører som dom0 (det priviligerte, administrative domenet). Dersom du under installasjon av tjeneren (med ks-generator) valgte at maskinen skal være en Xen server, har maskinen alt den trenger. Dersom du ikke valgte Xen server, kan du følge oppskriften under for å installere Xen på maskinen:

  1. Installer gruppen "Xen", slik:

    maskin.uio.no# yum -y groupinstall Xen
    
  2. Installer Xen-kjerne, slik:

    maskin.uio.no# yum -y install kernel-xen kernel-xen-devel
    
  3. Sørg for at Xen-kjernen er default i /etc/grub.conf, dvs. endre linjen med "default=<tall>" slik at tallet korresponderer med kjernen som skal kjøre. Den første i listen er nummer 0.

  4. Sørg for at xend starter ved boot:

    maskin.uio.no# chkconfig xend on
    
  5. Ta en reboot av maskinen.

Det kan også lønne seg å fjerne "vanlige" kjerner etter reboot, for å rydde opp.

2   Lage kickstart-fil og install-script med ks-generator

ks-generator er modifisert til å virke med Xen. Under kjøring av ks-generator vil du få spørsmål om maskinen skal være en Xen-gjest. Svarer du ja på dette, vil ks-generator fortsette med noen spørsmål som er relevante for Xen, og droppe spørsmål som ikke er irrelevante for en Xen-gjest.

Notat

Foreløpig støttes kun paravirtualiserte Xen-gjester på denne måten. Det betyr at Xen-tjeneren og Xen-gjesten må være samme arkitektur.

Når du bruker ks-generator på denne måten vil du få ut to filer som resultat. Den første er den vanlige kickstart-filen (normalt ks.cfg), mens den andre vil hete <maskinnavn>-virt-install.sh. Sistnevnte er et script som er en wrapper rundt Red Hats virt-install.

3   Installasjon av Xen-gjest

Selve installasjonen gjøres med kickstart. Først må kickstart-filen flyttes til web-området ditt:

maskin.uio.no# mv ks.cfg ~/www_docs

ks-generator gjør visse antagelser om hvor denne filen ligger. Som standard vil ks-generator anta at filen ligger under ~/www_docs til brukeren kjørte ks-generator. Dersom ks.cfg skal ligge et annet sted må dette endres i <maskinnavn>-virt-install.sh.

Kopier så <maskinnavn>-virt-install.sh til Xen-tjeneren:

maskin.uio.no# scp <maskinnavn>-virt-install.sh root@<xen-server>:/tmp

For å installere Xen-gjesten, logg inn på Xen-tjeneren og kjør scriptet som ks-generator laget for deg. Xen-gjesten vil installeres automatisk på vanlig måte, og du kan følge hele installasjonen på konsollet.

4   Vise informasjon om Xen-gjester

Det er minst tre måter å vise informasjon om Xen-gjester som kjører på en Xen-tjener. Den første bruker Xens verktøy xm:

maskin.uio.no# xm list
Name                                      ID Mem(MiB) VCPUs State   Time(s)
Domain-0                                   0     2990     4 r-----   3283.4
rh4-xenguest1                              1      511     1 -b----    216.9
rh5-xenguest1                              2      511     1 -b----    565.2

libvirt er et bibliotek utviklet for å støtte både Xen og andre teknologier for virtualisering, og inneholder bl.a. virsh:

maskin.uio.no# virsh list
 Id Name                 State
----------------------------------
  0 Domain-0             running
  1 rh4-xenguest1        blocked
  2 rh5-xenguest1        blocked

Det eksisterer også et grafisk verktøy, virt-manager, som kan brukes bl.a. til å vise informasjon:

virt-manager

5   Gjøre Xen-gjesten permanent

For å gjøre xen-gjesten "permanent", dvs. sørge for at den starter ved boot (når dom0 booter), må config-fila til gjesten ligge under /etc/xen/auto. Den enkleste måten å gjøre dette på er å lage en symlink:

maskin.uio.no# cd /etc/xen/auto
maskin.uio.no# ln -s ../<navn> .

For eksempel, hvis man har tre xen-gjester med navn rh4-xenguest1, rh5-xenguest1 og rh5-xenguest2, vil innholdet i /etc/xen/auto se slik ut:

maskin.uio.no# ls -l /etc/xen/auto/
total 0
lrwxrwxrwx 1 root root 16 Feb 28 18:12 rh4-xenguest1 -> ../rh4-xenguest1
lrwxrwxrwx 1 root root 16 Feb 28 18:12 rh5-xenguest1 -> ../rh5-xenguest1
lrwxrwxrwx 1 root root 16 Mar  6 13:48 rh5-xenguest2 -> ../rh5-xenguest2
Publisert 5. okt. 2011 21:48 - Sist endret 6. okt. 2011 15:02