Migrieren von Block Storage for VPC Volumes von Gen-1 zu Gen-2 Profilen

Virtual Private Cloud

Migrieren Sie Ihre Block Storage for VPC Volumes von den Profilen der Generation 1 (Tier-basiert) auf die Profile der Generation 2 (Software Defined Performance), um von der verbesserten Leistung, der dynamischen IOPS-Anpassung und der besseren Kostenoptimierung zu profitieren.

Die Profilgenerationen verstehen

Block Storage for VPC hat sich von den Profilen der Generation 1 (tierbasiert) zu denen der Generation 2 (softwaredefinierte Leistung) entwickelt.

Generation 1 (tierbasiert)
Die IOPS werden anhand der Volume-Größe berechnet. Weitere Informationen finden Sie unter Block Storage profile.
Generation 2 (SDP)
Benutzerdefinierte IOPS unabhängig von der Volume-Größe. Weitere Informationen finden Sie unter dem Profil SDP Block Storage.

Aktuelle Informationen zu Blockspeicherprofilen und deren Funktionen finden Sie unter „ Block Storage-Profile “.

Vorbereitende Schritte

Bevor Sie Ihre Volumes migrieren, führen Sie die folgenden Schritte durch.

  • Installieren Sie die IBM Cloud-CLI.
  • Stellen Sie sicher, dass Sie über kubectl oder oc Zugang zu Ihrem Cluster haben.
  • Vergewissern Sie sich, dass das VPC Block CSI Driver Add-on der Version 5.0 oder höher entspricht. Um die Version zu überprüfen, führen Sie den folgenden Befehl aus: IBM MobileFirst Platform Command Line Interface
    	kubectl get deployment -n kube-system vpc-block-csi-controller -o jsonpath='{.spec.template.spec.containers[0].image}'
    
  • Vergewissern Sie sich, dass das Add-on VPC Block CSI Driver installiert ist. Weitere Informationen finden Sie unter Installieren des VPC Block CSI-Treiber-Add-ons.
  • Vergewissern Sie sich, dass das Add-on VPC Block CSI Driver konfiguriert ist. Weitere Informationen finden Sie unter Konfigurieren des VPC Block CSI-Treiber-Add-ons.
  • Vergewissern Sie sich, dass das Add-on VPC Block CSI Driver ausgeführt wird. Weitere Informationen finden Sie unter Überprüfen des VPC Block CSI-Treiber-Add-ons.
  • Vergewissern Sie sich, dass das Add-on VPC Block CSI Driver auf dem neuesten Stand ist. Weitere Informationen finden Sie unter Aktualisieren des VPC-Block-CSI-Treiber-Add-ons.
  • Dokumentieren Sie Ihre aktuellen Leistungsanforderungen.
  • Erstellen Sie eine Sicherungskopie oder einen Snapshot Ihrer Daten. Weitere Informationen finden Sie unter Einrichten von Snapshots mit dem Block Storage for VPC cluster add-on.

Identifizieren von Volumes für die Migration

Finden Sie PVCs, die Gen-1 Blocklagerprofile verwenden.

  1. Listen Sie alle Blockspeicher-PVCs in Ihrem Cluster auf.

    kubectl get pvc --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,STORAGECLASS:.spec.storageClassName,STATUS:.status.phase | grep vpc-block
    
  2. Abrufen der VPC-Volumen-ID aus einer PVC.

    PV_NAME=$(kubectl get pvc <pvc-name> -n <namespace> -o jsonpath='{.spec.volumeName}')
    VOLUME_ID=$(kubectl get pv $PV_NAME -o jsonpath='{.spec.csi.volumeHandle}')
    echo "Volume ID: $VOLUME_ID"
    

    Beispielausgabe

    Volume ID: r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
    

Prüfen Sie die aktuelle Volume-Konfiguration

  1. Zeigen Sie das aktuelle Blockvolumenprofil und die Konfiguration an.

    ibmcloud is vol $VOLUME_ID
    

    Beispiel für die Ausgabe vor der Migration

    ID                      r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
    Name                    pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344
    Status                  available
    Attachment state        attached
    Capacity                100
    IOPS                    3000
    Bandwidth(Mbps)         393
    Profile                 5iops-tier
    Storage Generation      1
    Adjustable IOPS         false
    Busy                    false
    
  2. Beachten Sie die folgenden Werte in der Ausgabe. Mit diesen können Sie überprüfen, ob die Migration erfolgreich war.

    • Profil: 5iops-tier ( Gen-1 )
    • Erzeugung von Speicherplatz: 1
    • Einstellbare IOPS: false

Starten Sie die Migration.

Der Migrationsprozess läuft im Hintergrund ab, während Ihr Volume mit Ihrem Pod verbunden bleibt und Ihre Anwendung weiterläuft. Die IOPS werden automatisch an die SDP-Standardwerte angepasst, und der Vorgang dauert in der Regel 5-15 Minuten.

  1. Initiieren Sie die Migration zum SDP-Profil.

    ibmcloud is volume-job-create $VOLUME_ID --profile sdp
    

Überwachung des Migrationsfortschritts

  1. Überprüfen Sie den Status des Migrationsauftrags. Wenn die Ausgabe Status: updating und Busy: true anzeigt, ist die Migration im Gange. Wenn die Ausgabe Status: available und Busy: false anzeigt, ist die Migration abgeschlossen.

    ibmcloud is volume-jobs $VOLUME_ID
    
  2. Prüfen Sie den Lautstärkestatus.

    watch -n 30 "ibmcloud is vol $VOLUME_ID | grep -E 'Status|Busy|Profile'"
    

    Beispielhafte Ausgabe während der Migration

    Status                  updating
    Busy                    true
    Profile                 5iops-tier
    

Überprüfen Sie den Abschluss der Migration

  1. Stellen Sie sicher, dass das Volume das Profil Gen-2 verwendet.

    ibmcloud is vol $VOLUME_ID
    

    Beispiel für die Ausgabe nach der Migration

    ID                          r026-3afe630d-1a47-482c-aade-e37f5e0bb9f4
    Name                        pvc-d4a2b016-a5e4-46de-9214-a64f5fc8e344
    Status                      available
    Attachment state            attached
    Capacity                    100
    IOPS                        4000
    Bandwidth(Mbps)             1000
    Profile                     sdp
    Storage Generation          2
    Adjustable IOPS             true
    Adjustable Capacity States  unattached,attached
    Adjustable IOPS States      unattached,attached
    Busy                        false
    
  2. Überprüfen Sie die folgenden Erfolgsindikatoren:

    • Profil: sdp
    • Erzeugung von Speicherplatz: 2
    • Einstellbare IOPS: true
    • IOPS: Erhöht (zum Beispiel von 3000 auf 4000)
    • Bandbreite: Verbessert

Aktualisierung der Metadaten von PersistentVolume

  1. Aktualisieren Sie die PV-Metadaten, um das Profil Gen-2 wiederzugeben.

    kubectl patch pv $PV_NAME --type='json' -p='[
      {"op": "replace", "path": "/spec/storageClassName", "value": "ibmc-vpc-block-sdp"},
      {"op": "replace", "path": "/spec/csi/volumeAttributes/profile", "value": "sdp"},
      {"op": "replace", "path": "/spec/csi/volumeAttributes/iops", "value": "4000"}
    ]'
    
  2. Prüfen Sie die Aktualisierung.

    kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'
    

    Erwartete Ausgabe

    ibmc-vpc-block-sdp
    

    Auf der PVC steht weiterhin der ursprüngliche Name StorageClass. Dieses Verhalten ist zu erwarten, da das Feld storageClassName in einer PVC unveränderlich ist. Das tatsächliche Lagerprofil wird durch die PV bestimmt, die Sie in diesem Schritt aktualisiert haben.

Validieren Sie Ihre Bewerbung

Überprüfen Sie, ob Ihre Anwendung nach der Migration korrekt funktioniert.

  1. Überprüfen Sie den Pod-Status. Stellen Sie sicher, dass sich alle Pods im Zustand Running befinden.

    kubectl get pods -n <namespace>
    
  2. Überprüfen Sie den Datenträgeranschluss. Vergewissern Sie sich, dass das Volume korrekt gemountet ist.

    kubectl describe pod <pod-name> -n <namespace> | grep -A 5 "Volumes:"
    
  3. Prüfen Sie die Anwendungsprotokolle. Suchen Sie nach Fehlern im Zusammenhang mit Speicher- oder E/A-Vorgängen.

    kubectl logs <pod-name> -n <namespace> --tail=50
    
  4. Testen Sie den Anwendungsendpunkt, falls zutreffend. Überprüfen Sie, ob die Anwendung korrekt reagiert.

    curl -I https://<app-endpoint>/health
    

Erstellen Sie eine Gen-2 StorageClass

Erstellen Sie eine SDP StorageClass für die Bereitstellung neuer Volumes.

  1. Erstellen Sie eine YAML-Datei für den StorageClass. Speichern Sie die folgende Konfiguration als storageclass-sdp.yaml.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ibmc-vpc-block-sdp-general
      labels:
        app: ibm-vpc-block-csi-driver
    provisioner: vpc.block.csi.ibm.io
    parameters:
      profile: "sdp"
      iops: "5000"
      csi.storage.k8s.io/fstype: "ext4"
      billingType: "hourly"
      encrypted: "false"
      region: ""
      zone: ""
      tags: "generation:2,profile:sdp"
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: WaitForFirstConsumer
    
  2. Wenden Sie die StorageClass an.

    kubectl apply -f storageclass-sdp.yaml
    
  3. Überprüfen Sie die Erstellung des StorageClass.

    kubectl get storageclass ibmc-vpc-block-sdp-general
    

Passen Sie IOPS und Durchsatz an, um die Leistung zu optimieren

Nach der Migration können Sie IOPS und Durchsatz (Bandbreite) dynamisch an die Anforderungen Ihrer Workloads anpassen.

  • Beginnen Sie mit 5.000 IOPS für allgemeine Workloads.
  • Verwenden Sie 10.000 oder mehr IOPS für Datenbanken.
  • Überwachen Sie die Nutzung und passen Sie sie an den tatsächlichen Bedarf an.

IOPS aktualisieren

  1. Erhöhen Sie die IOPS für mehr Leistung.

    ibmcloud is volume-update $VOLUME_ID --iops 8000
    
  2. Überprüfen Sie die IOPS-Aktualisierung.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    

Aktualisierung des Durchsatzes (Bandbreite)

Nach der Migration zum SDP-Profil wird den Volumes standardmäßig eine Bandbreite zugewiesen. Sie können die Bandbreite erhöhen, um den Durchsatz bei I/O-intensiven Workloads zu verbessern.

  1. Überprüfen Sie die aktuelle Bandbreitenzuweisung.

    ibmcloud is vol $VOLUME_ID | grep Bandwidth
    
  2. Erhöhen Sie die Bandbreite für einen höheren Durchsatz. Verwenden Sie die Option „ --bandwidth “, um die gewünschte Bandbreite in Mbit/s anzugeben.

    ibmcloud is volume-update $VOLUME_ID --bandwidth 2000
    
  3. Überprüfen Sie die Aktualisierung der Bandbreite.

    ibmcloud is vol $VOLUME_ID | grep Bandwidth
    

    Der Bandbreitenwert gibt den maximalen Durchsatz in MB/s an, den das Volume erreichen kann. Höhere Bandbreitenwerte sorgen für eine bessere Leistung bei datenintensiven Vorgängen.

Fehlerbehebung

Migration steckt im Aktualisierungsstatus fest

Wenn der Migrationsstatus updating länger als 30 Minuten bestehen bleibt, führen Sie die folgenden Schritte aus. Beachten Sie, dass die Migration größerer Volumes länger dauert und möglicherweise 45 Minuten lang im Status updating verbleibt.

  1. Prüfen Sie die Auftragsdetails.

    ibmcloud is volume-jobs $VOLUME_ID
    
  2. Überprüfen Sie den Volume-Status auf Fehler oder Warnungen.

    ibmcloud is vol $VOLUME_ID | grep -E "Status|Busy"
    
  3. Warten Sie weitere 15 Minuten, da die Migration großer Volumes länger dauert.

  4. Überprüfen Sie die Statusseite IBM Cloud auf Probleme mit dem VPC-Dienst.

  5. Wenn die Migration länger als 1 Stunde dauert, wenden Sie sich unter Angabe der Job-ID an IBM.

PVC zeigt alte StorageClass

Wenn die PVC nach der Migration immer noch auf die Gen-1 StorageClass verweist, ist dieses Verhalten zu erwarten und erfordert keine Maßnahmen. Das Feld PVC storageClassName ist unveränderlich. Das tatsächliche Lagerprofil wird durch das PV bestimmt, das Sie in den vorherigen Schritten aktualisiert haben. Die Funktionalität wird nicht beeinträchtigt.

  1. Überprüfen Sie, ob die PV (nicht PVC) korrekt ist.

    kubectl get pv $PV_NAME -o jsonpath='{.spec.storageClassName}'
    

    Erwartete Ausgabe

    ibmc-vpc-block-sdp
    

Leistung nicht verbessert

Wenn Sie nach der Migration keine Leistungssteigerung feststellen, führen Sie die folgenden Schritte durch.

  1. Überprüfen Sie die tatsächliche IOPS-Zuweisung.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    
  2. Überprüfen Sie das Lautstärkeprofil.

    ibmcloud is vol $VOLUME_ID | grep Profile
    
  3. Erhöhen Sie die IOPS-Zuweisung.

    ibmcloud is volume-update $VOLUME_ID --iops 10000
    
  4. Prüfen Sie die Aktualisierung.

    ibmcloud is vol $VOLUME_ID | grep IOPS
    

Nächste Schritte

Nach Abschluss der Migration sollten Sie die folgenden nächsten Schritte in Betracht ziehen.

  • Migrieren Sie weitere Volumes, indem Sie diese Anleitung wiederholen.
  • Überwachen Sie die Volume-Leistung und passen Sie die IOPS nach Bedarf an.
  • Aktualisieren Sie Ihre Bereitstellungsvorlagen, um Gen-2 StorageClasses für neue Volumes zu verwenden.
  • Überprüfen Sie die Kapazität und Leistung von Block Storage, um Hinweise zur Optimierung zu erhalten.