# Eine Instanz in ein anderes Projekt transferieren

# Kyberio Secure Public Cloud – Kundenanleitung


# Überblick

In der Kyberio Secure Public Cloud können Ressourcen zwischen Projekten verschoben werden. Da Instanzen nicht direkt transferiert werden können, erfolgt der Transfer über den Umweg von Volume-Transfers. Diese Anleitung beschreibt den vollständigen Prozess.

# Ablauf

Projekt A (Quelle)                    Projekt B (Ziel)
┌──────────────────┐                  ┌──────────────────┐
│ 1. Instanz       │                  │                  │
│    stoppen        │                  │                  │
│                  │                  │                  │
│ 2. Volume(s)     │                  │                  │
│    aushängen     │   ── Transfer ──▶│ 4. Transfer      │
│                  │   (ID + Key)     │    akzeptieren   │
│ 3. Volume-       │                  │                  │
│    Transfer      │                  │ 5. Neue Instanz  │
│    erstellen     │                  │    von Volume    │
│                  │                  │    starten       │
│ 6. Alte Instanz  │                  │                  │
│    löschen       │                  │                  │
└──────────────────┘                  └──────────────────┘

# Voraussetzungen

  • Sie benötigen Zugriffsrechte in beiden Projekten (oder Koordination mit dem Admin des Zielprojekts).
  • Die Instanz sollte vorher gestoppt werden, um Datenkonsistenz sicherzustellen.
  • Das Volume darf an keine laufende Instanz angehängt sein.

# Schritt-für-Schritt-Anleitung

# Schritt 1: Instanz stoppen

# Horizon-Dashboard (Projekt A)

  1. Navigieren Sie zu Projekt → Compute → Instanzen.
  2. Klicken Sie im Dropdown-Menü (▾) der Instanz auf „Instanz anhalten".
  3. Warten Sie, bis der Status SHUTOFF angezeigt wird.

# CLI

# Zur Sicherheit: Quellprojekt auswählen
export OS_PROJECT_NAME=projekt-a

# Instanz stoppen
openstack server stop webserver-prod-01

# Status prüfen
openstack server show webserver-prod-01 -c status
# Erwartete Ausgabe: status = SHUTOFF

# Schritt 2: Volume von der Instanz trennen

# Horizon-Dashboard (Projekt A)

  1. Navigieren Sie zu Projekt → Volumes → Volumes.
  2. Identifizieren Sie das Boot-Volume der Instanz (angezeigt als „angehängt an webserver-prod-01").
  3. Klicken Sie im Dropdown-Menü (▾) auf „Aushängen".
  4. Bestätigen Sie den Vorgang.
  5. Warten Sie, bis der Volume-Status „Verfügbar" ist.

# CLI

# Angehängte Volumes der Instanz anzeigen
openstack server show webserver-prod-01 -c volumes_attached

# Volume-ID notieren (z. B. a1b2c3d4-...)
VOLUME_ID="a1b2c3d4-e5f6-7890-abcd-ef1234567890"

# Volume von der Instanz trennen
openstack server remove volume webserver-prod-01 $VOLUME_ID

# Status prüfen
openstack volume show $VOLUME_ID -c status
# Erwartete Ausgabe: status = available

# Schritt 3: Volume-Transfer erstellen (Projekt A)

# Horizon-Dashboard (Projekt A)

  1. Navigieren Sie zu Projekt → Volumes → Volumes.
  2. Klicken Sie im Dropdown-Menü (▾) des Volumes auf „Transfer erstellen".
  3. Vergeben Sie einen Transfer-Namen (z. B. transfer-webserver-vol).
  4. Klicken Sie auf „Transfer erstellen".
  5. Wichtig: Notieren Sie sich die angezeigte Transfer-ID und den Autorisierungsschlüssel (Authorization Key). Diese werden nur einmal angezeigt!
Feld Beispielwert
Transfer-ID t1r2a3n4-s5f6-7890-abcd-ef1234567890
Authorization Key abc123def456

# CLI

# Volume-Transfer erstellen
openstack volume transfer request create \
  --name transfer-webserver-vol \
  $VOLUME_ID

Ausgabe:

+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| auth_key          | abc123def456                         |
| created_at        | 2025-02-11T15:30:00.000000           |
| id                | t1r2a3n4-s5f6-7890-abcd-ef1234567890 |
| name              | transfer-webserver-vol               |
| volume_id         | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
+-------------------+--------------------------------------+

Wichtig: Bewahren Sie die Transfer-ID und den auth_key sicher auf und übermitteln Sie diese an den Empfänger im Zielprojekt (z. B. per sicherem Kanal).


# Schritt 4: Volume-Transfer akzeptieren (Projekt B)

# Horizon-Dashboard (Projekt B)

  1. Wechseln Sie zum Zielprojekt (Projekt B).
  2. Navigieren Sie zu Projekt → Volumes → Volumes.
  3. Klicken Sie auf „Transfer akzeptieren".
  4. Geben Sie die Transfer-ID und den Autorisierungsschlüssel ein.
  5. Klicken Sie auf „Transfer akzeptieren".
  6. Das Volume erscheint nun in der Volume-Liste von Projekt B.

# CLI

# Zum Zielprojekt wechseln
export OS_PROJECT_NAME=projekt-b

# Transfer akzeptieren
openstack volume transfer request accept \
  --auth-key abc123def456 \
  t1r2a3n4-s5f6-7890-abcd-ef1234567890

# Prüfen, ob das Volume im Zielprojekt sichtbar ist
openstack volume list
openstack volume show $VOLUME_ID

# Schritt 5: Neue Instanz vom transferierten Volume starten (Projekt B)

# Horizon-Dashboard (Projekt B)

  1. Navigieren Sie zu Projekt → Compute → Instanzen.
  2. Klicken Sie auf „Instanz starten".
  3. Im Reiter „Quelle":
    • Boot-Quelle: Volume
    • Volume: Das transferierte Volume auswählen.
    • „Volume bei Instanz-Löschung entfernen": Nein
  4. Wählen Sie Flavor, Netzwerk, Sicherheitsgruppe und Schlüsselpaar für das Zielprojekt.
  5. Klicken Sie auf „Instanz starten".

# CLI

# Im Zielprojekt: Instanz vom transferierten Volume starten
openstack server create \
  --volume $VOLUME_ID \
  --flavor m1.medium \
  --network projekt-b-netz-01 \
  --security-group default \
  --key-name schluessel-projekt-b \
  webserver-prod-01

# Status prüfen
openstack server show webserver-prod-01 -c status

# Schritt 6: Alte Instanz im Quellprojekt aufräumen (Projekt A)

# Zurück zum Quellprojekt wechseln
export OS_PROJECT_NAME=projekt-a

# Alte Instanz löschen (Volume ist bereits transferiert)
openstack server delete webserver-prod-01

# Ggf. nicht mehr benötigte Floating IPs freigeben
openstack floating ip list
openstack floating ip delete <floating-ip>

# Mehrere Volumes transferieren

Wenn Ihre Instanz mehrere Volumes hat (Boot + Daten), wiederholen Sie Schritte 2–4 für jedes Volume:

# Alle Volumes der Instanz auflisten
openstack server show webserver-prod-01 -c volumes_attached

# Für jedes Volume: aushängen → Transfer erstellen → akzeptieren
for VOL_ID in a1b2c3d4-... x1y2z3w4-...; do
  openstack server remove volume webserver-prod-01 $VOL_ID
  openstack volume transfer request create --name "transfer-$VOL_ID" $VOL_ID
done

# Checkliste

Schritt Erledigt?
Instanz gestoppt
Alle Volumes ausgehängt
Transfer-ID und Auth-Key notiert
Transfer im Zielprojekt akzeptiert
Neue Instanz im Zielprojekt gestartet
Netzwerk und Sicherheitsgruppen im Zielprojekt konfiguriert
SSH-Zugriff auf neue Instanz getestet
Alte Instanz im Quellprojekt gelöscht
Floating IPs im Quellprojekt freigegeben

# Häufige Fragen

Bleibt die IP-Adresse der Instanz erhalten? Nein. Die Instanz erhält eine neue IP-Adresse im Netzwerk des Zielprojekts. Floating IPs können nicht zwischen Projekten übertragen werden.

Können auch Snapshots zwischen Projekten geteilt werden? Images (Instanz-Snapshots) können über den Admin oder den Glance-Dienst für andere Projekte freigegeben werden. Volume-Snapshots hingegen nicht – diese müssen in ein Volume konvertiert und per Volume-Transfer übertragen werden.

Was passiert, wenn der Transfer nicht akzeptiert wird? Der Transfer bleibt offen. Sie können ihn jederzeit im Quellprojekt stornieren, um das Volume wieder freizugeben:

openstack volume transfer request delete <transfer-id>

Kyberio Secure Public Cloud – Dokumentation