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.

Verwaiste Instanzbereinigung

SUSE Storage kann verwaiste Instanzen auf jedem Knoten identifizieren und bereinigen.

Verwaiste Laufzeitinstanz

Wenn ein Netzwerkausfall einen SUSE Storage Knoten betrifft, kann es Engine- oder Replikatlaufzeitinstanzen hinterlassen, die vom SUSE Storage System nicht mehr verfolgt werden. Die entsprechenden Engine- und Replikatbenutzerdefinierten Ressourcen (CRs) können während des Ausfalls entfernt oder auf einen anderen Knoten neu geplant werden. Wenn der Knoten sich erholt, verfolgt das SUSE Storage System diese Laufzeitinstanzen nicht mehr. Diese Instanzen, wie die Engine- und Replikatprozesse für v1 Volumes, werden als verwaiste Instanzen bezeichnet. Verwaiste Instanzen verbrauchen weiterhin Knotenressourcen wie CPU und Speicher.

SUSE Storage unterstützt die Erkennung und Bereinigung von verwaisten Instanzen. Es identifiziert diese Instanzen und erstellt orphan Ressourcen, die sie beschreiben. Standardmäßig löscht SUSE Storage keine orphan Ressourcen automatisch. Benutzer können die Löschung verwaister Instanzen manuell auslösen oder SUSE Storage so konfigurieren, dass sie automatisch gelöscht werden.

Wenn die automatische Löschung von Verwaisten aktiviert ist, löscht SUSE Storage automatisch verwaiste Benutzerdefinierte Ressourcen (CRs) und deren zugehörige Verzeichnisse nach der im orphan-resource-auto-deletion-grace-period Einstellung definierten Verzögerung. Wenn ein Benutzer eine verwaiste CR manuell löscht, erfolgt die Löschung sofort und respektiert nicht diesen Kulanzzeitraum.

Beispiel

Das folgende Beispiel zeigt, wie man verwaiste Instanzen mit kubectl verwaltet.

Verwaiste Instanzen über kubectl verwalten

  1. Fügen Sie Knoten hinzu, auf denen verwaiste Instanzprozesse ausgeführt werden.

    • Verwaiste Replikatinstanz auf Knoten worker1

      Name:         instance-manager-8ff396d6d3744979b32abafc6346781c
      Namespace:    longhorn-system
      Kind:         InstanceManager
      ...
      Status:
        Instance Replicas:
          pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-r-05660b73: # This instance might be an orphan
            Spec:
              Data Engine:  v1
              Name:         pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-r-05660b73
            Status:
              Conditions:       <nil>
              Endpoint:
              Error Msg:
              Listen:
              Port End:         10020
              Port Start:       10011
              Resource Version: 0
              State:            running
              Target Port End:  0
              Target Port Start:0
              Type:             replica
      ...
    • Verwaiste Engineinstanz auf Knoten worker2

      Name:         instance-manager-b87f10b867cec1dca2b814f5e78bcc90
      Namespace:    longhorn-system
      Kind:         InstanceManager
      ...
      Status:
        Instance Engines:
          pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-e-0: # This instance might be an orphan
            Spec:
              Data Engine:  v1
              Name:         pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-e-0
            Status:
              Conditions:
                Filesystem Read Only: false
              Endpoint:
              Error Msg:
              Listen:
              Port End:             10020
              Port Start:           10020
              Resource Version:     0
              State:                running
              Target Port End:      10020
              Target Port Start:    10020
              Type:                 engine
      ...
  2. SUSE Storage erkennt die verwaisten Instanzen und erstellt orphan Ressourcen, die die Instanzen beschreiben.

    NAME                                                              TYPE                NODE
    orphan-1807009489e50534c35c350e22680449c97deca4e5d3b72f4591976145f8bc41  engine-instance     worker2
    orphan-a91aa42ab5eda6b8b9fe1116d5b5f5673e5108d89be3db6fd18a275913463eef  replica-instance    worker1
  3. Sie können die Liste der orphan Ressourcen, die vom SUSE Storage System erstellt wurden, durch Ausführen von kubectl -n longhorn-system get orphan einsehen.

    # kubectl -n longhorn-system get orphan
  4. Holen Sie sich die detaillierten Informationen zu einer der verwaisten Replikatinstanzen in spec.parameters durch kubectl -n longhorn-system get orphan <name>.

    apiVersion: longhorn.io/v1beta2
    kind: Orphan
    metadata:
      creationTimestamp: "2025-05-02T06:07:32Z"
      finalizers:
      - longhorn.io
      generation: 1
      labels:
        longhorn.io/component: orphan
        longhorn.io/managed-by: longhorn-manager
        longhorn.io/orphan-type: replica-instance
        longhornnode: worker1
        longhornreplica: pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-r-05660b73
      # ... (representing other omitted metadata fields)
    spec:
      dataEngine: v1
      nodeID: worker1
      orphanType: replica-instance
      parameters:
        InstanceManager: instance-manager-8ff396d6d3744979b32abafc6346781c
        InstanceName: pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-r-05660b73
    status:
      conditions:
      - lastProbeTime: ""
        lastTransitionTime: "2025-05-02T06:06:39Z"
        message: ""
        reason: running
        status: "True"
        type: InstanceExist
      - lastProbeTime: ""
        lastTransitionTime: "2025-05-02T06:06:39Z"
        message: ""
        reason: ""
        status: "False"
        type: Error
      ownerID: worker1
  5. Holen Sie sich die detaillierten Informationen zu einer der verwaisten Engine-Instanzen in spec.parameters durch kubectl -n longhorn-system get orphan <name>.

    apiVersion: longhorn.io/v1beta2
    kind: Orphan
    metadata:
      creationTimestamp: "2025-05-02T06:47:25Z"
      finalizers:
      - longhorn.io
      generation: 1
      labels:
        longhorn.io/component: orphan
        longhorn.io/managed-by: longhorn-manager
        longhorn.io/orphan-type: engine-instance
        longhornengine: pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-e-0
        longhornnode: worker2
      # ... (representing other omitted metadata fields)
    spec:
      dataEngine: v1
      nodeID: worker2
      orphanType: engine-instance
      parameters:
        InstanceManager: instance-manager-b87f10b867cec1dca2b814f5e78bcc90
        InstanceName: pvc-569e44c0-b352-4aca-bf14-2cf7a6cfe86f-e-0
    status:
      conditions:
      - lastProbeTime: ""
        lastTransitionTime: "2025-05-02T06:47:25Z"
        message: ""
        reason: running
        status: "True"
        type: InstanceExist
      - lastProbeTime: ""
        lastTransitionTime: "2025-05-02T06:47:25Z"
        message: ""
        reason: ""
        status: "False"
        type: Error
      ownerID: worker2
  6. Sie können eine orphan Ressource durch Ausführen von kubectl -n longhorn-system delete orphan <name> löschen. Die entsprechende verwaiste Instanz wird ebenfalls entfernt.

    # kubectl -n longhorn-system delete orphan orphan-a91aa42ab5eda6b8b9fe1116d5b5f5673e5108d89be3db6fd18a275913463eef
    
    # kubectl -n longhorn-system get orphan -l "longhorn.io/orphan-type in (engine-instance,replica-instance)"
    NAME                                                                      TYPE               NODE
    orphan-1807009489e50534c35c350e22680449c97deca4e5d3b72f4591976145f8bc41   engine-instance    worker2

    Die verwaiste Instanz wird gelöscht.

    # kubectl -n longhorn-system describe instancemanager -l "longhorn.io/node=worker1"
        Name:         instance-manager-8ff396d6d3744979b32abafc6346781c
        Namespace:    longhorn-system
        Kind:         InstanceManager
        ...
        Status:
          Instance Replicas:
        ...
  7. Standardmäßig löscht SUSE Storage verwaiste Instanzen nicht automatisch. Sie können die automatische Löschung aktivieren, indem Sie die orphan-resource-auto-deletion Einstellung konfigurieren.

    # kubectl -n longhorn-system edit settings.longhorn.io orphan-resource-auto-deletion

    Fügen Sie dann instance zur Liste hinzu, indem Sie es als eines der durch Semikolons getrennten Elemente einfügen.

    NAME                            VALUE      APPLIED   AGE
    orphan-resource-auto-deletion   instance   true      45h
  8. Nachdem Sie die automatische Löschung aktiviert haben und eine Weile gewartet haben, werden die orphan Ressourcen und Prozesse automatisch gelöscht.

    # kubectl -n longhorn-system get orphan -l "longhorn.io/orphan-type in (engine-instance,replica-instance)"
    No resources found in longhorn-system namespace.

    Die verwaisten Instanzen werden vom Instanzmanager gelöscht.

    # kubectl -n longhorn-system describe instancemanager -l "longhorn.io/node=worker1"
    Name:         instance-manager-8ff396d6d3744979b32abafc6346781c
    Namespace:    longhorn-system
    Kind:         InstanceManager
    ...
    Status:
      Instance Replicas:
    ...
    
    # kubectl -n longhorn-system describe instancemanager -l "longhorn.io/node=worker2"
    Name:         instance-manager-b87f10b867cec1dca2b814f5e78bcc90
    Namespace:    longhorn-system
    Kind:         InstanceManager
    ...
    Status:
      Instance Engines:
        ...

    Zusätzlich können Sie alle verwaisten Instanzen auf dem angegebenen Knoten durch Ausführen von folgendem Befehl löschen:

    # kubectl -n longhorn-system delete orphan -l "longhorn.io/orphan-type in (engine-instance,replica-instance),longhornnode=<node name>"

Verwaiste Instanzen über die SUSE Storage Benutzeroberfläche verwalten.

  1. Wählen Sie in der oberen Navigationsleiste Erweitert > Verwaiste Ressourcen > Instanzen aus.

  2. Überprüfen Sie die Liste der verwaisten Instanzen, die relevante Instanzinformationen anzeigen.

  3. Um eine bestimmte verwaiste Instanz zu löschen, wählen Sie Operation > Löschen für diese Instanz aus.

Standardmäßig löscht SUSE Storage verwaiste Instanzen nicht automatisch nur durch diese manuelle UI-Operation. Um die automatische Löschung verwaister Instanzen zu aktivieren oder Einstellungen zu allgemeinen verwaisten Daten zu konfigurieren, navigieren Sie zu Einstellungen > Verwaist und konfigurieren Sie die relevanten Optionen. (Siehe den Abschnitt kubectl für Details zur spezifischen orphan-resource-auto-deletion Einstellung für Instanz-CRs, wenn Sie über Backend-Einstellungen verwalten).

Ausnahmen

SUSE Storage erstellt in den folgenden Szenarien keine orphan Ressource:

  • Die verwaiste Engine oder Replikatinstanz wird wieder auf ihren ursprünglichen Knoten umgeplant und korrekt nachverfolgt.

  • Die Engine oder Replikatinstanz befindet sich in einem vorübergehenden Zustand wie Migrieren, Starten oder Beenden.

  • Der Knoten, auf dem die Instanz lief, wird aus dem Kubernetes-Cluster entfernt.