Website-Suche

So erstellen und installieren Sie virtuelle Gastmaschinen in XenServer – Teil 5


Um die XenServer-Serie weiter voranzutreiben, befasst sich dieser Artikel mit der Erstellung der eigentlichen Gäste selbst (oft als virtuelle Maschinen bezeichnet).

Update: Im Mai 2016 veröffentlichte Citrix die neue Version der XenServer 7-Plattform. Zur Installation folgen Sie: Neuinstallation von XenServer 7.

In diesem Artikel wird davon ausgegangen, dass alle vorherigen Artikel zu Netzwerk, Patching und Speicher abgeschlossen wurden. Zum Glück müssen keine neuen Begriffe mehr besprochen werden und die Erstellung der Gäste kann beginnen!

Systemüberprüfung

Zu diesem Zeitpunkt wurde auf diesem XenServer-Host bereits viel konfiguriert. Dies dient als schneller Ü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. Netzwerkschnittstellen-Teaming und VLANs wurden erstellt
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. Es wurden iSCSI- und ISO-Speicher-Repositorys erstellt, um Betriebssysteminstallationsdateien und die von den Gästen verwendeten virtuellen Festplatten zu speichern
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

Erstellung virtueller Gäste in XenServer

In diesem Teil des Handbuchs wird auf ISO-Installationsprogramme zurückgegriffen, um den neu erstellten Gastcomputer tatsächlich zu starten und ein Betriebssystem zu installieren. Lesen Sie unbedingt den vierten Artikel, um Informationen zum Erstellen eines ISO-Repositorys zu erhalten.

XenServer verfügt über eine Reihe von Vorlagen, 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-Menge.

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 herkömmlichen Befehl 'xe' verschiedene Argumente übergeben werden, um das System aufzufordern, die verfügbaren Vorlagen zurückzugeben.


xe template-list

Dieser Befehl wird wahrscheinlich eine große Ausgabe zurückgeben. Um die Ausgabe leichter lesbar zu machen, wird empfohlen, die Ausgabe wie folgt in ‘less’ umzuleiten:


xe template-list | less

Dies ermöglicht eine einfachere Analyse 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 Screenshot unten 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 ersten 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 Haushaltsschritte, die die Dinge in Zukunft möglicherweise einfacher machen können. Die erste besteht darin, dem neu erstellten VDI ein Namensschild bereitzustellen, und die zweite besteht darin, alle von der Vorlage bereitgestellten Standard-Hardwarespezifikationen zu ändern.

Um zu verstehen, warum es wichtig wäre, dem VDI einen Namen zu geben, sehen Sie sich an, 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 besteht darin, beide Informationen zu sammeln, indem Sie den folgenden Befehl verwenden:


xe vm-disk-list vm=TecmintVM

Der gelbe Teil ist das Problem. Für viele Menschen ist dieses Problem unbedeutend, aber aus Verwaltungsgründen wäre ein aussagekräftigerer Name wünschenswert, um den Zweck dieses speziellen VDI im Auge zu behalten. Um diesen bestimmten VDI umzubenennen, ist die UUID in der obigen Ausgabe erforderlich und es muss ein weiterer ‘xe’-Befehl 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 erfahrungsgemäß hat dies ein ernstes Problem beim Trennen eines Speicher-Repositorys von einem XenServer und dem Versuch, es an einen anderen XenServer anzuschließen, 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 die ordnungsgemäße Zuordnung des Gastes zu seinem VDI einfach durchgeführt werden Namensschild.

Der nächste Haushaltsschritt für diesen Artikel besteht darin, diesem bestimmten Gast mehr Ressourcen zur Verfügung zu stellen. Bei der Bereitstellung verfügt dieser Gast nur über etwa 256 MiB (Mebibyte) Arbeitsspeicher. 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öhen kann. Wie alles 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 bestimmte Gast jemals haben könnte, etwa 256 MiB beträgt. Für Testzwecke wäre dies in Ordnung, aber für jede Art von System mit hoher Beanspruchung würde sich dies als unzureichend erweisen.

Um diesen Wert zu ändern und dem Gast Zugriff auf mehr RAM zu gewähren, kann bei ausgeschaltetem Gast ein einfacher Befehl ‘xe’ ausgegeben werden. In diesem Beispiel wird die RAM-Menge, die dieser Maschine zugewiesen werden soll, in Bytes angegeben, entspricht aber einem RAM-Wert von 2 Gibibyte.


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

Beachten Sie, dass dadurch ständig zwei GiB RAM für diesen Gast reserviert werden.

Jetzt ist dieser bestimmte Gast bereit, ein Betriebssystem zu installieren. Aus dem vorherigen Artikel über Speicher-Repositories geht hervor, dass diesem XenServer eine Samba-Freigabe hinzugefügt wurde, 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

Stellen Sie sicher, dass Sie <servername> durch den Namen des richtigen Samba-Servers für die Umgebung 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. In dieser Anleitung wird davon ausgegangen, dass die Debian Net Installer ISO im 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 zunächst 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 ermitteln, 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 Befehl oben macht die CD-ROM bootfähig, indem sie ihre im Screenshot oben grün hervorgehobene UUID verwendet. 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 gelb hervorgehoben.

Der letzte Schritt beim Einrichten des Gastes besteht darin, eine virtuelle Netzwerkschnittstelle (VIF) anzuschließen. Dies ist besonders wichtig für diese Installationsmethode, da das Debian Network-Installationsprogramm verwendet wird und Pakete aus den Debian-Repositorys abrufen muss.

Wenn ich auf den XenServer-Netzwerkartikel zurückblicke, wurde für diesen Gast bereits ein spezielles VLAN erstellt, und zwar 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 für diesen Gast erstellten Netzwerks abzurufen. Mit dem nächsten Befehl wird ein Netzwerkadapter für den Gast erstellt und der Netzwerkadapter an das richtige Netzwerk angeschlossen.

Herzlichen Glückwunsch! Jetzt ist die virtuelle Maschine zum Booten und Installieren bereit! Um den Gast zu starten, geben Sie den folgenden Befehl ‘xe’ 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 empfohlene Methode ist die Verwendung von XenCenter. Das Problem hierbei ist, dass XenCenter nicht unter Linux läuft! Daher gibt es eine Problemumgehung, damit Benutzer nicht einfach eine spezielle Windows-Station erstellen müssen, um auf die Konsole eines laufenden Gastes zuzugreifen.

Dieser Prozess umfasst die Erstellung eines SSH-Tunnels vom Linux-Computer zum XenServer-Host und die anschließende Portweiterleitung einer VNC-Verbindung über diesen Tunnel. 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 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. Der nächste Befehl benötigt diese Nummer, um den VNC-Port für die Gastkonsolensitzung zu bestimmen. Die Ausgabe dieses Befehls stellt den VNC-Port bereit, der zum Herstellen einer Verbindung zum Video dieses bestimmten Gasts verwendet werden kann.

Nachdem Sie die oben genannten Informationen erhalten haben, ist es an der Zeit, zu einer Linux-Station zu wechseln und eine Verbindung zum XenServer herzustellen, um die Konsolensitzung dieses Gasts anzuzeigen. Dazu 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 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

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


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, den Port weiterzuleiten. Der erste Port kann ein beliebiger Port über 1024 sein, der auf der Linux Mint-Maschine nicht verwendet wird. Der 'localhost:5902' gibt an, dass der Datenverkehr an den Remote-Localhost-Port 5902 weitergeleitet werden soll, in diesem Fall ist das der XenServer-VNC-Port der TecmintVM.

Bei ‘root@ handelt es sich um die Anmeldeinformationen für SSH beim 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 aufgebaut und auf Verbindungen gewartet. Jetzt ist es an der Zeit, eine VNC-Verbindung zum Gast auf dem XenServer herzustellen. Das installierte Dienstprogramm ist „xvncviewer“ und die SSH-Verbindung zur Weiterleitung des Datenverkehrs an den XenServer überwacht „localhost:5902“, sodass der entsprechende Befehl erstellt werden kann.


xvncviewer localhost:5902

Voila! Es gibt die TecmintVM-Konsolensitzung, in der der Debian Network Installer ausgeführt wird und der darauf wartet, dass der Installationsprozess beginnt. An diesem Punkt läuft die Installation wie jede andere Debian-Installation ab.

Bisher 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 dieser Reihe befasst sich mit der Installation dieser Tools für Benutzer, die grafische Systeme anstelle von CLI verwenden möchten.