Migration virtueller Maschinen von Xen 3.2 auf XenServer 6.2 in Hetzner

Ein bisschen Hintergrund


2010 habe ich mir für ein privates Projekt einen kleinen dedizierten Server auf hezner.de besorgt. Die Zeit verging, die Hardware verbesserte sich, Linux-Distributionen wurden von diesen entfernt. Support, neue Aufgaben und Möglichkeiten erschienen, und die Ressourcen für ein vollständiges Software-Upgrade auf dem Server fehlten dringend.

Da der alte Server virtualisiert wurde, kam die Idee auf, einen neuen Server zu nehmen und die gesamte alte Farm auf diesen zu migrieren, zumal hetzner einen EX40-Server zu einem interessanten Preis hatte. Im Vergleich zum alten X3 haben sich die Mietkosten nicht wesentlich erhöht (etwa 8 Euro, wenn Sie ohne Mehrwertsteuer zahlen), aber in Bezug auf die Leistung war es ein großer Durchbruch. Die Migration wurde durch den Mangel an viel Freizeit und geringen Installationskosten (Einrichtungsgebühr) pro Server behindert.

Vor ein paar Wochen habe ich versehentlich festgestellt, dass Hetzner im Juli eine Aktion durchführt und die Drüsen ohne die Einrichtungsgebühr verschenkt. Die Faulheit und die Kröte wurden besiegt, und ein wenig Freizeit schien, den Gegenstandprozeß durchzuführen.

Die Aktion findet nur im Juli statt, also wer braucht das schon - weitermachen, nicht sparen, ein Bild kaufen!

Installieren Sie XenServer


Es wurde viel über die Installation und Konfiguration von XenServer geschrieben, daher kann dieser Punkt weggelassen werden. Detaillierte Anweisungen zur Installation und Konfiguration finden Sie auch im hetzner Wiki .

Ich habe die XenServer-Distribution und die Antwortdatei auf dem alten Server abgelegt, es gab keine Probleme mit der Installationsgeschwindigkeit.

Unmittelbar nach der Installation von XenServer empfehle ich, einen nichtprivilegierten Benutzer hinzuzufügen und den Root-Zugriff auf ssh sowie den Zugriff auf den Server für alle Netzwerke außer deren eigenen zu blockieren (sofern dies natürlich möglich ist). In Zukunft können Sie OpenVPN auf einer der virtuellen Maschinen installieren und die Vorteile der VPN-Verwaltung voll ausschöpfen. Nachdem Sie diese einfachen Serverschutzmechanismen eingerichtet haben, können Sie sicher mit der Patientenvorbereitung fortfahren.

Ich empfehle, die Festplatten zu kombinieren (übrigens habe ich neue) und so zu partitionieren, dass noch wenig Platz für die Verbindung zu dom0 als Speicher für ISO-Images, Backups, das Hochladen von Softwareupdates usw. vorhanden ist.

Seit der Veröffentlichung von 6.2 im vergangenen Jahr wurden viele Updates veröffentlicht. Daher wird dringend empfohlen, die Software unmittelbar nach der Installation von XenServer zu aktualisieren und alle Patches zu installieren. Beginnen Sie besser mit SP1, nachdem Sie die Liste der Patches installiert haben, die über XenCenter angezeigt und über die angegebenen Links aus dem Internet heruntergeladen werden können (Menü Extras / Nach Updates suchen).
Eine automatische Aktualisierung, wenn Sie TP nicht über XenCenter gekauft haben, ist nicht möglich. Sie müssen die CLI verwenden.
Um die Software zu aktualisieren, müssen Sie alle Patches nach dom0 kopieren, entpacken und nacheinander die folgenden Befehle für jeden Patch ausführen:
xe patch-upload file-name=/mnt/disk/ПАТЧ1.xsupdate
xe patch-pool-apply uuid=UUID_вывод_предудущей_команды

Nach der Installation der Updates müssen Sie die Dienste mit dem folgenden Befehl neu starten:
xe-toolstack-restart

Die Liste der installierten Patches kann mit dem Befehl überprüft werden:
xe patch-list

Version XenServer 6.2 verwendet standardmäßig Open vSwitch, sodass 99% der Artikel und Kommentare zum Einrichten einer Netzwerkumgebung nicht vollständig geeignet sind (Teil zum Einrichten einer Netzwerkschnittstelle xebr0: 1, obwohl Sie wahrscheinlich mit einer Dummy-Schnittstelle leben können). Dieses Problem wird ganz einfach umgangen: Sie können XenCenter zusätzliche lokale Netzwerke und Schnittstellen hinzufügen (Sie müssen einen Server auswählen und die Registerkarte "Netzwerk" öffnen).
Vergessen Sie nach dem Einrichten eines zusätzlichen Netzwerks nicht, iptables (Firewall und NAT) für die Kommunikation mit der Außenwelt zu konfigurieren (wenn private Netzwerke verwendet werden).

Migration der virtuellen Maschine


Bei der Idee, virtuelle Maschinen zu migrieren, erinnerte sich meine Sklerose daran, dass ich meine Server mit LVM virtualisiert habe (fast erraten :). Glücklicherweise stellte ich beim Einsteigen in das Auto fest, dass Xen 3.2 installiert war (Paravirtualisierung wurde verwendet), was die Aufgabe erheblich vereinfachte.

Um eine virtuelle Maschine zu importieren, benutzte ich ein Skript xva.py, die heruntergeladen werden kann hier .
Auf dem Xen 3.2-Server für jede virtuelle Maschine müssen Sie den folgenden Befehl ausführen:
python xva.py -c /etc/xen/VM.cfg -n --sparse -s IP_XenServer --username=root --password="Password"

Die virtuelle Maschine wird in wenigen Minuten automatisch auf den neuen Server migriert. Der Export durch die Datei dauerte um ein Vielfaches länger (ich habe die Zeit nicht genau gemessen, aber die VM mit der 32-GB-Festplatte wurde mehr als eine Stunde lang exportiert).
Wenn sofort nach dem Start das Skript mit einer Meldung herausfällt
Unauthorised response from server. Exiting

Überprüfen Sie, ob Sie mit einem Passwort klug sind. Ich hatte ein Problem mit einem Punkt (".").

Wenn Sie nach dem erfolgreichen Abschluss des Exports / Imports die folgende Meldung erhalten haben, müssen Sie auf dom0 und in der virtuellen Maschine etwas anderes anpassen.
VM Successfully streamed
With the options you supplied, you will need to SFTP/SCP the kernel/initrd to the server manually
Create the /boot/guest/208f7a74-126e-11e4-8a8c-002185153241 directory
Copy /boot/vmlinuz-2.6.26-2-xen-amd64 to /boot/guest/208f7a74-126e-11e4-8a8c-002185153241/vmlinuz
and copy /boot/initrd.img-2.6.26-2-xen-amd64 to /boot/guest/208f7a74-126e-11e4-8a8c-002185153241/initrd
Copy these to _all_ the nodes in the pool

Kopieren Sie die Dateien vmlinuz- * und initrd- * von dom0 Xen 3.2 auf dom0 XenServer.
Da ich 3 virtuelle Maschinen mit einem Kern übertragen musste, habe ich keine separaten Verzeichnisse für sie erstellt (möglicherweise vergeblich), sondern ein Verzeichnis / boot / guest / lenny erstellt, in das ich die angegebenen Dateien gestellt habe.

Damit diese virtuellen Maschinen booten können, müssen Sie die Parameter PV-Kernel, PV-Ramdisk korrekt konfigurieren. In meinem Fall musste ich den PV-Bootloader-Parameter löschen, was die Arbeit störte.
Um die Parameter von virtuellen Maschinen zu konfigurieren, müssen Sie die folgenden Befehle ausführen:
xe vm-param-set uuid=UUID_VM PV-bootloader
xe vm-param-set uuid=UUID_VM PV-kernel="/boot/guest/lenny/vmlinuz"
xe vm-param-set uuid=UUID_VM PV-ramdisk="/boot/guest/lenny/initrd"

UUID_VM - Kennung der virtuellen Maschine (kann mit dem Befehl xe vm-list angezeigt werden)

Jetzt können Sie versuchen, den Computer zu starten. Schalten Sie im Fehlerfall die virtuelle Maschine nicht aus, sondern überprüfen Sie den Pfad zum Root-Gerät, unter dem die Festplatten / Partitionen in Ihrer virtuellen Maschine sichtbar sind (in XenCenter die Registerkarte Speicher, der Parameter „Gerätepfad“). Sie müssen den PV-args-Parameter entweder über die CLI oder über XenCenter bearbeiten. Ich habe die folgenden Optionen eingestellt:
root=/dev/xvda ro clocksource=jiffies

Ich versuche erneut zu booten.
Vergessen Sie nach dem erfolgreichen Laden des Betriebssystems nicht, die Datei / etc / fstab zu reparieren (geben Sie den korrekten Auslagerungsort an), und installieren Sie auch XenServer Tools. Das Paket xe-guest-utilities_6.2.0-1137_amd64.deb ist für Debian Lenny geeignet.

Es scheint alles zu sein. Es bleibt nur bis Ende des Monats Zeit, den alten Server zu sichern und an Hetzner zurückzugeben.
Vadim Pavlov

Jetzt auch beliebt: