266 lines
9.6 KiB
Markdown
266 lines
9.6 KiB
Markdown
## **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
|
|
|
|
<p align="center"><img src="images/image1.png" width="650"></p>
|
|
|
|
2) Auf “Weiter” klicken
|
|
|
|
<p align="center"><img src="images/image2.png" width="650"></p>
|
|
|
|
3) Name und Pfad angeben: Name der neuen VM eintragen und ggf. abweichenden Speicherort → Weiter
|
|
|
|
<p align="center"><img src="images/image3.png" width="650"></p>
|
|
|
|
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\!**
|
|
|
|
<p align="center"><img src="images/image4.png" width="650"></p>
|
|
|
|
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
|
|
|
|
<p align="center"><img src="images/image5.png" width="650"></p>
|
|
|
|
6) Netzwerk konfigurieren: Verbindung → Nicht verbunden
|
|
|
|
<p align="center"><img src="images/image6.png" width="650"></p>
|
|
|
|
7) Virtuelle Festplatte verbinden: Name, Pfad und Größe definieren
|
|
|
|
<p align="center"><img src="images/image7.png" width="650"></p>
|
|
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
|
|
|
|
<p align="center"><img src="images/image8.png" width="650"></p>
|
|
|
|
9) Abschließen des Assistenten für neue virtuelle Computer: Fertig stellen
|
|
|
|
<p align="center"><img src="images/image9.png" width="650"></p>
|
|
|
|
10) Hyper-V-Manager nach Erstellung der neuen VM
|
|
|
|
<p align="center"><img src="images/image10.png" width="650"></p>
|
|
|
|
11) Die bereits heruntergeladenen virtio-Treiber via ISO anbinden:
|
|
|
|
<p align="center"><img src="images/image11.png" width="650"></p>
|
|
|
|
12) Mit neuer VM „Verbinden“
|
|
|
|
<p align="center"><img src="images/image12.png" width="650"></p>
|
|
|
|
<p align="center"><img src="images/image13.png" width="650"></p>
|
|
|
|
13) Neue VM zum ersten Mal starten und OS-Installation durchführen
|
|
|
|
<p align="center"><img src="images/image14.png" width="650"></p>
|
|
|
|
14) Windows Server Setup durchführen (Screenshots basieren auf Windows Server 2022):
|
|
|
|
<p align="center"><img src="images/image15.png" width="650"></p>
|
|
|
|
<p align="center"><img src="images/image16.png" width="650"></p>
|
|
|
|
15)
|
|
|
|
<p align="center"><img src="images/image17.png" width="650"></p>
|
|
|
|
16)
|
|
|
|
<p align="center"><img src="images/image18.png" width="650"></p>
|
|
|
|
17)
|
|
|
|
<p align="center"><img src="images/image19.png" width="650"></p>
|
|
|
|
18) Die Auswahl “Load Driver” verwenden
|
|
|
|
<p align="center"><img src="images/image20.png" width="650"></p>
|
|
|
|
19) Es ist nun die Installation von **drei** virtio Treibern notwendig, damit das Image auf den STACKIT Hypervisor verwenden werden kann
|
|
|
|
<p align="center"><img src="images/image21.png" width="650"></p>
|
|
|
|
**NetKVM Treiber**
|
|
<p align="center"><img src="images/image22.png" width="650"></p>
|
|
|
|
**<p align="center"><img src="images/image23.png" width="650"></p>**
|
|
|
|
**Viostor**
|
|
<p align="center"><img src="images/image24.png" width="650"></p>
|
|
|
|
<p align="center"><img src="images/image41.png" width="650"></p>
|
|
|
|
**Vioscsi**
|
|
<p align="center"><img src="images/image24.png" width="650"></p>
|
|
|
|
<p align="center"><img src="images/image25.png" width="650"></p>
|
|
|
|
20)
|
|
<p align="center"><img src="images/image26.png" width="650"></p>
|
|
|
|
21)
|
|
<p align="center"><img src="images/image27.png" width="650"></p>
|
|
|
|
|
|
|
|
22)
|
|
<p align="center"><img src="images/image28.png" width="650"></p>
|
|
|
|
|
|
|
|
23) Anzeigekonfiguration
|
|
|
|
<p align="center"><img src="images/image29.png" width="650"></p>
|
|
|
|
|
|
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 <nr>` | 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
|
|
|
|
<p align="center"><img src="images/image30.png" width="650"></p>
|
|
|
|
29) Lizenzvereinbarung zustimmen
|
|
|
|
<p align="center"><img src="images/image31.png" width="650"></p>
|
|
|
|
30) Setup-Typ bestätigen
|
|
|
|
<p align="center"><img src="images/image32.png" width="650"></p>
|
|
|
|
31) Konfigurationsoptionen festlegen
|
|
|
|
**<p align="center"><img src="images/image33.png" width="650"></p>**
|
|
|
|
|
|
32) Installation starten
|
|
|
|
<p align="center"><img src="images/image34.png" width="650"></p>
|
|
|
|
33) Installation abschließen und Sysprep ausführen
|
|
|
|
|
|
<p align="center"><img src="images/image35.png" width="650"></p>
|
|
|
|
34) Sysprep-Generalisierung läuft
|
|
|
|
<p align="center"><img src="images/image36.png" width="650"></p>
|
|
|
|
# 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 <Pfad_zu_vhdx> <Pfad_zur_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 <win2025virtio> --disk-format=qcow2 --local-file-path="<path2qcow2>" -p <projectID>
|
|
```
|
|
|
|
#### 39. Status-Check
|
|
Überprüfen Sie den Upload-Fortschritt und Details:
|
|
|
|
```bash
|
|
stackit image list -p <projectID>
|
|
stackit image describe <imageID> -p <projectID>
|
|
```
|
|
|
|
> **Wichtig:** Entnehmen Sie dem Output die generierte `imageID`. Diese ID müssen Sie im nächsten Schritt als `<image_id>` 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 <AZ> \
|
|
--name <volumename> --source-id <image_id> \
|
|
--source-type image --size <GB> -p <projectID>
|
|
```
|
|
|
|
**Step 2: Server instanziieren**
|
|
```bash
|
|
stackit server create -n <servername> \
|
|
--availability-zone <AZ> --machine-type <machineType> \
|
|
--network-id <networkID> --boot-volume-source-id <volumeID> \
|
|
--boot-volume-source-type volume -p <projectID>
|
|
```
|
|
|
|
#### 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": ["<ID1>", "<ID2>"]}' \
|
|
[https://iaas.api.eu01.stackit.cloud/v1/projects/](https://iaas.api.eu01.stackit.cloud/v1/projects/)<PROJECT_ID>/images/<IMAGE_ID>/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.
|
|
<p align="center"><img src="images/image37.png" width="650"></p>
|
|
|
|
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)
|