Speichermigration mit speicherrichtlinienbasierter Verwaltung

In diesem Dokument wird gezeigt, wie Sie Laufwerke von einem vSphere-Datenspeicher zu einem anderen vSphere-Datenspeicher mit Storage Policy-Based Management (SPBM) migrieren.

1,29: allgemein verfügbar
1,28: Vorschau
1.16: Nicht verfügbar

Sie können die folgenden Speichertypen migrieren:

  • Speicher für Systemkomponenten, die von Google Distributed Cloud verwaltet werden, einschließlich:

    • Datenlaufwerke (VMDK-Dateien), die von den Knoten der Steuerungsebene von Administratorclustern und Nutzerclustern der Steuerungsebene V2 verwendet werden

    • Bootlaufwerke (VMDK-Dateien), die von allen Administrator- und Nutzerclusterknoten verwendet werden

    • vSphere-Volumes, die durch PV/PVCs im Administratorcluster dargestellt und von den Komponenten der Steuerungsebene von kubeception-Nutzerclustern verwendet werden

  • Speicher für Arbeitslasten, die Sie auf Worker-Knoten von Nutzerclustern mit PV/PVCs bereitstellen, die vom integrierten vSphere-Volume-Plug-in oder vom vSphere-CSI-Treiber bereitgestellt werden

Voraussetzungen für einen Administratorcluster

  1. Der Administratorcluster muss eine Hochverfügbarkeits-Steuerungsebene haben. Wenn Ihr Administratorcluster eine Steuerungsebene ohne Hochverfügbarkeit hat, migrieren Sie zu HA, bevor Sie fortfahren.

  2. Prüfen Sie, ob der Administratorcluster eine Hochverfügbarkeits-Steuerungsebene hat:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes
    

    Ersetzen Sie ADMIN_CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Administratorclusters.

    Achten Sie darauf, dass in der Ausgabe drei Knoten der Steuerungsebene angezeigt werden. Beispiel:

    admin-cp-1   Ready    control-plane,master ...
    admin-cp-2   Ready    control-plane,master ...
    admin-cp-3   Ready    control-plane,master ...
    

Voraussetzungen für alle Cluster (Administrator und Nutzer)

  1. Für den Cluster muss die automatische Knotenreparatur deaktiviert sein. Wenn die automatische Knotenreparatur aktiviert ist, deaktivieren Sie die automatische Knotenreparatur.

  2. Der Cluster muss die speicherrichtlinienbasierte Verwaltung (SPBM) verwenden. Wenn Ihr Cluster SPBM nicht verwendet, erstellen Sie eine Speicherrichtlinie, bevor Sie fortfahren.

  3. Prüfen Sie, ob der Cluster SPBM verwendet:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get onpremadmincluster --namespace kube-system \
      -ojson | jq '{datastore: .items[0].spec.vCenter.datastore, storagePolicyName: .items[0].spec.vCenter.storagePolicyName}'
    

    (Nur Nutzercluster) Prüfen Sie, ob die Knotenpools SPBM verwenden:

    kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get onpremnodepools --namespace USER_CLUSTER_NAME-gke-onprem-mgmt \
      -ojson | jq '.items[] | {name: .metadata.name, datastore: .spec.vsphere.datastore, storagePolicyName: .spec.vsphere.storagePolicyName}'
    

    Ersetzen Sie Folgendes:

    • CLUSTER_KUBECONFIG: der Pfad der kubeconfig-Datei des Clusters (Administrator oder Nutzer).

    • ADMIN_CLUSTER_KUBECONFIG: der Pfad der kubeconfig-Datei des Administratorclusters

    • USER_CLUSTER_NAME: der Name des Nutzerclusters

    Wenn in der Ausgabe das Feld datastore leer und das Feld storagePolicyName nicht leer ist, verwendet der Cluster SPBM.

  4. Der Cluster darf nicht das integrierte vSphere-Volume-Plug-in verwenden.

    Wenn Ihr Cluster von einer alten Version von Google Distributed Cloud aktualisiert wurde, hat er möglicherweise PV/PVCs, die vom integrierten vSphere-Volume-Plug-in bereitgestellt wurden. Diese Art von Volume wird möglicherweise von einem Knoten der Steuerungsebene eines Kubeception-Nutzerclusters oder von einer Arbeitslast verwendet, die Sie auf einem Worker-Knoten erstellt haben.

    Liste aller PVCs und ihrer Speicherklassen:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get pvc --all-namespaces  \
       -ojson | jq '.items[] | {namespace: .metadata.namespace, name: .metadata.name, storageClassName: .spec.storageClassName}'
    

    Lassen Sie alle Speicherklassen auflisten und sehen Sie nach, welche Bereitsteller sie verwenden:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
    

    Wenn die Spalte PROVISIONER in der Ausgabe den Wert kubernetes.io/vsphere-volume hat, verwenden die mit dieser Speicherklasse erstellten PVCs das integrierte vSphere-Volume-Plug-in. Migrieren Sie die StatefulSets, die diese PV/PVCs verwenden, zum vSphere-CSI-Treiber.

Speichermigration ausführen

Google Distributed Cloud unterstützt zwei Kategorien der Speichermigration:

  • Storage vMotion für VMs zum Verschieben von VM-Speicher, einschließlich angehängter vSphere CNS-Volumes, die von Pods verwendet werden, die auf einem Knoten ausgeführt werden, und VMDKs, die von diesen VM-CNS-Volumes verwendet werden, die an die Knoten angehängt sind

  • CNS-Volume-Verlagerung, bei der angegebene vSphere CNS-Volumes in einen kompatiblen Datenspeicher verschoben werden, ohne Speicher-vMotion für VMs auszuführen

Speicher-vMotion für VMs ausführen

Die Migration umfasst Schritte, die Sie in Ihrer vSphere-Umgebung ausführen, und Befehle, die Sie auf Ihrer Administratorworkstation ausführen:

  1. Fügen Sie in Ihrer vSphere-Umgebung Ihre Zieldatenspeicher der Speicherrichtlinie hinzu.

  2. Migrieren Sie in Ihrer vSphere-Umgebung Cluster-VMs, die den alten Datenspeicher verwenden, zum neuen Datenspeicher. Eine Anleitung dazu finden Sie unter Virtuelle Maschine zu einer neuen Compute-Ressource und einem neuen Compute-Speicher migrieren.

  3. Prüfen Sie auf der Administratorworkstation, ob die VMs erfolgreich zum neuen Datenspeicher migriert wurden.

    Rufen Sie die Maschinenobjekte im Cluster ab:

    kubectl --kubeconfig CLUSTER_KUBECONFIG get machines --output yaml

    In der Ausgabe sehen Sie unter status.disks die Laufwerke, die an die VMs angehängt sind. Beispiel:

    status:
    addresses:
    – address: 172.16.20.2
      type: ExternalIP
    disks:
    – bootdisk: true
      datastore: pf-ds06
      filepath: me-xvz2ccv28bf9wdbx-2/me-xvz2ccv28bf9wdbx-2.vmdk
      uuid: 6000C29d-8edb-e742-babc-9c124013ba54
    – datastore: pf-ds06
      filepath: anthos/gke-admin-nc4rk/me/ci-bluecwang-head-2-data.vmdk
      uuid: 6000C29e-cb12-8ffd-1aed-27f0438bb9d9
    

    Prüfen Sie, ob alle Laufwerke aller Maschinen im Cluster in den Zieldatenspeicher migriert wurden.

  4. Führen Sie auf Ihrer Administratorworkstation gkectl diagnose aus, um zu prüfen, ob der Cluster fehlerfrei ist.

CNS Relocation APIs zum Verschieben von CNS-Volumes aufrufen

Wenn Sie nur CNS-Volumes verschieben möchten, die vom vSphere CSI-Treiber bereitgestellt wurden, können Sie der Anleitung unter Container-Volumes in vSphere migrieren folgen. Dies ist möglicherweise einfacher, wenn sich im alten Datenspeicher nur CNS-Volumes befinden.

Speicherrichtlinien bei Bedarf aktualisieren

Aktualisieren Sie in Ihrer vSphere-Umgebung die Speicherrichtlinie, um die alten Datenspeicher auszuschließen. Andernfalls werden neue Volumes und neu erstellte VMs möglicherweise einem alten Datenspeicher zugewiesen.