## **Anleitung: BYOL-Migration zu STACKIT** Dieses Dokument bietet einen Migrationspfad für Ihre selbst erstellte Windows Server VM (Bring Your Own License) von einer lokalen Virtualisierungsumgebung (z.B. Hyper-V / VirtualBox) auf der STACKIT Cloud-Plattform. Der detaillierte Prozess erlaubt die technische Kompatibilität durch die Integration der VirtIO-Treiber und die Konvertierung der Festplatten-Images. Die Durchführung dieser Schritte ermöglicht Ihnen, Ihre eigenen Windows-Lizenzen in der STACKIT Cloud zu nutzen. ### **Voraussetzungen** Um diesen Workflow erfolgreich durchzuführen, benötigen Sie Zugriff auf die folgenden Tools und Ressourcen: - STACKIT Windows VM (empfohlenes Sizing) * Flavor G2i.8 * Disk OS Perf6 \- 64GB * Data/Image Disk Perf10: 100GB - Hyper-V (Als Virtualisierungsplattform über die Windows-Rolle/Funktion installieren): z.B. über Server Manager - Qemu-img installieren: [https://www.qemu.org/download/\#windows](https://www.qemu.org/download/#windows) - STACKIT cli installieren: [https://github.com/stackitcloud/stackit-cli/releases](https://github.com/stackitcloud/stackit-cli/releases) - Virtio Treiber: [https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/?C=M;O=D) - Cloud-base Init: [https://github.com/cloudbase/cloudbase-init/releases](https://github.com/cloudbase/cloudbase-init/releases) 1) Neue VM einrichten: Aktion → Neu → Virtueller Computer

2) Auf “Weiter” klicken

3) Name und Pfad angeben: Name der neuen VM eintragen und ggf. abweichenden Speicherort → Weiter

4) Generation 2 auswählen **Generation 2: Beim Starten der VM muss manuell „Any Key“ gedrückt werden damit der Bootvorgang vom ISO-Image aus durchgeführt wird. Sollte man den Zeitpunkt verpassen, startet die Installationsroutine nicht\!**

5) Speicher zuweisen: Arbeitsspeicher beim Start → Wert nach Bedarf eintragen (z. B. 4096 MB) Dynamischen Arbeitsspeicher für diesen virtuellen Computer verwenden → Kontrollkästchen deaktivieren

6) Netzwerk konfigurieren: Verbindung → Nicht verbunden

7) Virtuelle Festplatte verbinden: Name, Pfad und Größe definieren

Die konfigurierte Größe entspricht der Mindestgröße des Volumes des zukünftigen Servers in STACKIT 8) Installationsoptionen: Betriebssystem von einer startbaren CD/DVD-ROM installieren → Abbilddatei (ISO) auswählen und via Durchsuchen das erforderliche ISO-Image auswählen

9) Abschließen des Assistenten für neue virtuelle Computer: Fertig stellen

10) Hyper-V-Manager nach Erstellung der neuen VM

11) Die bereits heruntergeladenen virtio-Treiber via ISO anbinden:

12) Mit neuer VM „Verbinden“

13) Neue VM zum ersten Mal starten und OS-Installation durchführen

14) Windows Server Setup durchführen (Screenshots basieren auf Windows Server 2022):

15)

16)

17)

18) Die Auswahl “Load Driver” verwenden

19) Es ist nun die Installation von **drei** virtio Treibern notwendig, damit das Image auf den STACKIT Hypervisor verwenden werden kann

**NetKVM Treiber**

**

** **Viostor**

**Vioscsi**

20)

21)

22)

23) Anzeigekonfiguration

24) Es sollten nun noch die zwei Virtio Packages (virtio-win-gt-x64.msi und virtio-win-guest-tools.exe) von der Virtio ISO Datei installiert werden. Es wird zudem empfohlen den Inhalt der Virtio ISO Datei auf das neue System zu kopieren (z.B. C:\\temp\\virtio\\). Das hat den Vorteil, dass man später relativ einfach Treiber nachinstallieren kann 25) Löschen der Windows Recovery Partition Dieser Schritt ist zwingend notwendig, damit das Volume des späteren Servers auf STACKIT flexibel erweitert werden kann. | Schritt | Befehl | Details / Hinweise | | :--- | :--- | :--- | | **1** | `diskpart` | Startet das Partitionierungsprogramm. | | **2** | `select disk 0` | Wählt die Festplatte aus. **Prüfen Sie unbedingt**, ob Disk 0 korrekt ist! | | **3** | `list partition` | Zeigt alle vorhandenen Partitionen an. | | **4** | `select partition ` | Wählen Sie die Nummer der Recovery-Partition. Falls Partition 3 nicht korrekt ist, geben Sie die richtige Nummer ein. | | **5** | `delete partition override` | Löscht die Partition erzwingend. | | **6** | `list partition` | Kontrolle, ob die Partition erfolgreich entfernt wurde. | 26) Das Windows System kann nun mit individueller Software angepasst und für das spätere Image vorbereitet werden. 27) Zum Abschluss noch das [**Cloudbase-init Tool**](https://cloudbase.it/cloudbase-init/) auf der Windows VM ausführen und Windows in die finale Ausgangsposition für den Move auf die STACKIT Cloud bringen\! 28) Cloudbase-Init Setup starten

29) Lizenzvereinbarung zustimmen

30) Setup-Typ bestätigen

31) Konfigurationsoptionen festlegen **

** 32) Installation starten

33) Installation abschließen und Sysprep ausführen

34) Sysprep-Generalisierung läuft

# 35. Image-Upload & VM Creation in STACKIT Nachdem die lokale Vorbereitung abgeschlossen ist, wird das Image konvertiert und via STACKIT CLI übertragen. --- #### 36. Image-Konvertierung (qCow2) Konvertieren Sie das lokale VHDX in das qcow2 Format: ```bash qemu-img convert -f vhdx -O qcow2 ``` #### 37. STACKIT CLI Login Authentifizierung an der CLI: ```bash stackit auth login ``` #### 38. Image-Upload Laden Sie das Image in Ihr STACKIT-Projekt hoch: ```bash stackit image create --name --disk-format=qcow2 --local-file-path="" -p ``` #### 39. Status-Check Überprüfen Sie den Upload-Fortschritt und Details: ```bash stackit image list -p stackit image describe -p ``` > **Wichtig:** Entnehmen Sie dem Output die generierte `imageID`. Diese ID müssen Sie im nächsten Schritt als `` angeben, um das Volume und die VM basierend auf diesem Image zu erstellen. #### 40. Provisionierung (Volume & Server) Erstellen Sie zuerst das Volume und starten Sie dann die VM: **Step 1: Volume erstellen** ```bash stackit volume create --availability-zone \ --name --source-id \ --source-type image --size -p ``` **Step 2: Server instanziieren** ```bash stackit server create -n \ --availability-zone --machine-type \ --network-id --boot-volume-source-id \ --boot-volume-source-type volume -p ``` #### 41. Image Sharing (Cross-Project) Image für andere Projekt-IDs innerhalb der Organisation freigeben: ```bash stackit curl -X PATCH -H "Content-Type: application/json" \ --data '{"projects": ["", ""]}' \ [https://iaas.api.eu01.stackit.cloud/v1/projects/](https://iaas.api.eu01.stackit.cloud/v1/projects/)/images//share ``` #### 42. Abschluss Überprüfen, ob alle Treiber im Betriebssystem korrekt geladen sind. Nach dem Start der VM in STACKIT über den “Gerätemanager” prüfen, ob alle Treiber korrekt geladen wurden.

Referenzen: [https://docs.stackit.cloud/stackit/en/create-a-windows-server-via-stackit-iaas-api-cli-98304598.html](https://docs.stackit.cloud/stackit/en/create-a-windows-server-via-stackit-iaas-api-cli-98304598.html)