Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar.

Migration zu SUSE Storage

Es wird empfohlen, eine Longhorn-System­sicherung zu erstellen, bevor das Upgrade durchgeführt wird. Dies stellt sicher, dass alle kritischen Ressourcen, wie Volumes und Backing-Images, gesichert werden und im Falle von Problemen wiederhergestellt werden können.

Voraussetzungen

Werkzeuge

Authentifizierung

Migration von Longhorn, das über Helm bereitgestellt wurde, zu SUSE Storage

Wenn Ihre vorhandene Longhorn-Installation über Helm bereitgestellt wurde, können Sie dies überprüfen, indem Sie helm list --all-namespaces ausführen. Standardmäßig heißt die Helm-Version, die zur Installation von Longhorn verwendet wird, longhorn, kann jedoch auch ein benutzerdefinierter Name sein, der vom Benutzer definiert wurde.

Erstellen Sie optional eine values.yaml-Datei mit allen benutzerdefinierten Einstellungen, die Sie während des Upgrades anwenden möchten.

Fahren Sie mit dem Upgrade auf SUSE Storage unter Verwendung des SUSE Storage-Charts fort:

helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
    --namespace longhorn-system \
    --version <version> \ # Replace with the version you would like to upgrade to
    --set global.imagePullSecrets=<PULL_IMAGE_SECRET>

Optional, wenn Sie eine values.yaml-Datei mit benutzerdefinierten Einstellungen haben, fügen Sie sie mit dem -f-Flag hinzu:

helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
    --namespace longhorn-system \
    --version <version> \ # Replace with the version you would like to upgrade to
    --set global.imagePullSecrets=<PULL_IMAGE_SECRET> \
    -f values.yaml

Migration von Longhorn, das über den Rancher Apps Marketplace bereitgestellt wurde, zu SUSE Storage

Wenn Ihre vorhandene Longhorn-Installation über den Rancher Apps Marketplace bereitgestellt wurde, sehen Sie zwei Helm-Versionen, die mit Longhorn verbunden sind, wenn Sie helm list --all-namespaces | grep longhorn ausführen.

Das folgende Beispiel migriert Longhorn v1.10.1, das über Rancher-Charts installiert wurde, zu SUSE Storage v1.10.1.

$ helm list --all-namespaces | grep longhorn
longhorn                                             longhorn-system        1           2025-11-12 02:58:40.877484249 +0000 UTC    deployed    108.2.0+up1.10.1                                                                                   v1.10.1
longhorn-crd                                         longhorn-system        1           2025-11-12 02:58:38.192579711 +0000 UTC    deployed    longhorn-crd-108.2.0+up1.10.1                                                                               v1.10.1

Um die vorhandene Rancher Longhorn-Installation auf SUSE Storage zu migrieren, müssen Sie die longhorn-crd Helm-Release löschen, ohne die CRDs zu entfernen, und dann das longhorn Helm-Release upgraden, indem Sie die folgenden Schritte befolgen.

Entfernen Sie die longhorn-crd Helm-Release, während die CRDs beibehalten werden.

Um die longhorn-crd Helm-Release von Ihrem System zu entfernen und sicherzustellen, dass die Longhorn-CRDs selbst erhalten bleiben, befolgen Sie diese Schritte:

  1. Überprüfen Sie die aktuelle Version Ihres longhorn-crd Helm-Release:

    helm list --all-namespaces | grep longhorn-crd

    Die Ausgabe zeigt Ihre longhorn-crd Release-Details, zum Beispiel:

    longhorn-crd                                         longhorn-system        1           2025-11-12 02:58:38.192579711 +0000 UTC    deployed    longhorn-crd-108.2.0+up1.10.1+up1.11.0                                                                               v1.10.1

    In diesem Beispiel ist die Release-Version 108.2.0+up1.10.1.

  2. Klonen Sie das rancher/charts Repository, das die spezifische Version des longhorn-crd Charts enthält, die mit Ihrer aktuellen Version übereinstimmt (zum Beispiel 108.2.0+up1.10.1 für Longhorn v1.10.1):

    git clone https://github.com/rancher/charts.git

    Navigieren Sie in das Verzeichnis, das Ihrer longhorn-crd Chart-Version im geklonten Repository entspricht.

    Oder Sie können dieses Skript ausführen, um das longhorn-crd-Chart zu erstellen.

    Nach dem Ausführen des Befehls bash ./download-longhorn-crd-chart.sh 108.2.0+up1.10.1 wird das longhorn-crd Chart in das lokale Verzeichnis 108.2.0+up1.10.1 heruntergeladen. Öffnen Sie dann 108.2.0+up1.10.1/Chart.yaml, um zu überprüfen, ob die Chart-Version mit 108.2.0+up1.10.1 übereinstimmt.

  3. Patchen Sie manuell die helm.sh/resource-policy: keep Annotation zu allen benutzerdefinierten Ressourcenbeschreibungen (CRDs) in templates/crds.yaml innerhalb des longhorn-crd Charts, das Sie geklont haben. Dies stellt sicher, dass Helm die CRDs nicht löscht, wenn die Version deinstalliert wird. Alternativ können Sie das Skript verwenden, um die Annotation automatisch zu patchen:

    bash ./patch-resource-policy-annotation.sh 108.2.0+up1.10.1/templates/crds.yaml

    Um zu überprüfen, ob die CRDs korrekt gepatcht wurden, führen Sie aus:

    vimdiff /tmp/crds.yaml.original 108.2.0+up1.10.1/templates/crds.yaml
  4. Upgraden Sie das longhorn-crd Helm-Release mit dem lokal gepatchten Chart:

    helm upgrade longhorn-crd -n longhorn-system ./108.2.0+up1.10.1
  5. Deinstallieren Sie das longhorn-crd Helm-Release von Ihrem System. Aufgrund des angewendeten Patches bleiben die CRDs intakt.

    helm uninstall longhorn-crd --namespace longhorn-system

    Sie können sehen, dass die CRDs beim Deinstallieren der longhorn-crd Helm-Version erhalten bleiben.

    $ helm uninstall longhorn-crd --namespace longhorn-system
    These resources were kept due to the resource policy:
    [CustomResourceDefinition] backingimagedatasources.longhorn.io
    [CustomResourceDefinition] backingimagemanagers.longhorn.io
    [CustomResourceDefinition] nodes.longhorn.io
    [CustomResourceDefinition] orphans.longhorn.io
    [CustomResourceDefinition] recurringjobs.longhorn.io
    [CustomResourceDefinition] replicas.longhorn.io
    [CustomResourceDefinition] settings.longhorn.io
    [CustomResourceDefinition] sharemanagers.longhorn.io
    [CustomResourceDefinition] snapshots.longhorn.io
    [CustomResourceDefinition] supportbundles.longhorn.io
    [CustomResourceDefinition] systembackups.longhorn.io
    [CustomResourceDefinition] systemrestores.longhorn.io
    [CustomResourceDefinition] backingimages.longhorn.io
    [CustomResourceDefinition] volumeattachments.longhorn.io
    [CustomResourceDefinition] volumes.longhorn.io
    [CustomResourceDefinition] backupbackingimages.longhorn.io
    [CustomResourceDefinition] backups.longhorn.io
    [CustomResourceDefinition] backuptargets.longhorn.io
    [CustomResourceDefinition] backupvolumes.longhorn.io
    [CustomResourceDefinition] engineimages.longhorn.io
    [CustomResourceDefinition] engines.longhorn.io
    [CustomResourceDefinition] instancemanagers.longhorn.io

Ersetzen Sie longhorn-crd durch longhorn in den Longhorn CRDs.

Nachdem Sie sichergestellt haben, dass die longhorn-crd Helm-Version deinstalliert ist, die CRDs jedoch erhalten bleiben, müssen Sie die Eigentumslabels der vorhandenen Longhorn CRDs aktualisieren, um sich auf das Haupt-longhorn Helm-Chart vorzubereiten. Wenden Sie das Shell-Skript an, um die Ersetzung durchzuführen.

Aktualisieren Sie auf SUSE Storage.

Nachdem die CRDs vorbereitet wurden, können Sie mit dem Upgrade Ihrer Longhorn-Installation auf SUSE Storage fortfahren:

helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
    --namespace longhorn-system \
    --version <version> \ # Replace with the version you would like to upgrade to
    --set global.imagePullSecrets=<PULL_IMAGE_SECRET>

Optional, wenn Sie eine values.yaml-Datei mit benutzerdefinierten Einstellungen haben, fügen Sie sie mit dem -f-Flag hinzu:

helm upgrade longhorn oci://dp.apps.rancher.io/charts/suse-storage \
    --namespace longhorn-system \
    --version <version> \ # Replace with the version you would like to upgrade to
    --set global.imagePullSecrets=<PULL_IMAGE_SECRET> \
    -f values.yaml