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 Wissen, dass in dem [[UVMM Quickstart]] beschrieben ist, daher sollte dieser zuvor beachtet werden.  
  
Informationen zu Test-Versionen von UVMM sind in dem folgenden Artikel zu finden [[UVMM Testing]]
+
Informationen zu Test-Versionen von UVMM sind in dem folgenden Artikel zu finden [[UVMM Testing]]  
  
 
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 18: Line 18:
 
== Wiederherstellung  ==
 
== 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.
+
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:
+
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 Festplatten- und CDROM-Imagedateien müssen weiterhin in dem selben Verzeichnis verfügbar sein  
* Die Virtualisierungstechnik muss die gleiche sein (Xen oder KVM)
+
*Die Virtualisierungstechnik muss die gleiche sein (Xen oder KVM)
  
Um eine Liste der verfügbaren Sicherungen zu erhalten kann das folgende Kommando verwendet werden:
+
Um eine Liste der verfügbaren Sicherungen zu erhalten kann das folgende Kommando verwendet werden:  
  
 
  univention-virtual-machine-manager-restore -l
 
  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:
+
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*"
 
  univention-virtual-machine-manager-restore -l -p "*winxp*"
  
Um eine virtuelle Instanz wiederherzustellen kann das folgende Kommando ausgeführt werden:
+
Um eine virtuelle Instanz wiederherzustellen kann das folgende Kommando ausgeführt werden:  
  
  univention-virtual-machine-manager-restore -r <name>
+
  univention-virtual-machine-manager-restore -r &lt;name&gt;
  
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.
+
Das Argument &lt;name&gt; 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:
+
Nachdem die virtuelle Instanz erfolgreich wiederhergestellt wurde kann sie mit dem folgenden Kommando (als root auszuführen) gestartet werden:  
  
virsh start <name>
+
virsh start &lt;name&gt;
  
'''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.
+
'''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:
 +
 
 +
[http://wiki.xensource.com/xenwiki/XenWindowsGplPv wiki.xensource.com/xenwiki/XenWindowsGplPv]
 +
 
 +
Für KVM gibt es die virtio-Treiber:
 +
 
 +
[http://www.linux-kvm.com/content/latest-windows-virtio-drivers www.linux-kvm.com/content/latest-windows-virtio-drivers]
  
 
= Storageverwaltung  =
 
= Storageverwaltung  =
  
Univention Virtual Machine Manager verwaltet die Festplatten- und ISO-Images innerhalb sogenannter Speicherbereiche. In der Voreinstellung wird auf jedem Virtualisierungsserver ein Speicherbereich ''Lokales Verzeichnis'' angelegt, der auf der lokalen Festplatte liegt. UVMM unterstützt weitere Arten von Speicherbereichen, die beispielsweise auf einem iSCSI-Gerät oder auf LVM-Partitionen liegen können. Wie solche Speicherbereiche auf den Virtualisierungsservern verwaltet werden können, wird im folgenden erläuert.  
+
Im folgenden werden einige Besonderheiten der Storageverwaltung in UVMM&nbsp;beschrieben.  
  
 
== Erstellen von iSCSI-Speicherbereichen  ==
 
== Erstellen von iSCSI-Speicherbereichen  ==
  
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:  
+
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;
 
<pre>&lt;pool type='dir'&gt;
 
   &lt;name&gt;default&lt;/name&gt;
 
   &lt;name&gt;default&lt;/name&gt;
Line 114: Line 126:
 
== Überwachung der Speicherbereiche  ==
 
== Ü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.
+
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.
+
= UVMM auf standalone Memberserver =
  
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.
+
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.  
  
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.
+
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.  
  
Der folgende Befehl erzeugt eine solche Datei, mit der UVMM dann nur die eigene Maschine als Virtualisierungsserver nutzt:
+
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.
<pre>echo DAEMON_OPTS=\"-s 0.0.0.0 -d -b \'\' xen://$(hostname -f)/\" >>
 
/etc/default/uvmmd</pre>
 
  
 +
Der folgende Befehl erzeugt eine solche Datei, mit der UVMM dann nur die eigene Maschine als Virtualisierungsserver nutzt:
 +
<pre>echo DAEMON_OPTS=\"-s 0.0.0.0 -d -b \'\' xen://$(hostname -f)/\" &gt;&gt;
 +
/etc/default/uvmmd</pre>
 
[[Category:Virtualisierung]]
 
[[Category:Virtualisierung]]

Revision as of 14:35, 8 December 2010

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.

Informationen zu Test-Versionen von UVMM sind in dem folgenden Artikel zu finden UVMM Testing

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.

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.
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:

<pool type='dir'>
  <name>default</name>
  <source>
  </source>
  <target>
    <path>/var/lib/libvirt/images</path>
    <permissions>
      <mode>0700</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

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:

<pool type='iscsi'>
  <name>iscsi</name>
  <source>
    <host name='xen6.ucs.local'/>
    <device path='iqn.2010-08.local.ucs:sdb'/>
  </source>
  <target>
    <path>/dev/disk/by-path</path>
    <permissions>
      <mode>0700</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

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)

virsh pool-define iscsi-pool.xml
virsh pool-start iscsi
virsh pool-autostart iscsi

Damit der UVMM-Dienst diese neuen Informationen zum Speicherbereich einliest, muss dieser neu gestartet werden:

invoke-rc.d univention-virtual-machine-manager-daemon restart

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 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

virsh edit <Instanzname>

öffnen und bearbeiten. In der XML-Beschreibung befindet sich ein Abschnitt, der ungefähr wie folgt aussieht:

    <disk type='file' device='disk'>
      <driver name='file'/>
      <source file='/dev/disk/by-path/ip-192.168.0.116:3260-iscsi-iqn.2010-08.local.ucs:sdb-lun-0'/>
      <target dev='hda' bus='ide'/>
    </disk>

Dieser Abschnitt muss wie folgt angepasst werden:

    <disk type='block' device='disk'>
      <driver name='phy'/>
      <source dev='/dev/disk/by-path/ip-192.168.0.116:3260-iscsi-iqn.2010-08.local.ucs:sdb-lun-0'/>
      <target dev='sda' bus='scsi'/>
    </disk>

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

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