Website-Suche

Erstellen und Installieren von virtuellen Gastmaschinen in XenServer - Teil 5


In diesem Artikel geht es weiter mit der XenServer-Serie und es wird auf die Erstellung der eigentlichen Gäste selbst eingegangen (oft als virtuelle Maschinen bezeichnet).

Update: Im Mai 2016 hat Citrix die neue Version der XenServer 7-Plattform veröffentlicht. Für die Installation folgen: Neuinstallation von XenServer 7.

In diesem Artikel wird davon ausgegangen, dass alle vorherigen Artikel zu Netzwerken, Patches und Speicher abgeschlossen wurden. Zum Glück muss keine neue Terminologie mehr diskutiert werden und die Erstellung der Gäste kann beginnen!

Systemüberprüfung

Zu diesem Zeitpunkt wurde auf diesem XenServer-Host viel konfiguriert. Dies dient als kurzer Überblick darüber, was konfiguriert wurde und in welchem Artikel das Thema besprochen wurde.

  1. XenServer 6.5 wurde auf dem Server installiert
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. Alle XenServer 6.5-Patches wurden angewendet
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. Es wurden Netzwerkschnittstellen-Teaming und VLANs erstellt
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. iSCSI- und ISO-Speicher-Repositories wurden erstellt, um die Installationsdateien des Betriebssystems und die von den Gästen verwendeten virtuellen Festplatten zu speichern
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

Anlegen von virtuellen Gästen in XenServer

In diesem Teil des Handbuchs geht es darum, ISO-Installationsprogramme zu verwenden, um den neu erstellten Gastrechner zu booten und ein Betriebssystem zu installieren. Lesen Sie unbedingt den vierten Artikel, um Informationen zum Erstellen eines ISO-Repositorys zu erhalten.

XenServer wird mit einer Reihe von Vorlagen geliefert, mit denen Sie schnell einen virtuellen Gast bereitstellen können. Diese Vorlagen bieten allgemeine Optionen für das ausgewählte Betriebssystem. Zu den Optionen gehören unter anderem Dinge wie Festplattenspeicher, CPU-Architektur und verfügbare RAM-Größe.

Diese Optionen können später manuell geändert werden, aber vorerst wird eine einfache Vorlage verwendet, um ihre Verwendung zu veranschaulichen. Um die Liste der verfügbaren Vorlagen zu erhalten, können dem traditionellen Befehl 'xe' verschiedene Argumente übergeben werden, um das System aufzufordern, die verfügbaren Vorlagen zurückzugeben.


xe template-list

Dieser Befehl gibt wahrscheinlich eine große Anzahl von Ausgaben zurück. Um die Ausgabe besser lesbar zu machen, wird empfohlen, die Ausgabe wie folgt in "less" zu leiten:


xe template-list | less

Dies ermöglicht ein einfacheres Parsen der verfügbaren Vorlagen, um die erforderlichen UUID-Informationen zu finden. Dieser Artikel funktioniert mit Debian 8 Jessie, erfordert jedoch die Verwendung der älteren Debian 7 Wheezy-Vorlage, bis Citrix die neue Vorlage veröffentlicht.

Die Auswahl von Debian 7 hat keinen Einfluss auf den Betrieb des eigentlichen Betriebssystems. (Im folgenden Screenshot wurde die UUID im Befehl verwendet, um einen Teil der normalen Ausgabe herauszuschneiden.)


xe sr-list name-label=”Tecmint iSCSI Storage”

Mit dieser UUID wurden alle anfänglichen Informationen zum Einrichten dieses Gasts abgerufen. Wie bei fast allem in XenServer wird ein weiterer 'xe'-Befehl verwendet, um den neuen Gast bereitzustellen.


xe vm-install template=”Debian Wheezy 7.0 (64-bit)” new-name-label="TecmintVM" sr-uuid=bea6caa4-ecab-8509-33a4-2cda2599fb75

Die hervorgehobene UUID ist die UUID des neu bereitgestellten Gasts. Es gibt ein paar Schritte zur Haushaltsführung, die die Dinge in Zukunft möglicherweise einfacher machen können. Die erste besteht darin, der neu erstellten VDI eine Namensbezeichnung zu geben, und die zweite besteht darin, eine der standardmäßigen Hardwarespezifikationen zu ändern, die von der Vorlage bereitgestellt werden.

Um zu sehen, warum es wichtig wäre, den VDI zu benennen, werfen Sie einen Blick darauf, was das System dem VDI automatisch zuweist, wenn es mit den folgenden 'xe'-Befehlen bereitgestellt wird:


xe vbd-list vm-name-label=TecmintVM – Used to get the VDI UUID
xe vdi-list vbd-uuids=2eac0d98-485a-7c22-216c-caa920b10ea9    [Used to show naming issue]

Eine weitere verfügbare Option ist der folgende Befehl, um beide Informationen zu sammeln:


xe vm-disk-list vm=TecmintVM

Der Teil in Gelb ist das Problem. Für viele Menschen ist dieses Problem unbedeutend, aber für Haushaltszwecke ist ein aussagekräftigerer Name wünschenswert, um den Zweck dieses speziellen VDI im Auge zu behalten. Um diesen speziellen VDI umzubenennen, wird die UUID in der obigen Ausgabe benötigt und ein weiterer 'xe'-Befehl muss erstellt werden.


xe vdi-param-set uuid=90611915-fb7e-485b-a0a8-31c84a59b9d8 name-label="TecmintVM Disk 0 VDI"
xe vm-disk-list vm=TecmintVM

Dies mag trivial erscheinen, aber aus Erfahrung hat dies ein ernsthaftes Problem beim Trennen eines Speicher-Repositorys von einem XenServer und dem Versuch, es an einen anderen XenServer anzuhängen, verhindert. In diesem speziellen Szenario konnte eine Metadatensicherung aller Gastinformationen auf dem neuen XenServer nicht wiederhergestellt werden, und glücklicherweise konnte durch die Benennung des VDI auf jedem der Gäste eine ordnungsgemäße Zuordnung des Gastes zu seinem VDI einfach über das Namensetikett erfolgen.

Der nächste Schritt für die Haushaltsführung in diesem Artikel besteht darin, diesem bestimmten Gast mehr Ressourcen zur Verfügung zu stellen. Bei der Bereitstellung verfügt dieser Gast nur über einen Arbeitsspeicher von etwa 256 MiB (Mebibyte). Für die meisten Gäste reicht dies nicht aus, daher ist es von Vorteil zu wissen, wie man den verfügbaren Speicher eines Gastes erhöht. Wie bei allem in XenServer kann dies mit 'xe'-Befehlen erreicht werden.


xe vm-param-list uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e | grep -i memory

Das grüne Kästchen oben zeigt an, dass der größte Speicher, den dieser Gast jemals haben könnte, etwa 256 MiB beträgt. Zu Testzwecken wäre dies in Ordnung, aber für jede Art von stark beanspruchtem System würde sich dies als unzureichend erweisen.

Um diesen Wert zu ändern, um dem Gast Zugriff auf mehr RAM zu gewähren, kann ein einfacher 'xe'-Befehl ausgegeben werden, wenn der Gast ausgeschaltet ist. In diesem Beispiel wird die Menge an RAM, die diesem Computer zugewiesen werden soll, in Byte dargestellt, entspricht jedoch 2 Gibibyte RAM.


xe vm-memory-limits-set dynamic-max=2147483648 dynamic-min=2147483648 static-max=2147483648 static-min=2147483648 name-label=TecmintVM

Beachten Sie, dass dies die ganze Zeit zwei GiB RAM für diesen Gast reserviert.

Jetzt ist dieser spezielle Gast bereit, ein Betriebssystem zu installieren. Aus dem vorherigen Artikel über Storage Repositories wurde diesem XenServer eine Samba-Freigabe hinzugefügt, um ISO-Installationsdateien zu speichern. Dies kann mit dem folgenden 'xe'-Befehl bestätigt werden:


xe sr-list name-label=Remote\ ISO\ Library\ on:\ //<servername>/ISO

Achten Sie darauf, <servername> durch den Namen des richtigen Samba-Servers für die Umgebung zu ersetzen, in der diese Konfiguration stattfindet. Sobald bestätigt wurde, dass der XenServer das ISO-Speicher-Repository sieht, muss dem Gast eine virtuelle CD-ROM hinzugefügt werden, um die ISO-Datei zu starten. Diese Anleitung geht davon aus, dass die Debian Net Installer-ISO auf dem ISO-Speicher-Repository vorhanden ist.


xe cd-list | grep debian


xe vm-cd-add vm=TecmintVM cd-name=debian-8-netinst.iso device=3
xe vbd-list vm-name-label=TecmintVM userdevice=3

Die obigen Befehle listen zuerst den Namen für die Debian-ISO auf. Der nächste Befehl fügt dem TecmintVM-Gast ein virtuelles CD-ROM-Gerät hinzu und weist ihm die Geräte-ID 3 zu.

Der dritte Befehl wird verwendet, um die UUID für die neu hinzugefügte CD-ROM zu bestimmen, um mit der Einrichtung des Geräts zum Booten der Debian-ISO fortzufahren.

Der nächste Schritt besteht darin, die CD-ROM bootfähig zu machen und den Gast anzuweisen, ein Betriebssystem von der CD-ROM zu installieren.


xe vbd-param-set uuid=3836851f-928e-599f-dc3b-3d8d8879dd18 bootable=true
xe vm-param-set uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e other-config:install-repository=cdrom

Der erste obige Befehl setzt die CD-ROM so, dass sie bootfähig ist, indem ihre UUID verwendet wird, die im obigen Screenshot grün hervorgehoben ist. Der zweite Befehl weist den Gast an, die CD-ROM als Methode zur Installation des Betriebssystems zu verwenden. Die UUID für den Tecmint-Gast ist im obigen Screenshot in Gelb hervorzuheben.

Der letzte Schritt beim Einrichten des Gasts besteht darin, eine virtuelle Netzwerkschnittstelle (Virtual Network Interface, VIF) anzuhängen. Dies ist besonders wichtig für diese Installationsmethode, da der Debian-Netzwerk-Installer verwendet wird und Pakete aus den Debian-Projektarchiven ziehen muss.

Wenn ich auf den XenServer-Netzwerkartikel zurückblicke, wurde bereits ein spezielles VLAN für diesen Gast erstellt, und es war VLAN 10. Mit 'xe' kann die notwendige Netzwerkschnittstelle erstellt und diesem Gast zugewiesen werden.


xe network-list name-description="Tecmint test VLAN 10"
xe vif-create vm-uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e network-uuid=cfe987f0-b37c-dbd7-39be-36e7bfd94cef device=0

Der erste Befehl wird verwendet, um die UUID des Netzwerks abzurufen, das für diesen Gast erstellt wurde. Der nächste Befehl wird verwendet, um einen Netzwerkadapter für den Gast zu erstellen und den Netzwerkadapter an das richtige Netzwerk anzuhängen.

Congrats! Zu diesem Zeitpunkt kann die virtuelle Maschine gestartet und installiert werden! Um den Gast zu starten, geben Sie den folgenden 'xe'-Befehl ein.


xe vm-start name-label=TecmintVM

Wenn das Terminal keine Fehler erzeugt, wurde der Gast erfolgreich gestartet. Der ordnungsgemäße Start des Gastes kann mit dem folgenden 'xe'-Befehl bestätigt werden:


xe vm-list name-label=TecmintVM

Nun die große Frage. Wie greife ich auf das Installationsprogramm zu? Das ist eine berechtigte Frage. Die von Citrix genehmigte Methode ist die Verwendung von XenCenter. Das Problem hier ist, dass XenCenter nicht unter Linux läuft! Es gibt also einen Workaround, damit Benutzer nicht einfach eine spezielle Windows-Station erstellen müssen, um auf die Konsole eines laufenden Gastes zuzugreifen.

Bei diesem Vorgang wird ein SSH-Tunnel vom Linux-Computer zum XenServer-Host erstellt und dann eine VNC-Verbindung über diesen Tunnel weitergeleitet. Es ist sehr clever und funktioniert wunderbar, aber diese Methode setzt voraus, dass der Benutzer über SSH auf den XenServer zugreifen kann.

Der erste Schritt besteht darin, die Domänennummer des Gastes auf dem XenServer zu ermitteln. Dies geschieht durch die Verwendung mehrerer verschiedener Befehle.


xe vm-list params=dom-id name-label=TecmintVM
xenstore-read /local/domain/1/console/vnc-port

Die Reihenfolge dieser Befehle ist wichtig! Der erste Befehl gibt eine Zahl zurück, die für den zweiten Befehl benötigt wird.

Die Ausgabe beider Befehle ist wichtig. Die erste Ausgabe gibt die Domänen-ID an, in der der Gast ausgeführt wird. 1 in diesem Fall. Für den nächsten Befehl ist diese Nummer erforderlich, um den VNC-Port für die Gastkonsolensitzung zu bestimmen. Die Ausgabe dieses Befehls stellt den VNC-Port bereit, der für die Verbindung mit dem Video aus diesem bestimmten Gast verwendet werden kann.

Mit den oben genannten Informationen ist es an der Zeit, zu einer Linux-Station zu wechseln und eine Verbindung zum XenServer herzustellen, um die Konsolensitzung dieses Gasts anzuzeigen. Zu diesem Zweck wird ein SSH-Tunnel erstellt und eine Portweiterleitung eingerichtet, um eine lokale VNC-Verbindung durch den SSH-Tunnel zu leiten. Diese Verbindung wird von einer Linux Mint 17.2-Workstation aus hergestellt, sollte aber für andere Distributionen ähnlich sein.

Der erste Schritt besteht darin, sicherzustellen, dass der OpenSSH-Client und xtightnvcviewer auf dem Linux-Host installiert sind. In Linux Mint kann dies mit dem folgenden Befehl erreicht werden:


sudo apt-get install openssh-client xtightvncviewer

Mit diesem Befehl werden die erforderlichen Dienstprogramme installiert. Der nächste Schritt besteht darin, einen SSH-Tunnel zum XenServer-Host zu erstellen und die Portweiterleitung an den VNC-Port einzurichten, der zuvor auf dem XenServer-Host (5902) bestimmt wurde.


ssh -L <any_port>:localhost:<VM_Port_Above> root@<server> -N
ssh -L 5902:localhost:5902 root@<servername> -N

Die Option '-L' weist ssh an, weiterzuleiten. Der erste Port kann ein beliebiger Port über 1024 sein, der auf dem Linux Mint-Computer nicht verwendet wird. Der 'localhost:5902' gibt an, dass der Datenverkehr an den Remote-Localhost-Port 5902 weitergeleitet werden soll, in diesem Fall ist dies der XenServer VNC-Port der TecmintVM.

Der "root@<Server>" sind die Anmeldeinformationen für SSH auf dem XenServer-Host. Schließlich weist das '-N' SSH an, einfach eine Portweiterleitungsverbindung zu öffnen. Mit dem Befehl 'lsof' kann der Tunnel in der Ausgabe angezeigt werden.


sudo lsof -i | grep 5902

Hier wird der Tunnel eingerichtet und wartet auf Verbindungen. Jetzt ist es an der Zeit, eine VNC-Verbindung zum Gast auf dem XenServer zu öffnen. Das installierte Dienstprogramm ist 'xvncviewer' und die SSH-Verbindung zum Weiterleiten des Datenverkehrs an den XenServer lauscht auf 'localhost:5902', damit der entsprechende Befehl erstellt werden kann.


xvncviewer localhost:5902

Voila! Es gibt die TecmintVM-Konsolensitzung, in der der Debian-Netzwerk-Installer ausgeführt wird, die darauf wartet, dass der Installationsvorgang beginnt. Zu diesem Zeitpunkt verläuft die Installation wie jede andere Debian-Installation auch.

Bis zu diesem Zeitpunkt wurde alles mit XenServer über die Befehlszeilenschnittstelle (CLI) erledigt. Während viele Linux-Benutzer die CLI genießen, gibt es Dienstprogramme, die den Prozess der Verwaltung von XenServer-Hosts und -Pools vereinfachen. Der nächste Artikel in dieser Reihe befasst sich mit der Installation dieser Tools für Benutzer, die grafische Systeme anstelle der CLI verwenden möchten.

Verwandte Artikel: