Difference between revisions of "UVMM Technische Details"

From Univention Wiki

Jump to: navigation, search
Line 1: Line 1:
Auf dieser Seite werden weiterführende technische Details zu UVMM bereitgestellt die sich auf unterschiedliche Bereiche in der Verwaltung und Administration von Infrastrukturen mit Virtualisierungsserver beziehen. Dieser Artikel basiert auf dem Wissen, dass in dem [[UVMM Quickstart]] beschrieben ist, daher sollte dieser zuvor beachtet werden.  
+
Auf dieser Seite werden weiterführende technische Details zu UVMM bereitgestellt die sich auf unterschiedliche Bereiche in der Verwaltung und Administration von Infrastrukturen mit Virtualisierungsserver beziehen. Dieser Artikel basiert auf dem Vorwissen, dass in dem [[UVMM Quickstart]] und dem UVMM-Abschnitt des UCS-Handbuchs beschrieben ist, daher sollte dieser zuvor beachtet werden.  
 +
 
 +
[[UVMM-iSCSI-Speicherbereiche|Anlegen eines Speicherbereichs auf einem iSCSI-Target]]
 +
 
  
 
Bei den im folgenden dokumentierten administrativen Aufgaben wird das Kommandozeilenprogramm ''virsh'' verwendet, dass von ''libvirt'' mitgebracht wird. Weitere Informationen zu diesem Programm sind in der man-Page ''virsh(1)'' zu finden.  
 
Bei den im folgenden dokumentierten administrativen Aufgaben wird das Kommandozeilenprogramm ''virsh'' verwendet, dass von ''libvirt'' mitgebracht wird. Weitere Informationen zu diesem Programm sind in der man-Page ''virsh(1)'' zu finden.  
Line 58: Line 61:
  
 
Im folgenden werden einige Besonderheiten der Storageverwaltung in UVMM beschrieben.  
 
Im folgenden werden einige Besonderheiten der Storageverwaltung in UVMM beschrieben.  
 
== Erstellen von iSCSI-Speicherbereichen  ==
 
 
UVMM unterstützt momentan noch nicht das Anlegen von Speicherbereichen für die Ablage von Festplatten-Images. trotzdem wird mit UVMM bereits die Verwendung existierender Speicherbereiche von verschiedenen Typen unterstützt. Im folgenden wird das Anlegen von Speicherbereichen beschrieben.<br>Um auf einem Virtualisierungsserver einen weiteren Speicherbereich zur Verfügung zu stellen, muss eine XML-Datei mit einer Beschreibung erstellt werden. Im folgenden Beispiel ist die Beschreibung zu dem Speicherbereich ''Lokales Verzeichnis'' zu sehen:
 
<pre>&lt;pool type='dir'&gt;
 
  &lt;name&gt;default&lt;/name&gt;
 
  &lt;source&gt;
 
  &lt;/source&gt;
 
  &lt;target&gt;
 
    &lt;path&gt;/var/lib/libvirt/images&lt;/path&gt;
 
    &lt;permissions&gt;
 
      &lt;mode&gt;0700&lt;/mode&gt;
 
      &lt;owner&gt;-1&lt;/owner&gt;
 
      &lt;group&gt;-1&lt;/group&gt;
 
    &lt;/permissions&gt;
 
  &lt;/target&gt;
 
&lt;/pool&gt;</pre>
 
Wie ein weiterer lokaler Speicherbereich definiert werden kann, wird bereits im [[UVMM Quickstart]] beschrieben. Im folgenden wird ein Speicherbereich definiert, der auf ein iSCSI-Storage zugreift. Dafür muss einmal im Tag ''pool'' das Attribute ''type'' auf den Wert ''iscsi'' gesetzt werden. Anschließend müssen über das ''source'' Tag der Quellserver und der iSCSI-Targetname und über das ''target''-Tag der Pfad zu der Gerätedatei definiert werden. In dem folgenden Beispiel wird ein Speicherbereich definiert, der vom Server xen6.ucs.local das iSCSI-Target iqn.2010-08.local.ucs:sdb einbindet:
 
<pre>&lt;pool type='iscsi'&gt;
 
  &lt;name&gt;iscsi&lt;/name&gt;
 
  &lt;source&gt;
 
    &lt;host name='xen6.ucs.local'/&gt;
 
    &lt;device path='iqn.2010-08.local.ucs:sdb'/&gt;
 
  &lt;/source&gt;
 
  &lt;target&gt;
 
    &lt;path&gt;/dev/disk/by-path&lt;/path&gt;
 
    &lt;permissions&gt;
 
      &lt;mode&gt;0700&lt;/mode&gt;
 
      &lt;owner&gt;-1&lt;/owner&gt;
 
      &lt;group&gt;-1&lt;/group&gt;
 
    &lt;/permissions&gt;
 
  &lt;/target&gt;
 
&lt;/pool&gt;
 
</pre>
 
Damit dieser Speicherbereich verwendet werden kann, müssen die folgenden Schritte durchgeführt werden. Dafür ist die Beschreibung zuerst in einer Datei zu speichern (beispielsweise in der Datei iscsi-pool.xml)
 
<pre>virsh pool-define iscsi-pool.xml
 
virsh pool-start iscsi
 
virsh pool-autostart iscsi
 
</pre>
 
Damit der UVMM-Dienst diese neuen Informationen zum Speicherbereich einliest, muss dieser neu gestartet werden:
 
<pre>invoke-rc.d univention-virtual-machine-manager-daemon restart
 
</pre>
 
Anschließend können im UMC-Modul ''Virtuelle Maschinen (UVMM)'' Festplatten in dem Speicherbereich angelegt werden. Dabei ist zu beachten, dass in einem iSCSI-Speicherbereich keine neuen Images angelegt, sondern nur vorhandene ausgewählt werden. Dabei werden die einzelnen LUNs als mögliche Images angeboten.
 
 
'''Achtung''': Wird eine virtuelle Instanz angelegt, die eine Festplatte einbindet, die in einem iSCSI-Speicherbereich liegt, muss momentan die Konfiguration nachträglich noch über virsh angepasst werden. Die notwendige Erweiterung mit der dies nicht mehr notwendig ist, wird an [https://forge.univention.org/bugzilla/show_bug.cgi?id=19804 Bug #19804] behandelt.
 
 
Wenn eine solche Festplatte angelegt wurde, muss mit virsh die Beschreibung der virtuellen Instanz angepasst werden. Diese kann man mit dem Kommando
 
<pre>virsh edit &lt;Instanzname&gt;</pre>
 
öffnen und bearbeiten. In der XML-Beschreibung befindet sich ein Abschnitt, der ungefähr wie folgt aussieht:
 
<pre>    &lt;disk type='file' device='disk'&gt;
 
      &lt;driver name='file'/&gt;
 
      &lt;source file='/dev/disk/by-path/ip-192.168.0.116:3260-iscsi-iqn.2010-08.local.ucs:sdb-lun-0'/&gt;
 
      &lt;target dev='hda' bus='ide'/&gt;
 
    &lt;/disk&gt;
 
</pre>
 
Dieser Abschnitt muss wie folgt angepasst werden:
 
<pre>    &lt;disk type='block' device='disk'&gt;
 
      &lt;driver name='phy'/&gt;
 
      &lt;source dev='/dev/disk/by-path/ip-192.168.0.116:3260-iscsi-iqn.2010-08.local.ucs:sdb-lun-0'/&gt;
 
      &lt;target dev='sda' bus='scsi'/&gt;
 
    &lt;/disk&gt;
 
</pre>
 
Anschließend kann die Konfiguration gespeichert und die virtuelle Instanz mit der neuen Konfiguration gestartet werden. Sollten sich weitere SCSI-Laufwerke in der virtuellen Instanz befinden, muss ''sda'' durch einen anderen Gerätenamen ersetzt werden.
 
  
 
== Überwachung der Speicherbereiche  ==
 
== Überwachung der Speicherbereiche  ==

Revision as of 07:24, 15 March 2011

Auf dieser Seite werden weiterführende technische Details zu UVMM bereitgestellt die sich auf unterschiedliche Bereiche in der Verwaltung und Administration von Infrastrukturen mit Virtualisierungsserver beziehen. Dieser Artikel basiert auf dem Vorwissen, dass in dem UVMM Quickstart und dem UVMM-Abschnitt des UCS-Handbuchs beschrieben ist, daher sollte dieser zuvor beachtet werden.

Anlegen eines Speicherbereichs auf einem iSCSI-Target


Bei den im folgenden dokumentierten administrativen Aufgaben wird das Kommandozeilenprogramm virsh verwendet, dass von libvirt mitgebracht wird. Weitere Informationen zu diesem Programm sind in der man-Page virsh(1) zu finden.

Verwaltung von virtuellen Instanzen

In diesem Abschnitt werden Hinweise gesammelt, die sich auf die Verwaltung der virtuellen Instanzen beziehen.

Paravirtualisierte Xen-Instanzen

Diese Art von Xen-Instanzen werden mittels des Bootloader pygrub gestartet. Dieser extrahiert den Kernel sowie die Initrd aus dem Festplatten-Image, um die virtuelle Instanz zu booten. Damit dies funktioniert, müssen folgende Bedingungen erfüllt sein:

  • Die zu bootende Festplatte muss die erste in der Liste sein. Dies kann im UMC-Modul angepasst werden. Dafür kann in der Liste der Laufwerke einer Instanz auf die Schaltfläche 'Als Bootmedium setzen' geklickt werden.
  • Auf der Festplatte muss es entweder eine Partition geben, bei der das Boot-Flag gesetzt ist oder der Kernel muss auf der ersten Partition zu finden sein.

Wiederherstellung

Sollte eine virtuelle Instanz einmal durch einen Fehlerfall nicht mehr in UVMM angezeigt werden, dann kann diese aus einer Sicherung wiederhergestellt werden. Bei jeder Veränderung der Konfiguration einer virtuellen Instanz erzeugt UVMM in dem Verzeichnis /var/backups/univention-virtual-machine-manager-daemon/ eine Sicherung der letzten Version der Konfiguration. Die Dateien in dem Verzeichnis enthalten die XML-Beschreibung der virtuellen Instanzen und sind nach der UUID (einem eindeutigen Bezeichner) der Instanzen benannt.

Zur Wiederherstellung der Instanz kann das Skript univention-virtual-machine-manager-restore verwendet werden. Damit die Wiederherstellung funktionieren kann müssen die folgenden Kritieren erfüllt sein:

  • Die Festplatten- und CDROM-Imagedateien müssen weiterhin in dem selben Verzeichnis verfügbar sein
  • Die Virtualisierungstechnik muss die gleiche sein (Xen oder KVM)

Um eine Liste der verfügbaren Sicherungen zu erhalten kann das folgende Kommando verwendet werden:

univention-virtual-machine-manager-restore -l

Wenn die Liste der Sicherungen zu lang ist, kann durch Angabe eines Musters für den Namen die Liste eingeschränkt werden:

univention-virtual-machine-manager-restore -l -p "*winxp*"

Um eine virtuelle Instanz wiederherzustellen kann das folgende Kommando ausgeführt werden:

univention-virtual-machine-manager-restore -r <name>

Das Argument <name> muss durch den Namen oder die UUID der virtuellen Instanz ersetzt werden. Wenn bereits eine virtuelle Instanz mit dem selben Namen auf dem Server existiert wird die Wiederherstellung abgebrochen es sei denn die Option -f wird angegeben. In dem Fall wird die Wiederherstellung erzwungen.

Nachdem die virtuelle Instanz erfolgreich wiederhergestellt wurde kann sie mit dem folgenden Kommando (als root auszuführen) gestartet werden:

virsh start <name>

Hinweis: Sollte die Instanz zuvor gelöscht worden sein, dann funktioniert diese Wiederherstellung nur, wenn beim Löschen der Instanz die Festplatten-Images nicht mit entfernt worden sind.

Performance bei Windows-Systemen

Die Performance von virtualisierten Windows-Systeme ist gegenüber auf Hardware laufenden Systemen geringer, was durch die Virtualisierungstechnik kommt. Um diese Performance zu verbessern, können auf den Windows-Systemen spezielle Treiber installiert werden, die die Performance deutlich verbessern.

Bei Xen-Systemen können die GPLPV-Treiber verwendet werden:

wiki.xensource.com/xenwiki/XenWindowsGplPv

Für KVM gibt es die virtio-Treiber:

www.linux-kvm.com/content/latest-windows-virtio-drivers

Storageverwaltung

Im folgenden werden einige Besonderheiten der Storageverwaltung in UVMM beschrieben.

Überwachung der Speicherbereiche

Die Festplatten-Images, die durch UVMM angelegt werden, sind sogenannte Sparse-Dateien, d.h. diese Dateien belegen nach dem Anlegen nicht den kompletten Speicherbereich, der als Größe der Festplatte angegeben wurde, sondern wachsen erst bei Bedarf. Aus diesem Grund ist es sinnvoll, die Speicherbereich mit Nagios zu überwachen, so dass vor dem Volllaufen eines Speicherbereiches vorzeitig etwas unternommen werden kann.

UVMM auf standalone Memberserver

Normalerweise nutzt UVMM den Univention Directory Manager, um auf Informationen im LDAP zuzugreifen bzw. dort zusätzliche Informationen zu den einzelnen Instanzen abzulegen. Wenn UVMM auch auf einem Memberserver verwendet werden soll, der nicht Teil einer Domäne ist, muß auf einen Teil der Funktionen von UVMM verzichtet werden.

Zunächst muß die Verwendung von LDAP mit der Option -b "" deaktiviert werden. Da im LDAP aber auch gespeichert wird, welche Virtualisierungsserver vom UVMM verwaltet werden sollen, müssen diese deshalb als zusätzliche Parameter explizit aufgeführt werden.

Diese Optionen lassen sich am einfachsten über die Variable DAEMON_OPTS in der standardmäßig nicht vorhandenen Datei /etc/default/uvmmd einstellen, die zusätzlich auch noch die Optionen -s 0.0.0.0 -d enthalten muß, mit denen UVMM normalerweise durch /etc/init.d/univention-virtual-machine-manager aufgerufen wird.

Der folgende Befehl erzeugt eine solche Datei, mit der UVMM dann nur die eigene Maschine als Virtualisierungsserver nutzt:

echo DAEMON_OPTS=\"-s 0.0.0.0 -d -b \'\' xen://$(hostname -f)/\" >>
/etc/default/uvmmd
Personal tools