Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Esta é uma documentação não divulgada para SUSE® Storage 1.12 (Dev).

Limpeza de Instâncias Órfãs

SUSE Storage pode identificar e limpar instâncias órfãs em cada nó.

Instância de Runtime Órfã

Quando uma queda de rede afeta um nó SUSE Storage, pode deixar instâncias de runtime de engine ou réplica que não são mais rastreadas pelo sistema SUSE Storage. Os Recursos Personalizados (CRs) correspondentes de engine e réplica podem ser removidos ou reprogramados para outro nó durante a queda. Quando o nó se recupera, o sistema SUSE Storage não rastreia mais essas instâncias de runtime. Essas instâncias, como os processos de engine e réplica para volumes v1, são chamadas de instâncias órfãs. Instâncias órfãs continuam a consumir recursos do nó, como CPU e memória.

SUSE Storage suporta a detecção e limpeza de instâncias órfãs. Ele identifica essas instâncias e cria recursos orphan que as descrevem. Por padrão, SUSE Storage não exclui automaticamente recursos orphan. Os usuários podem acionar a exclusão de instâncias órfãs manualmente ou configurar SUSE Storage para excluí-las automaticamente.

Quando a exclusão automática de órfãos está habilitada, SUSE Storage exclui automaticamente Recursos Personalizados (CRs) órfãos e seus diretórios associados após o atraso definido pela configuração orphan-resource-auto-deletion-grace-period. Se um usuário excluir manualmente um CR órfão, a exclusão ocorre imediatamente e não respeita este período extra.

Exemplo

O seguinte exemplo demonstra como gerenciar instâncias órfãs usando kubectl.

Gerenciar Instâncias Órfãs via kubectl

  1. Identifique os nós onde os processos das instâncias órfãs estão em execução.

    • Instância de réplica órfã no Nó 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
      ...
    • Instância de engine órfã no Nó 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 detecta as instâncias órfãs e cria recursos orphan que as descrevem.

    NAME                                                              TYPE                NODE
    orphan-1807009489e50534c35c350e22680449c97deca4e5d3b72f4591976145f8bc41  engine-instance     worker2
    orphan-a91aa42ab5eda6b8b9fe1116d5b5f5673e5108d89be3db6fd18a275913463eef  replica-instance    worker1
  3. Você pode visualizar a lista de orphan recursos criados pelo sistema SUSE Storage executando kubectl -n longhorn-system get orphan.

    # kubectl -n longhorn-system get orphan
  4. Obtenha as informações detalhadas de uma das instâncias de réplica órfãs em spec.parameters por 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. Obtenha as informações detalhadas de uma das instâncias de engine órfãs em spec.parameters por 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. Você pode excluir um recurso orphan executando kubectl -n longhorn-system delete orphan <name>. A instância órfã correspondente também será removida.

    # 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

    A instância órfã é excluída.

    # kubectl -n longhorn-system describe instancemanager -l "longhorn.io/node=worker1"
        Name:         instance-manager-8ff396d6d3744979b32abafc6346781c
        Namespace:    longhorn-system
        Kind:         InstanceManager
        ...
        Status:
          Instance Replicas:
        ...
  7. Por padrão, SUSE Storage não exclui automaticamente instâncias órfãs. Você pode habilitar a exclusão automática configurando a opção orphan-resource-auto-deletion.

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

    Em seguida, adicione instance à lista incluindo-o como um dos itens separados por ponto e vírgula.

    NAME                            VALUE      APPLIED   AGE
    orphan-resource-auto-deletion   instance   true      45h
  8. Após habilitar a exclusão automática e esperar um tempo, os recursos e processos orphan são excluídos automaticamente.

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

    As instâncias órfãs são excluídas do gerenciador de instâncias.

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

    Além disso, você pode excluir todas as instâncias órfãs no nó especificado executando:

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

Gerenciar Instâncias Órfãs via SUSE Storage UI

  1. Na barra de navegação superior, selecione Avançado > Recursos Órfãos > Instâncias.

  2. Revise a lista de instâncias órfãs, que exibe informações relevantes das instâncias.

  3. Para excluir uma instância órfã específica, selecione Operação > Excluir para essa instância.

Por padrão, SUSE Storage não exclui automaticamente instâncias órfãs apenas por esta operação manual na UI. Para habilitar a exclusão automática de instâncias órfãs, ou para configurar opções relacionadas a dados órfãos gerais, navegue até Configurações > Órfãos e configure as opções relevantes. (Consulte a seção kubectl para detalhes sobre a configuração específica orphan-resource-auto-deletion para CRs de instância, se estiver gerenciando pelas configurações de backend).

Exceçőes

SUSE Storage não cria um recurso orphan nas seguintes situações:

  • A instância de engine ou réplica órfã é reprogramada de volta para seu nó original e é corretamente rastreada novamente.

  • A instância de engine ou réplica está em um estado transitório, como migrando, iniciando ou parando.

  • O nó onde a instância estava em execução é removido do cluster Kubernetes.