Skip to main content
NetApp virtualization solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Manuelle Bereitstellung des Shift Operators (Standardmodus)

Beitragende netapp-jsnyder
Änderungen vorschlagen

Das NetApp Shift Toolkit kann manuell als containerisierter Dienst mit NetApp Trident CSI und Migration Toolkit for Virtualization (MTV) bereitgestellt werden. Dieser Prozess ermöglicht die automatisierte Speicherbereitstellung und die Migration von Festplatten virtueller Maschinen, wobei Annotationen und Labels genutzt werden, um Anfragen korrekt zwischen den Komponenten weiterzuleiten.

Architekturkomponenten

Es wird erläutert, wie das NetApp Shift toolkit, Trident CSI und das Migration Toolkit for Virtualization zusammenwirken, um die automatisierte Speicherbereitstellung und die Migration von VM-Festplatten in Ihrer OpenShift Umgebung zu ermöglichen.

Architekturdiagramm des Shift Operator

NetApp Shift Toolkit

  • Bereitgestellt als containerisierter Dienst über eine Image-Registry

  • Stellt einen Endpunkt bereit, der auf Persistent Volume Claim (PVC)-Anfragen von MTV mit einer bestimmten Annotation wartet

  • Verantwortlich für die Bearbeitung von VM Festplattenmigrationsaufgaben, einschließlich Formatkonvertierungen

NetApp Trident CSI (Version 26.06 oder höher)

  • Fungiert als Container Storage Interface (CSI) Provisioner

  • Empfängt PVC-Importanfragen vom Shift toolkit

  • Wendet Logik basierend auf PVC-Annotationen und Labels an, um zu bestimmen, ob die Anfrage direkt verarbeitet oder an Shift weitergeleitet wird

Migration Toolkit for Virtualization (MTV 2.12 oder höher)

  • Orchestriert Migrationspläne für virtuelle Maschinen

  • Probleme mit PVC-Anforderungen, die für die Speicherbereitstellung während der VM-Migration erforderlich sind

  • Fügt Anmerkungen hinzu, um die nachgelagerte Verarbeitung zu unterstützen

Bevor Sie beginnen

Es sollte sichergestellt sein, dass in Ihrer OpenShift-Umgebung die erforderlichen Komponenten installiert und konfiguriert sind, bevor der Shift Operator bereitgestellt wird.

  • Migration Toolkit for Virtualization Operator läuft in Version 2.12 oder höher

  • Trident wird über OpenShift OperatorHub "Trident Installationsanleitung" installiert

  • NetApp Shift wird als Container bereitgestellt, wobei der Shift-Endpunkt für NetApp Trident zugänglich ist

  • Eine Storage Class wird speziell für die Nutzung mit dem Shift Toolkit erstellt und annotiert.

  • Die Annotationen kennzeichnen das Shift Toolkit als den vorgesehenen Handler und geben das Ziel-Trident-Backend an.

  • MTV fügt den PVCs folgenden Vermerk hinzu: forklift.konveyor.io/netapp-shift: "true"

Schritt 1: Shift Installer herunterladen und extrahieren

Das Shift Installationspaket enthält alles, was zum Bereitstellen des Shift Operators und zum Installieren von Shift erforderlich ist.

Hinweis Falls Ihr Cluster keinen Zugriff auf quay.io hat, sollte dieser Schritt übersprungen werden und stattdessen der Offline-Installation (air-gapped Cluster)Vorgehensweise gefolgt werden. Zu Schritt 2 kann zurückgekehrt werden, sobald der Offline-Image-Import abgeschlossen ist.
Schritte
  1. Laden Sie die neueste Version des Shift Installationsprogramms von "NetApp Support-Site-Toolchest" herunter.

    Downloadseite für das Shift Installationsprogramm
  2. Das Installationspaket entpacken:

    tar -xf Shift-installer-1.0.0.tar.gz
  3. Wechseln in das Installationsverzeichnis:

    cd shift-installer

Schritt 2: Erstellen des Shift Namespace und der API-Zugangsdaten

Ein dedizierter Namespace für den Shift Operator wird eingerichtet und die für einen sicheren API-Zugriff erforderlichen Anmeldeinformationen werden erstellt.

Schritte
  1. Den Shift Namespace erstellen:

    oc create ns shift
  2. Das Geheimnis für den Shift API-Zugriff innerhalb des Shift-Namensraums erstellen. Die Beispielwerte durch einen eindeutigen Benutzernamen und ein starkes Passwort für Ihre Umgebung ersetzen:

    oc create secret generic shift-credentials -n shift \
      --from-literal=username='admin' \
      --from-literal=password='admin'
Hinweis Das Passwort ist durch einen gewünschten Wert zu ersetzen.

Schritt 3: TLS-Zertifikat ConfigMaps erstellen

Die ConfigMaps, die das TLS-Zertifikat und den privaten Schlüssel bereitstellen, welche der Shift-Dienst zur Bereitstellung von HTTPS-Datenverkehr verwendet, werden erstellt.

Das Zertifikat muss mit CN/SAN auf shift-toolkit-service.shift.svc.cluster.local ausgestellt werden. Die Zertifikats- und Schlüsseldateien müssen server.cert bzw. server.key heißen.

Schritte
  1. Die ConfigMap für das TLS-Zertifikat erstellen:

    oc create configmap shift-toolkit-service-server-crt -n shift \
      --from-file=server.cert=server.cert
  2. Den ConfigMap für den privaten TLS-Schlüssel erstellen:

    oc create configmap shift-toolkit-service-server-key -n shift \
      --from-file=server.key=server.key
Hinweis Wenn HTTPS nicht verwendet wird, setzen Sie INSECURE_TLS=true in bundle.yaml. Die erforderlichen ConfigMaps sollten dennoch wie oben beschrieben erstellt werden, auch wenn HTTPS deaktiviert ist und die TLS-Zertifikate nicht aktiv verwendet werden.

Schritt 4: Erstellen Sie das CA-Bundle ConfigMap

Die ConfigMap erstellen, die das CA-Bundle bereitstellt, das der PVC-Listener zur Überprüfung des TLS-Zertifikats des Shift-Dienstes verwendet.

Schritte
  1. Zeigen Sie --from-file`auf die `server.cert PEM-Datei.

    Der Schlüssel in der ConfigMap muss ca.crt sein. Mit dieser ConfigMap läuft der Listener mit INSECURE_TLS=false und überprüft das Shift-Zertifikat anhand dieses Bundles mit SHIFT_CA_CERT_FILE.

  2. Das ConfigMap für das CA-Bundle erstellen:

    oc create configmap shift-toolkit-service-ca -n shift \
      --from-file=ca.crt=ca.cert

Schritt 5: Persistente Volume Claims erstellen

Die für die Shift filedb (Datenbank) und Protokolle erforderlichen PVCs sollten vor der Bereitstellung des Bundles erstellt werden.

Schritte
  1. Bevor die PVC-Definitionen angewendet werden, sollten deploy/filedb-pvc.yaml und deploy/logs-pvc.yaml aktualisiert werden, um das passende storageClassName für Ihren Cluster anzugeben (zum Beispiel ontap-storageclass).

    Hinweis Diese PVCs müssen erstellt und verfügbar sein, bevor das Bundle in Schritt 6: Bereitstellung des Shift-Operators bereitgestellt wird.
  2. Das filedb PVC-Manifest anwenden:

    oc apply -f deploy/filedb-pvc.yaml
  3. Das Protokoll-PVC-Manifest anwenden:

    oc apply -f deploy/logs-pvc.yaml

Schritt 6: Den Shift Operator bereitstellen

Die Shift-Operatorkonfiguration wird auf das OpenShift-Cluster angewendet und es wird überprüft, ob die erforderlichen Pods erfolgreich ausgeführt werden.

Schritte
  1. Im Verzeichnis shift-installer den Befehl deploy ausführen:

    oc apply -f deploy/shift-bundle.yaml
  2. Die Installation kann anhand des Pod-Erstellungsstatus überprüft werden:

    oc get pods -n shift

    Beispielausgabe:

    NAME                                     READY   STATUS    RESTARTS   AGE
    shift-68ccd597c-dtsj7                    1/1     Running   0          18s
    shift-pvc-listener-57d546f6b8-r9mgc      1/1     Running   0          18s
Hinweis Zum Aufheben der Bereitstellung den Befehl oc delete -f deploy/bundle.yaml --ignore-not-found ausführen. Dieser Befehl entfernt die durch bundle.yaml bereitgestellten Ressourcen, wobei Namespace und Secret erhalten bleiben.

Schritt 7: Die Storage Class für die Shift-Integration konfigurieren

Eine neue Storage Class erstellen oder eine bestehende Storage Class mit den erforderlichen Annotationen für die Shift Integration aktualisieren.

Über diese Aufgabe

Die Speicherklasse muss die folgenden Annotationen enthalten:

  • shift.netapp.io/storage-class-type

  • shift.netapp.io/trident-backend-uuid

Schritte
  1. Die Speicherklasse wird mit den erforderlichen Annotationen gepatcht:

    oc patch storageclass nimnas1172 \
      --type=merge \
      -p '{
        "metadata": {
          "annotations": {
            "shift.netapp.io/storage-class-type": "shift",
            "shift.netapp.io/trident-backend-uuid": "facc3aad-83bb-423a-b6a1-ba0fb8811217"
          }
        }
      }'

    Beispielausgabe:

    storageclass.storage.k8s.io/nimnas1172 patched
    Hinweis Die Backend-UUID kann durch Ausführen von oc get tbc -n trident abgerufen werden
  2. Vorhandene Storage-Klassen überprüfen:

    oc get sc

    Beispielausgabe:

    nimnas1172 (default)   csi.trident.netapp.io   Delete          Immediate         true

Schritt 8: MTV Plan erstellen und auslösen

Nach Abschluss der Bereitstellung des Shift Operators und der Konfiguration der Speicherklasse können Sie den MTV Plan erstellen und auslösen.

MTV Migrationsplan

Detaillierte Informationen zur Erstellung des MTV-Plans sind in der "Migration Toolkit for Virtualization Dokumentation" zu finden.

Der folgende Screenshot zeigt die Abfolge der Schritte, die beim Auslösen des Migrationsplans ausgeführt werden.

Schritte zur Durchführung des Migrationsplans

Der folgende Screenshot zeigt die mit dem Shift-Toolkit konvertierten PVCs, die anschließend von NetApp Trident importiert wurden.

Von NetApp Trident importierte PVCs
Migrationsplan erfolgreich abgeschlossen

Migrationsplan erfolgreich abgeschlossen – 5 virtuelle Maschinen und etwa 5 TB Daten wurden in etwa 6 Minuten migriert.

Was kommt als Nächstes

Nach Abschluss der Migration muss jedes Klon-Volume getrennt werden. Die Trennmethode hängt von der ONTAP Version ab: Klon-Teilung wird für ONTAP 9.17.1 und höher verwendet, während für frühere Versionen vol move zum Einsatz kommt.

Sowohl Klon-Teilung als auch Vol Move sind Hintergrundoperationen und beeinträchtigen die Produktions-Workloads während ihrer Ausführung nicht. Ein Skript zum Starten des Trennungsprozesses ist im Widget Post Migrate Detach im NetApp Console Automation Catalog verfügbar.

Offline-Installation (air-gapped Cluster)

Dieser Abschnitt beschreibt einen alternativen Installationspfad für Cluster, die keinen Zugriff auf quay.io haben. Wenn Ihr Cluster quay.io erreichen kann, sollten stattdessen die Schritte 1–8 befolgt werden.

Für Cluster ohne Zugriff auf quay.io sollten die Image-Tarballs in die interne OpenShift-Registry importiert werden, bevor das Bundle bereitgestellt wird.

Es ist keine externe Registry-Route erforderlich. Sowohl die Image-Push-Operationen als auch die Bundle-Image-Referenzen verwenden image-registry.openshift-image-registry.svc:5000, das über das Cluster-Netzwerk zugänglich und durch die Cluster-CA gesichert ist.

Bevor Sie beginnen
  • `oc`CLI mit Cluster-Admin-Berechtigungen angemeldet

  • `skopeo`installiert

  • Image-Tarballs auf dem Host verfügbar:

    • shift-toolkit-1.0.0-image.tar

    • shift-toolkit-listener-1.0.0-image.tar

Schritte
  1. Interne Registrierung aktivieren (einmaliger Schritt; überspringen, falls bereits konfiguriert):

    oc patch configs.imageregistry.operator.openshift.io cluster \
      --type=merge -p '{"spec":{"defaultRoute":true}}'
    oc get route default-route -n openshift-image-registry
  2. Registrierungsanmeldeinformationen mithilfe der aktiven oc Sitzung generieren:

    Verwenden Sie kein unformatiertes Dienstkontotoken, da dies beim Hochladen von Blobs zu Fehlern führen kann. Verwenden Sie oc registry login zum Erstellen einer Authentifizierungsdatei, die mit dem Registry-Umleitungsablauf kompatibel ist.

    REGISTRY=image-registry.openshift-image-registry.svc:5000
    oc registry login --skip-check \
      --registry=$REGISTRY \
      --to=/tmp/registry-auth.json
  3. Das Shift Toolkit-Image in die interne Registry übertragen:

    skopeo copy \
      docker-archive:shift-toolkit-1.0.0-image.tar \
      docker://$REGISTRY/shift/shift-toolkit:1.0.0 \
      --dest-tls-verify=false \
      --dest-authfile=/tmp/registry-auth.json
  4. Das Shift Toolkit Listener-Image in die interne Registry übertragen:

    skopeo copy \
      docker-archive:shift-toolkit-listener-1.0.0-image.tar \
      docker://$REGISTRY/shift/shift-toolkit-listener:1.0.0 \
      --dest-tls-verify=false \
      --dest-authfile=/tmp/registry-auth.json
  5. Die Bildverweise in deploy/bundle.yaml werden aktualisiert, sodass die interne Registry verwendet wird:

    sed -i \
      -e "s|quay.io/netapp/shift-toolkit:1.0.0|$REGISTRY/shift/shift-toolkit:1.0.0|g" \
      -e "s|quay.io/netapp/shift-toolkit-listener:1.0.0|$REGISTRY/shift/shift-toolkit-listener:1.0.0|g" \
      -e "s|imagePullPolicy: Always|imagePullPolicy: IfNotPresent|g" \
      deploy/bundle.yaml
  6. Das Bundle bereitstellen:

    oc apply -f deploy/bundle.yaml