この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

孤立したインスタンスのクリーンアップ

SUSE Storage は各ノード上の孤立したインスタンスを特定し、クリーンアップできます。

孤立したランタイムインスタンス

ネットワーク障害が SUSE Storage ノードに影響を与えると、SUSE Storage システムによって追跡されなくなったエンジンまたはレプリカのランタイムインスタンスが残ることがあります。対応するエンジンおよびレプリカのカスタムリソース (CR) は、障害中に削除されるか、別のノードに再スケジュールされる可能性があります。ノードが回復すると、SUSE Storage システムはこれらのランタイムインスタンスを追跡しなくなります。これらのインスタンスは、v1 ボリュームのエンジンおよびレプリカプロセスなどで、孤立したインスタンスと呼ばれます。孤立したインスタンスは、CPU やメモリなどのノードリソースを消費し続けます。

SUSE Storage は孤立したインスタンスの検出とクリーンアップをサポートしています。これらのインスタンスを特定し、それらを説明する orphan リソースを作成します。デフォルトでは、SUSE Storage は orphan リソースを自動的に削除しません。ユーザーは孤立したインスタンスの削除を手動でトリガーするか、SUSE Storage を設定して自動的に削除させることができます。

自動孤立削除が有効になっている場合、SUSE Storage は orphan-resource-auto-deletion-grace-period 設定で定義された遅延の後に孤立したカスタムリソース (CR) とその関連ディレクトリを自動的に削除します。ユーザーが孤立した CR を手動で削除すると、削除は即座に行われ、この猶予期間は考慮されません。

以下の例は、kubectl を使用して孤立したインスタンスを管理する方法を示しています。

kubectl を介して孤立したインスタンスを管理する

  1. 孤立したインスタンスプロセスが実行されているノードを紹介する

    • ノード 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
      ...
    • ノード 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 は孤立したインスタンスを検出し、インスタンスを説明する orphan リソースを作成します。

    NAME                                                              TYPE                NODE
    orphan-1807009489e50534c35c350e22680449c97deca4e5d3b72f4591976145f8bc41  engine-instance     worker2
    orphan-a91aa42ab5eda6b8b9fe1116d5b5f5673e5108d89be3db6fd18a275913463eef  replica-instance    worker1
  3. SUSE Storage システムによって作成された orphan リソースのリストを kubectl -n longhorn-system get orphan を実行することで表示できます。

    # kubectl -n longhorn-system get orphan
  4. kubectl -n longhorn-system get orphan <name> を使用して spec.parameters の孤立したレプリカインスタンスの詳細情報を取得します。

    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. kubectl -n longhorn-system get orphan <name> を使用して spec.parameters の孤立したエンジンインスタンスの詳細情報を取得します。

    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. kubectl -n longhorn-system delete orphan <name> を実行することで orphan リソースを削除できます。対応する孤立したインスタンスも削除されます。

    # 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

    孤立したインスタンスは削除されます。

    # kubectl -n longhorn-system describe instancemanager -l "longhorn.io/node=worker1"
        Name:         instance-manager-8ff396d6d3744979b32abafc6346781c
        Namespace:    longhorn-system
        Kind:         InstanceManager
        ...
        Status:
          Instance Replicas:
        ...
  7. デフォルトでは、SUSE Storage は孤立したインスタンスを自動的に削除しません。orphan-resource-auto-deletion 設定を構成することで自動削除を有効にできます。

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

    次に、セミコロンで区切られた項目の 1 つとして instance をリストに追加します。

    NAME                            VALUE      APPLIED   AGE
    orphan-resource-auto-deletion   instance   true      45h
  8. 自動削除を有効にした後、しばらく待つと、orphan リソースと処理が自動的に削除されます。

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

    孤立したインスタンスはインスタンスマネージャーから削除されます。

    # 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:
        ...

    さらに、指定されたノード上のすべての孤立したインスタンスを削除するには、次を実行します:

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

SUSE Storage UIを介して孤立したインスタンスを管理します。

  1. 上部のナビゲーションバーで、*高度な設定 > 孤立リソース > インスタンス*を選択します。

  2. 関連するインスタンス情報を表示する孤立したインスタンスのリストを確認します。

  3. 特定の孤立したインスタンスを削除するには、そのインスタンスの*操作 > 削除*を選択します。

デフォルトでは、SUSE Storage はこの手動UI操作だけでは孤立したインスタンスを自動的に削除しません。孤立したインスタンスの自動削除を有効にするか、一般的な孤立データに関連する設定を構成するには、*設定 > 孤立*に移動し、関連するオプションを構成します。(バックエンド設定を介して管理する場合のインスタンスCRの特定の kubectl 設定に関する詳細は orphan-resource-auto-deletion セクションを参照してください)。

[Exceptions (例外)]

SUSE Storage は次のシナリオでは orphan リソースを作成しません。

  • 孤立したエンジンインスタンスまたはレプリカインスタンスは元のノードに再スケジュールされ、再び正しく追跡されます。

  • エンジンまたはレプリカインスタンスは、移行中、起動中、または停止中などの一時的な状態にあります。

  • インスタンスが実行されていたノードは、Kubernetesクラスターから追放されます。