Migration mit „Virt-V2V“

Beschreibung

Dieser Artikel beschreibt einen der möglichen Wege, um virtuelle Maschinen von Benutzern in die Infrastruktur des SIM-Cloud-Projekts zu migrieren. In diesem Beispiel wird der Algorithmus der Aktionen zur Durchführung der Migration beschrieben. Virtuelle Server aus dem ESXi-Hypervisor (Version: 6.7.0 (Build 8169922)). Dieser Artikel beschreibt die Implementierung von Virtio-Treibern auf dem Windows-Betriebssystem unter Verwendung der speziellen Software „virt-v2v“. Nähere Informationen zu dieser Anwendung finden Sie auf der Website des Herstellers - Red Hat V2V GUIDE

Um die Migration des Guest Machine auf den User selbständig durchzuführen, stehen zwei Möglichkeiten zur Verfügung:

  1. Verwenden Sie das vorbereitete Image des Systems, das sich in der Liste der verfügbaren SIM-Cloud-Images befindet.
  2. Installieren Sie Ihre Kopie des Systems für die Konvertierung und führen dann den Import von Festplatten in das SIM-Cloud-Service-Projekt durch.

Die Nutzung dieser Anleitungen erfordert gewisse Fähigkeiten bezüglich der Systemadministration der Linux-und Windows-Familien. Darüber hinaus sind die Materialien dieses Artikels für Benutzer konzipiert, die ein Verständnis der wichtigsten Funktionen der SIM-Cloud-Service-Management-Schnittstelle - Dashboard besitzen und bereits folgende Artikel gelesen haben:

Allgemeine Informationen

Bei der Migration eines virtuellen Servers in die SIM-Cloud müssen das Systemlaufwerk (auf der das Betriebssystem installiert ist) sowie weitere angeschlossene Datenträger der Guest Machine aus dem bestehenden Virtualisierungssystem in das Cloud-Projekt des Kunden kopiert werden.

Voraussetzungen für das Kopieren von Datenträgern in die Cloud: - Entfernen von VMware Tools aus dem Gast-System. - Ändern des Formats des Datenträger-Images auf „raw“. - Installation der Virtio-Treiber, um eine Instanz auf KVM ausführen zu können.

NetKVM Virtio network driver
Viostor Virtio block driver
Vioscsi Virtio Small Computer System Interface (SCSI) driver
Vioser Virtio serial driver
Balloon Virtio memory balloon driver

Weitere Einzelheiten zu den verwendeten Virtio-Treibern finden Sie auf der Website des Entwicklers.

Nachdem die Datenträger vorbereitet sind, müssen sie in das Projekt „SIM-Cloud“ kopiert werden. Für diesen Vorgang werden die Befehle des Linux-Betriebssystems verwendet: „dd“ oder „cat“, je nachdem, was die Aufgabe ist. In diesem Fall werden die Daten des vorbereiteten Datenträgers „Byte für Byte“ auf den Datenträger kopiert, der mit einer bestehenden Instanz in der Cloud verbunden wird.

Die Migration eines Systemlaufwerk-Images und eines Datenfestplatten-Images ist unterschiedlich.

Migration des Systemlaufwerks

Für das Systemlaufwerk müssen Sie Folgendes ausführen:

  • Entfernung der VMware Tools;
  • Sicherstellung, dass freier Speicherplatz vorhanden ist (für die Installation von Treibern);
  • Konvertieren der Festplatte in das Rohformat;
  • Installation der zusätzlichen Virtio-Treiber;
  • Kopieren des fertigen Images in das SIM-Cloud-Service Projekt.

Migration einer zusätzlichen Datenfestplatte

Um eine Datenfestplatte vorzubereiten, müssen Sie Folgendes tun:

  • Datenträger in das „raw“-Format konvertieren;
  • Kopieren des fertigen Images in das SIM-Cloud Service Projekt.

Bei der Vorbereitung eines Datenträger-Images sind keine zusätzlichen Treiber zu installieren, da dieser Datenträger mit der Instanz verbunden wird, die bereits über alle notwendigen Treiber verfügt und in der Lage sein wird, den neuen zusätzlichen Datenträger korrekt zu bestimmen.

Migration mit einem vorinstallierten „SIM-V2V“-Image

Verwendung eines vorgefertigten Images

Betrachten wir die Option, ein bereits vorbereitetes Image zu verwenden.

Das SIM-Cloud-Team hat ein System-Image vorbereitet, das es ermöglicht, sofort mit der Migration des virtuellen Servers zum Projekt SIM-Cloud zu beginnen.

System Image „SIM-V2V“ implementiert auf der Grundlage der Distribution GNU Linux Centos 7.4 [EN], die auch in der öffentlichen Liste SIM-Cloud Images verfügbar ist.

Betriebssystem-Zugang: Benutzer: root Passwort: sim-v2v

Hinweis

Im Rahmen der Sicherheitsorganisation wird nach der ersten erfolgreichen Autorisierung angeboten, eine obligatorische Passwortänderung durchzuführen.

Starten der „SIM-V2V“-Instanz

  1. Starten einer Instanz auf der Grundlage des vorbereiteten SIM-V2V-Images.

Der Prozess der Erstellung einer Instanz wird in dem Artikel zum Thema beschrieben. Schnellstart.

Hinweis

Empfehlungen: Bei der Erstellung einer Instanz wird empfohlen, einen Instanztyp zu verwenden, der in seinen Recheneigenschaften dem Typ „SIM-A1“ (2 vCPU / 4 GB RAM) nicht nachsteht, während der Speicherplatz auf dem Systemlaufwerk 10 GB beträgt (gs1).

Anschließen eines zusätzlichen Datenträgers

  1. Anschließen eines zusätzlichen Datenträgers an die Instanz, der für die Speicherung der virtuellen Datenträger der Guest Machines sowie der bereits konvertierten, vorbereiteten Datenträger verwendet wird.

Nach der Bereitstellung einer Instanz, auf der das Betriebssystem „CentOS Linux 7“ läuft, muss die virtuelle Maschine an diese einen zusätzlichen speicherbasierten Datenträger gs1 anschließen.

Die Größe des zusätzlichen Datenträgers sollte auf der Grundlage der tatsächlichen Gesamtgröße des zu migrierenden Disk-Images zuzüglich eines zusätzlichen Speicherplatzes von mindestens 150 % des Image-Volumens gewählt werden. Wenn das Festplatten-Image beispielsweise 200 GB groß ist, sollte der an die Instanz anzuschließende Datenträger etwa 500 GB (200 GB + 300 GB) groß sein. Zusätzlicher Platz wird benötigt, um das vorbereitete konvertierte Image zu speichern, das später auf ein separates Blockgerät übertragen wird, von dem aus die Instanz erstellt wird. Der Prozess des Anschließens eines zusätzlichen Datenträgers an eine Instanz wird in einem speziellen Artikel beschrieben.

Zuordnen eines Datenträgers in der Betriebssystem-Instanz

  1. Verbinden eines neuen zusätzlichen Datenträgers in der Betriebssystem-Instanz.

Ein Beispiel für den Anschluss eines zusätzlichen Datenträgers im Betriebssystem Linux ist einem speziellen Artikel beschrieben.

Verbindung zu VMWare und Kopieren von Gastdatenträgern

  1. Verbinden der Instanz mit dem VMWare-Hypervisor, um die Datenträger des Gastrechners zu kopieren.

In dieser Phase wird eine Verbindung mit dem esxi-Server hergestellt, der virtuelle Datenträger kopiert und die kopierten Datenträger in das „Rohformat“ konvertiert. Standardmäßig kopiert der v2v-Dienst alle mit der virtuellen Maschine verbundenen Datenträger. Sie müssen zunächst in das Verzeichnis wechseln, in das Sie die Datenträger kopieren wollen.

cd /data

Hinweis

Bevor Sie mit dem Kopieren eines Images von ESXi beginnen, müssen Sie Folgendes tun:

  1. Entfernen Sie die Anwendung VMware Tools aus dem Betriebssystem der Gastmaschine. Wenn Ihr System nicht über diese Komponente verfügt, überspringen Sie einfach diesen Schritt. Um die Anwendung zu deinstallieren, folgen Sie dem Pfad „Start“ → „Systemsteuerung“→“ Programme und Funktionen“, wählen Sie aus der Liste VMware Tools und klicken Sie auf Entfernen.
  2. Nachdem das Dienstprogramm VMware Tools deinstalliert wurde, muss die virtuelle Maschine (VM) ausgeschaltet werden. Wenn die VM nicht vorher ausgeschaltet wurde, kann das Kopieren des Datenträgers nicht gestartet werden.

Beispiel für die Verbindung mit einem Remote-ESXi-Hypervisor:

Achtung

Nach dem Ausführen des Befehls zum Kopieren der Gastmaschine vom Server esxi muss bei der Dienstanforderung („Geben Sie das Host-Passwort für den Benutzer ‚user_esxi‘ ein:“) das Benutzerkennwort mehrmals eingegeben werden, woraufhin eine Verbindung hergestellt wird.

virt-v2v-copy-to-local -ic esx://user_esxi@esxi_n.sim-networks.net 2012_v2v
[   0,0] Fetching the remote libvirt XML metadata ...
2019-02-12 10:31:24.317+0000: 19144: info : libvirt version: 4.5.0, package: 10.el7_6.4 (CentOS BuildSystem <http://bugs.centos.org>, 2019-01-29-17:31:22, x86-01.bsys.centos.org)
2019-02-12 10:31:24.317+0000: 19144: info : hostname: v2v-prod
2019-02-12 10:31:24.317+0000: 19144: warning : esxConnectOpen:857 : Ignoring unexpected path '' for non-vpx scheme 'esx'
Enter user_esxi's password for esxi_n.sim-networks.net:
[   6,9] Parsing the remote libvirt XML metadata ...
Enter host password for user 'user_esxi':
Enter host password for user 'user_esxi':
Enter host password for user 'user_esxi':
Enter host password for user 'user_esxi':
[  29,6] Copying remote disk 1/2 to 2012_v2v-disk1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 40.0G  100 40.0G    0     0  86.9M      0  0:07:50  0:07:50 --:--:-- 87.8M
[ 500,5] Copying remote disk 2/2 to 2012_v2v-disk2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10.0G  100 10.0G    0     0  86.0M      0  0:01:59  0:01:59 --:--:-- 88.8M
[ 619,6] Writing libvirt XML metadata to 2012_v2v.xml ...
[ 619,6] Finishing off


"user_esxi" - the name of the user who has the ability to remote
              connect to esxi server via ssh.

"esxi_n.sim-networks.net" - FQDN of the remote esxi server to which it is running
                            connection.

"2012_v2v" - the name of the guest machine (VM).

"-v -x" - additional optional keys for displaying debug information.

If you need to display additional debug information, the command can be run
with the "-v -x" keys.

Example: virt-v2v-copy-to-local -ic esx://user_esxi@esxi_n.sim-networks.net 2012_v2v  -v -x

Hinweis

Wenn der ESXi-Server, zu dem eine Verbindung hergestellt werden soll, ein „selbstsigniertes“ Zertifikat verwendet, wird die Verbindung nicht hergestellt. Beim Versuch, eine Verbindung herzustellen, erhält der Benutzer eine Fehlermeldung: „libvirt: ESX Driver error : internal error: curl_easy_perform() returned an error: Peer certificate cannot be authenticated with given CA certificates (60) : Peer’s certificate issuer has been marked as not trusted by the user“.

Um diesen Fehler zu beheben, müssen Sie das Befehlsformat verwenden: „esx://example-esx.com/?no_verify=1“.

Beispiel: “virt-v2v-copy-to-local -ic esx://user_esxi@esxi_n.sim-networks.net/?no_verify=1 2012_v2v -v -x”

Hinweis

Der Kopiervorgang des Datenträgers dauert einige Zeit und hängt von der Größe des zu kopierenden Datenträgers und der Geschwindigkeit der Verbindung mit dem esxi-Server ab. Während des Kopierens zeigt der v2v-Dienst den aktuellen Stand des Kopiervorgangs und die Anzahl der zu kopierenden Datenträger an.

Überprüfen Sie die kopierten Datenträger-Images.

Mit dem Befehl „ls -lh“ überprüfen Sie das Vorhandensein und die Größe der Dateien:

ls -lh /data
total 51G
-rw-r--r--. 1 root root  40G Feb 12 11:39 2012_v2v-disk1
-rw-r--r--. 1 root root  10G Feb 12 11:41 2012_v2v-disk2
-rw-r--r--. 1 root root 1,4K Feb 12 11:41 2012_v2v.xml
drwx------. 2 root root  16K Feb 12 10:56 lost+found

"2012_v2v-disk1" - Systemlaufwerk, Kapazität 40G.
"2012_v2v-disk2" - Datenlaufwerk, 10G Kapazität.

Überprüfen Sie das Dateiformat mit dem Befehl „qemu-img info“:

qemu-img info 2012_v2v-disk1
image: 2012_v2v-disk1
file format: raw
virtual size: 40G (42949672960 bytes)
disk size: 40G

qemu-img info 2012_v2v-disk2
image: 2012_v2v-disk2
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 10G

Wie Sie hier sehen, haben die Dateien das richtige „Rohformat“ und die richtige Größe.

Treiber für das Systemlaufwerk installieren

  1. Konvertieren und Installieren von Treibern für das Systemlaufwerk.

In dieser Phase müssen Sie die virtio-Treiber für die Systemlaufwerke unter dem Betriebssystem Windows installieren. Für Systemlaufwerke mit dem Betriebssystem Linux ist keine zusätzliche Installation von virtio-Treibern erforderlich.

Die Software „Virt-v2v“ ermöglicht die automatische Implementierung des „virtio“-Treibers je nach Version des Windows-Betriebssystems. Ein wichtiges Merkmal und folglich der Vorteil dieser Lösung ist, dass der Dienst „virt-v2v“ selbständig die Version und den Typ des Betriebssystems MS Windows bestimmt, wonach die erforderlichen Treiber installiert werden.

Ein Beispiel für die Konvertierung eines Systemlaufwerks mit dem Betriebssystem Windows Server 2012 Standard:

virt-v2v  -i disk /data/2012_v2v-disk1 -o local -os /data
[   0,0] Opening the source -i disk /data/2012_v2v-disk1
[   0,0] Creating an overlay to protect the source from being modified
[   0,1] Initializing the target -o local -os /data
[   0,1] Opening the overlay
[  45,5] Inspecting the overlay
[  49,1] Checking for sufficient free disk space in the guest
[  49,1] Estimating space required on target for each disk
[  49,1] Converting Windows Server 2012 Standard Evaluation to run on KVM
virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is missing.
Firstboot scripts may conflict with PnP.
virt-v2v: warning: there is no QXL driver for this version of Windows (6.2
x86_64).  virt-v2v looks for this driver in
/usr/share/virtio-win/virtio-win.iso

The guest will be configured to use a basic VGA display driver.
virt-v2v: This guest has virtio drivers installed.
[  66,4] Mapping filesystem data to avoid copying unused and blank areas
[  67,2] Closing the overlay
[  67,5] Checking if the guest needs BIOS or UEFI to boot
[  67,5] Assigning disks to buses
[  67,5] Copying disk 1/1 to /data/2012_v2v-disk1-sda (raw)
    (100.00/100%)
[ 383,7] Creating output metadata
[ 383,7] Finishing off

Hinweis

Bitte beachten Sie, dass bei der Installation der Treiber der „v2v“-Dienst keine Videotreiber findet und als Ergebnis auch nicht den Standard-VGA-Treiber. Die Videotreiber wurden absichtlich entfernt, da ihre Installation zu einer fehlerhaften Verarbeitung der GUI der Guest Machine führte (das Bild wurde spiegelverkehrt dargestellt). Aus diesem Grund raten wir dringend von der Installation von Videotreibern ab!

Nachdem die Installation der Treiber abgeschlossen und die Konvertierung des Datenträgers beendet ist, führen wir eine Überprüfung der Existenz der benötigten Datei durch:

ls -lh /data
total 59G
-rw-r--r--. 1 qemu qemu  40G Feb 12 11:39 2012_v2v-disk1
-rw-r--r--. 1 root root  40G Feb 12 12:41 2012_v2v-disk1-sda
-rw-r--r--. 1 root root 1,3K Feb 12 12:41 2012_v2v-disk1.xml
-rw-r--r--. 1 root root  10G Feb 12 11:41 2012_v2v-disk2
-rw-r--r--. 1 root root 1,4K Feb 12 11:41 2012_v2v.xml
drwx------. 2 root root  16K Feb 12 10:56 lost+found

"2012_v2v-disk1-sda" - подготовленный диск с установленными драйверами.

Prüfen des Dateiformats:

qemu-img info 2012_v2v-disk1-sda
image: 2012_v2v-disk1-sda
file format: raw
virtual size: 40G (42949672960 bytes)
disk size: 8.1G

Konvertierung zusätzlicher Laufwerke

  1. Konvertierung zusätzlicher Laufwerke.

Zusätzliche Datenträger, die während der Verbindung mit dem Hypervisor kopiert wurden, müssen nicht zusätzlich verarbeitet oder konvertiert werden. Unmittelbar nach dem Kopieren sind zusätzliche (systemfremde) Datenträger bereits im erforderlichen Format ist „raw“.

Erstellen und Mounten eines bootfähigen Systemlaufwerks

  1. Anschließen eines zusätzlichen Datenträgers zur Erstellung eines bootfähigen Systemlaufwerks.

Um einen neuen Datenträger zu erstellen, von dem aus die Instanz gestartet wird oder der als zusätzlicher Datenträger verwendet werden soll, müssen Sie zunächst ein Volumen definieren. Wenn Sie einen Datenträger angeben, der kleiner ist als die nominale Größe des Datenträgers für den Import, dann wird die nächste Phase des Kopierens mit einem Fehler enden. Wenn der Datenträger zu groß ist, dann wird seine Verwendung nicht sinnvoll sein.

Um das benötigte Volumen zu bestimmen, ist es notwendig, das Volumen des bereits vorbereiteten Datenträgers für die Migration mit dem Befeh „ls -lh <filename>“ zu berechnen.

ls -lh 2012_v2v-disk1-sda
-rw-r--r--. 1 root root 40G Feb 12 12:41 2012_v2v-disk1-sda

In diesem Fall beträgt die Größe der Datei „2012_v2v-disk1-sda“ (vorbereitet für die Migration des Systemlaufwerks) 40G. Daher muss ein neuer Datenträger mit einer Größe von 40 GB erstellt werden.

(Der Vorgang zur Erstellung eines Datenträgers wird in einem speziellen Artikel beschrieben) Daher ist es notwendig, einen leeren Datenträger zu erstellen. Der erstellte Datenträger muss mit der v2v-Instanz verbunden werden (ähnlich dem zuvor beschriebenen Prozess).

Nach dem Hinzufügen eines neuen 40G Datenträgers ist die Verfügbarkeit des Datenträgers im Betriebssystem zu prüfen:

fdisk -l
Disk /dev/vdc: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Der Datenträger „/dev/vdc“ ist verfügbar, der Datenträger kann verwendet werden.

Kopieren eines Systemlaufwerk-Images auf einen neuen Datenträger

  1. Kopieren des vorbereiteten Systemlaufwerk-Images auf einen neuen sekundären Datenträger.

Da alle Datenträger mit einer Instanz verbunden sind, auf der das Betriebssystem Linux läuft, wird das Kopieren des Datenträger-Images lokal mit dem Dienstprogramm „dd“ durchgeführt.

Ein Beispiel für das Kopieren eines Datenträger-Images auf ein separates Gerät „/dev/vdc“:

dd if=/data/2012_v2v-disk1-sda of=/dev/vdc bs=32M
1280+0 records in
1280+0 records out
42949672960 bytes (43 GB) copied, 172,71 s, 249 MB/s

Das Datenträger-Image wurde erfolgreich auf das Blockgerät „/dev/vdc“ kopiert.

Trennen des Datenträgers, auf den das Systemlaufwerk kopiert wurde

  1. Trennen Sie den zusätzlichen Datenträger, auf den das Systemlaufwerk kopiert wurde.

Nach dem erfolgreichen Kopieren des Datenträger-Images müssen Sie den Blockträger, auf den kopiert wurde, ausschalten, da in Zukunft von diesem Datenträger eine neue Instanz gestartet wird. Als Beispiel (in unserem Fall) trennen wir das Gerät „/dev/vdc“.

Der Vorgang des Trennens eines Datenträgers von einer Instanz ist in unserer Dokumentation beschrieben: „Unmounting a disk

Einstellen der Option - „Boot“ für das Systemlaufwerk

  1. Ändern der Einstellungen des Systemlaufwerks - Einstellen der Option - „Bootfähig“.
  • Durchführen der Datenträger-Bearbeitung *

Dies erfordert folgende Maßnahmen: - Rufen Sie das Menü „Datenträger“ auf und wählen Sie den Punkt „Datenträger“. - Wählen Sie in der Spalte „Aktionen“ aus der Dropdown-Liste den Punkt „Datenträger bearbeiten“. - n dem sich öffnenden Dialogfeld müssen Sie das Kennzeichen „Boot“ setzen.

Anschließen zusätzlicher Laufwerke zum Erstellen von Datenträgern

  1. Schließen Sie zusätzliche Laufwerke an die Instanz an, um Datenträger zu erstellen.

Dieser Punkt ist relevant, wenn zusätzliche Datenträger vorhanden sind und die Notwendigkeit besteht, zusätzliche Datenträger zu migrieren. Wenn es notwendig ist, einen zusätzlichen Datenträger zu kopieren, beachten Sie bitte die Empfehlungen unter Punkt 7.

Kopieren vorgefertigter Datenträger-Images

  1. Kopieren vorbereiteter Datenträger-Images auf neue zusätzliche Datenträger.

Technisch gesehen unterscheidet sich der Vorgang des Kopierens eines zusätzlichen Datenträger-Images nicht vom Kopieren des Systemlaufwerks.

In unserem Beispiel wird ein zusätzlicher Datenträger „2012_v2v-disk2“ kopiert, der in der Phase der Verbindung mit dem Hypervisor (Menüpunkt 4) kopiert wurde:

dd if=/data/2012_v2v-disk2 of=/dev/vdc bs=32M

320+0 records in
320+0 records out
10737418240 bytes (11 GB) copied, 79,7397 s, 135 MB/s

Data disc copied successfully.

Zusätzliche Laufwerke abtrennen

  1. Trennen Sie zusätzliche Datenträger ab, auf die Datenträger kopiert wurden.

Der Vorgang des Abkoppelns eines Datenträgers von einer Instanz ist in unserer Dokumentation beschrieben. „Unmounting a disk“ Als Beispiel (in unserem Fall) trennen wir das Gerät „/dev/vdc“.

Instanz starten

  1. Starten einer Instanz auf der Grundlage eines vorbereiteten Datenträgers.

Indem wir die obigen Schritte Schritt für Schritt befolgt haben, haben wir die Gast-Maschine „2012_v2v“ kopiert, die auf dem Server „esxi_n.sim-networks.net“ gehostet wird.

Da das Clouds-Projekt nun über analoge Datenträger des Servers „2012_v2v“ verfügt, können wir eine Kopie („Klon“) dieses Servers in Betrieb nehmen. Dazu müssen Sie auf Basis des kopierten Systemlaufwerks eine neue Instanz starten und nach erfolgreichem Start weitere Datenträger anschließen.

Installation der erforderlichen Virtio-Treiber und des Gast-Agenten

  1. Abschluss der Installation der erforderlichen Virtio-Treiber und des Gast-Agenten - „qemu-ga-x64 в OS Windows.

Installation der virtio-Treiber und des qemu-agent

Nach dem erfolgreichen Laden der Instanz ist es notwendig, eine zusätzliche Software zu installieren, die den stabilen Betrieb der virtuellen Maschine und ihre weitere Verwaltung mithilfe der Dienste der Openstack-Plattform gewährleistet:

  • Balloon
  • NetKVM
  • guest-agent.

Um die Treiber zu installieren, müssen Sie den Windows-Gerätemanager aufrufen und mit der rechten Maustaste auf das Gerät (für das Sie den Treiber installieren müssen) klicken und den Punkt „Treiber aktualisieren …“ auswählen. Wählen Sie das Gerät „Ethernet-Controller“ aus:

../../_images/virtio_driver_1.png

Wählen Sie im sich öffnenden Fenster „Treiber-Update - Ethernet-Controller“ den Punkt „Auf diesem Computer nach Treibern suchen“.

../../_images/virtio_driver_2.png

Im nächsten Fenster „Auf diesem Computer nach Treibern suchen“ wählen Sie den untersten Punkt - „Wählen Sie einen Treiber aus der Liste der bereits installierten Treiber aus“, klicken Sie auf die Schaltfläche „Weiter“.

../../_images/virtio_driver_3.png

Im Fenster „Gerätetyp aus der Liste auswählen“ belassen wir die Standardeinstellung „Alle Geräte anzeigen“ und klicken auf die Schaltfläche „Weiter“.

../../_images/virtio_driver_4.png

Im neuen Fenster „Wählen Sie einen Treiber für dieses Gerät“ zeigt das System den verfügbaren Treiber „Red Hat VirtIO Ethernet Adapter“ an, klicken Sie auf „Weiter“.

../../_images/virtio_driver_5.png

Im Bestätigungsfenster „Windows-Sicherheit“ muss das Kontrollkästchen neben der Option „Der Software von Red Hat, Inc. immer vertrauen“ aktiviert werden, und drücken Sie die Schaltfläche „Weiter“.

../../_images/virtio_driver_6.png

Im nächsten Fenster „Aktualisierung der Software für dieses Gerät erfolgreich abgeschlossen“ sehen wir, dass der Treiber erfolgreich auf dem Netzwerkgerät installiert wurde.

../../_images/virtio_driver_7.png

Ähnliche Schritte müssen für das PCI-Gerät durchgeführt werden. In diesem Fall wird die Installation des „VirtIO Balloon Driver“ durchgeführt.

../../_images/virtio_driver_8.png

Der PCI-Gerätetreiber „VirtIO Balloon Driver“ wurde erfolgreich installiert.

../../_images/virtio_driver_9.png

Alle Treiber wurden erfolgreich installiert, in der Rubrik „Andere Geräte“ gibt es keine Geräte mehr ohne Treiber.

../../_images/virtio_driver_10.png

Nachdem alle notwendigen Treiber installiert sind, müssen Sie die Installation qemu-guest-agent durchführen. Um den Agenten zu installieren, müssen Sie ein stabiles Iso-Image „Stable virtio-win iso“ herunterladen, das unter diesem Link verfügbar ist. Nachdem das Image heruntergeladen wurde, müssen Sie den Agenten „qemu-ga-x64.msi“ installieren, die Installationsdatei befindet sich im Verzeichnis „guest-agent“. Der Installationsprozess wird standardmäßig ausgeführt, ohne dass zusätzliche Parameter angegeben werden müssen.

Hinzufügen zusätzlicher Datenträger zur Instanz

  1. Anschließen zusätzlicher Datenträger an die neue Instanz.

Das Anschließen zusätzlicher Datenträger erfolgt gemäß dem Artikel aus unserer Dokumentation - Attaching an additional drive to an instance.

Überprüfen der Ergebnisse der Migration einer virtuellen Maschine

  1. Überprüfung des Funktionierens aller Dienste und Services, Lizenzen auf der migrierten Server - Instanz. In dieser Phase muss der Administrator, der den virtuellen Server in das Cloud-Projekt migriert hat, einen vollständigen Check des Serverzustands durchführen, die Verfügbarkeit der Ressourcen prüfen, Änderungen im Zusammenhang mit der Änderung der IP-Adressierung vornehmen usw. Diese Überprüfung ist notwendig, um sicherzustellen, dass nach der durchgeführten alles richtig funktioniert.

Vorbereitung Ihres Servers für die Migration

Bereitstellung des Systems

Um den Dienst bereitzustellen, müssen Sie mehrere Softwarepakete installieren und Änderungen am ISO-Image mit den Treibern vornehmen. Während der Demonstration des Beispiels werden die Videotreiber entfernt, woraufhin ein neues ISO-Image erstellt wird, allerdings ohne die Verzeichnisse „qxl“ und „qxldod“ (wie bereits erwähnt, führte die Verwendung dieser Treiber zu einem fehlerhaften Betrieb des virtuellen Geräts).

Prüfen Sie auf verfügbare Betriebssystem-Updates:

yum check-update

Installieren der verfügbaren Updates für das Betriebssystem:

yum update -y

Installation der Software

Das Paket „virt-v2v“ wird unter dem „root“ Benutzer installiert:

yum install virt-v2v -y

Hinzufügen eines neuen Repositorys virtio-win.repo:

wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install virtio-win -y

Installation des Pakets „xorriso“ zur Erstellung von Iso-Images:

yum install xorriso -y

Mounten Sie das Iso-Image „virtio-win-0.1.141.is“ in den Einhängepunkt „/ mnt“:

mount -o loop /usr/share/virtio-win/virtio-win-0.1.141.iso /mnt

Wir prüfen die Verfügbarkeit von Daten aus einem zuvor eingehängten Image:

ls -lh /mnt/
total 5,7M
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 Balloon
dr-xr-xr-x.  2 root root 2,0K Aug  4  2017 guest-agent
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 NetKVM
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 pvpanic
dr-xr-xr-x.  4 root root 2,0K Aug  4  2017 qemufwcfg
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 qemupciserial
dr-xr-xr-x.  5 root root 2,0K Aug  4  2017 qxl
dr-xr-xr-x.  8 root root 2,0K Aug  4  2017 qxldod
dr-xr-xr-x.  3 root root 2,0K Aug  4  2017 smbus
dr-xr-xr-x. 10 root root 2,0K Aug  4  2017 vioinput
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 viorng
dr-xr-xr-x. 11 root root 2,0K Aug  4  2017 vioscsi
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 vioserial
dr-xr-xr-x. 13 root root 2,0K Aug  4  2017 viostor
-r--r--r--.  1 root root 2,9M Aug  4  2017 virtio-win-0.1.141_amd64.vfd
-r--r--r--.  1 root root 2,9M Aug  4  2017 virtio-win-0.1.141_x86.vfd
-r--r--r--.  1 root root  20K Aug  4  2017 virtio-win_license.txt

Erstellen Sie ein neues „iso“-Verzeichnis, um den Inhalt in das iso-Image „virtio-win-0.1.141.iso“ zu kopieren.

mkdir /data/iso

Wir wechseln in das Verzeichnis „/ mnt“:

cd /mnt

Kopieren Sie alle Daten aus dem Image „virtio-win-0.1.141.iso“ in das Verzeichnis „/data/iso/“.

cp -r /mnt/. /data/iso/

Wir prüfen, ob alle Daten korrekt kopiert wurden.

ls -lh /data/iso/
total 5,7M
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 Balloon
dr-xr-xr-x.  2 root root 4,0K Feb  8 10:45 guest-agent
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 NetKVM
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 pvpanic
dr-xr-xr-x.  4 root root 4,0K Feb  8 10:45 qemufwcfg
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 qemupciserial
dr-xr-xr-x.  5 root root 4,0K Feb  8 10:45 qxl
dr-xr-xr-x.  8 root root 4,0K Feb  8 10:45 qxldod
dr-xr-xr-x.  3 root root 4,0K Feb  8 10:45 smbus
dr-xr-xr-x. 10 root root 4,0K Feb  8 10:45 vioinput
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 viorng
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 vioscsi
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 vioserial
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 viostor
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_amd64.vfd
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_x86.vfd
-r--r--r--.  1 root root  20K Feb  8 10:45 virtio-win_license.txt

Entfernen Sie die Verzeichnisse mit den Videotreibern („qxl“ und „qxldod“) aus dem Verzeichnis „/data/iso/“:

rm -rf /data/iso/qxl
rm -rf /data/iso/qxldod

Überprüfen Sie, ob die erforderlichen Verzeichnisse gelöscht wurden:

ls -lh /data/iso/
total 5,7M
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 Balloon
dr-xr-xr-x.  2 root root 4,0K Feb  8 10:45 guest-agent
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 NetKVM
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 pvpanic
dr-xr-xr-x.  4 root root 4,0K Feb  8 10:45 qemufwcfg
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 qemupciserial
dr-xr-xr-x.  3 root root 4,0K Feb  8 10:45 smbus
dr-xr-xr-x. 10 root root 4,0K Feb  8 10:45 vioinput
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 viorng
dr-xr-xr-x. 11 root root 4,0K Feb  8 10:45 vioscsi
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 vioserial
dr-xr-xr-x. 13 root root 4,0K Feb  8 10:45 viostor
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_amd64.vfd
-r--r--r--.  1 root root 2,9M Feb  8 10:45 virtio-win-0.1.141_x86.vfd
-r--r--r--.  1 root root  20K Feb  8 10:45 virtio-win_license.txt

Erstellen Sie ein ISO-Image aus den Dateien im Verzeichnis „/data/iso/“, die iso-Datei muss „virtio-win-0.1.141.iso“ heißen:

xorrisofs -r -J -o /data/virtio-win-0.1.141.iso /data/iso/

xorriso 1.5.0 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:/data/virtio-win-0.1.141.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data,  186g free
Added to ISO image: directory '/'='/data/iso'
xorriso : UPDATE :     990 files added in 1 seconds
xorriso : UPDATE :     990 files added in 1 seconds
xorriso : UPDATE :  8.61% done
ISO image produced: 278601 sectors
Written to medium : 278601 sectors at LBA 0
Writing to 'stdio:/data/virtio-win-0.1.141.iso' completed successfully.

Überprüfen Sie, ob das erforderliche ISO-Abbild im Verzeichnis „/data“ erstellt wurde:

ls -lh /data
total 545M
drwxr-xr-x. 14 root root 4,0K Feb  8 10:54 iso
drwx------.  2 root root  16K Feb  8 10:37 lost+found
-rw-r--r--.  1 root root 545M Feb  8 10:58 virtio-win-0.1.141.iso

Das gewünschte Image wurde erfolgreich erstellt.

Wir ersetzen das ursprüngliche Iso-Image, das sich im Verzeichnis „/ usr / share / virtio-win /“ befindet, durch das Image, das wir ohne Videotreiber erstellt haben. Dies erfordert:

  • Entkoppeln (unmount) Sie das Image:
umount /mnt
  • Gehen Sie in das Verzeichnis „/usr/share/virtio-win/“ und löschen Sie das Iso-Image „virtio-win-0.1.141.iso“.
cd /usr/share/virtio-win/
rm -f virtio-win-0.1.141.iso
  • Kopieren Sie das von uns erstellte Iso-Image:
cp /data/virtio-win-0.1.141.iso .
  • Löschen Sie die iso-Datei aus dem Verzeichnis /data/directory
rm -f /data/virtio-win-0.1.141.iso
  • Löschen Sie die Dateien, aus denen das Iso-Image erstellt wurde:
rm -rf /data/iso/

Konvertierung eines Datenträgers im manuellen Modus

Mit der installierten Image-Software „SIM-V2V
können Sie virtuelle Datenträger im Format „.vmdk“ in das Format „raw“ im manuellen Modus aus dem lokalen Verzeichnis der Instanz konvertieren.

Diese Methode ist in den folgenden Fällen anwendbar:

  • Keine Möglichkeit zur Verbindung mit dem ESXi-Server;
  • Es ist notwendig, eine einmalige Konvertierung eines Datenträgers oder eines Systemlaufwerks durchzuführen;
  • Der Benutzer hat nur eine bestimmte Liste von virtuellen Datenträgern zur Verfügung, die in die Cloud migriert werden müssen.

Kopieren der Daten des virtuellen Servers

Beispiel für eine Remote-Verbindung zum ESXi-Server, rekursive Verzeichniskopie mit Dateien der virtuellen Maschine:

scp -r esxi_user@esxi_n.sim-networks.net:/vmfs/volumes/55343e73-583f862a-f32d-0cc47a13cce8/2012_v2v /data/
Password:
2012_v2v.vmx                    100% 3513     2.0MB/s   00:00
2012_v2v-flat.vmdk              100%   40GB  92.1MB/s   07:24
2012_v2v.vmdk                   100%  448   127.2KB/s   00:00
2012_v2v.vmsd                   100%    0     0.0KB/s   00:00
2012_v2v.nvram                  100% 8684     6.1MB/s   00:00
vmware-1.log                    100%  593KB  70.8MB/s   00:00
2012_v2v_1-flat.vmdk            100%   10GB  90.6MB/s   01:53
vmware-2.log                    100%  308KB  55.6MB/s   00:00
2012_v2v_1.vmdk                 100%  450   431.0KB/s   00:00
vmware.log                      100%  288KB  55.7MB/s   00:00

Auf diese Weise wurden alle Dateien der virtuellen Maschine „2012_v2v“ kopiert.

Überprüfen Sie die kopierten Dateien:

ls -lh /data/2012_v2v
total 51G
-rw-------. 1 root root  10G Feb 12 18:01 2012_v2v_1-flat.vmdk
-rw-------. 1 root root  450 Feb 12 18:01 2012_v2v_1.vmdk
-rw-------. 1 root root  40G Feb 12 17:59 2012_v2v-flat.vmdk
-rw-------. 1 root root 8,5K Feb 12 17:59 2012_v2v.nvram
-rw-------. 1 root root  448 Feb 12 17:59 2012_v2v.vmdk
-rw-r--r--. 1 root root    0 Feb 12 17:59 2012_v2v.vmsd
-rwxr-xr-x. 1 root root 3,5K Feb 12 17:52 2012_v2v.vmx
-rw-r--r--. 1 root root 593K Feb 12 17:59 vmware-1.log
-rw-r--r--. 1 root root 309K Feb 12 18:01 vmware-2.log
-rw-r--r--. 1 root root 289K Feb 12 18:01 vmware.log

Die Daten sind vollständig kopiert worden.

Systemlaufwerk konvertieren

virt-v2v  -i disk  2012_v2v-flat.vmdk -o local -of raw -os  /data/2012_v2v/ -v -x
[   0,0] Opening the source -i disk 2012_v2v-flat.vmdk
[   0,0] Creating an overlay to protect the source from being modified
[   0,1] Initializing the target -o local -os /data/2012_v2v/
[   0,1] Opening the overlay
[   7,9] Inspecting the overlay
[  11,7] Checking for sufficient free disk space in the guest
[  11,7] Estimating space required on target for each disk
[  11,7] Converting Windows Server 2012 Standard Evaluation to run on KVM
virt-v2v: warning: /usr/share/virt-tools/pnp_wait.exe is missing.
Firstboot scripts may conflict with PnP.
virt-v2v: warning: there is no QXL driver for this version of Windows (6.2
x86_64).  virt-v2v looks for this driver in
/usr/share/virtio-win/virtio-win.iso

The guest will be configured to use a basic VGA display driver.
virt-v2v: This guest has virtio drivers installed.
[  29,3] Mapping filesystem data to avoid copying unused and blank areas
[  30,1] Closing the overlay
[  30,4] Checking if the guest needs BIOS or UEFI to boot
[  30,4] Assigning disks to buses
[  30,4] Copying disk 1/1 to /data/2012_v2v/2012_v2v-flat-sda (raw)
    (100.00/100%)
[ 343,4] Creating output metadata
[ 343,4] Finishing off

Prüfen der konvertierten virtuellen Datenträger-Datei:

qemu-img info 2012_v2v-flat-sda
image: 2012_v2v-flat-sda
file format: raw
virtual size: 40G (42949672960 bytes)
disk size: 8.1G

Die Datei wurde erfolgreich in das gewünschte Format konvertiert.

Konvertieren eines Datenträgers

qemu-img convert -p -f vmdk -O raw 2012_v2v_1.vmdk disk.raw
(100.00/100%)

Validierung der Daten

qemu-img info disk.raw
image: disk.raw
file format: raw
virtual size: 10G (10737418240 bytes)
disk size: 54M

Die Datei wurde erfolgreich in das gewünschte Format konvertiert.

Das Dienstprogramm „qemu-img convert“ unterstützt die folgenden Konvertierungsformate: vvfat vpc vmdk vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd iscsi gluster dmg tftp ftps ftp https http cloop bochs blkverify blkdebug

Weitere Informationen über das QEMU-Dienstprogramm erhalten Sie mit dem Befehl: „qemu-img –help“.

Nachdem die Datenträger vorbereitet sind (in das gewünschte Format konvertiert und die notwendigen Virtio-Treiber installiert), müssen sie auf separate Datenträger kopiert und daraus eine Instanz erstellt werden. In der erstellten Instanz müssen Sie die Installation der virtio- und qemu-agent-Treiber abschließen. Alle beschriebenen Aktionen wurden in den vorherigen Abschnitten dieses Handbuchs beschrieben.