Pular para o conteúdo principal

Como remover uma imagem de SO

Quando usar​

Quando uma imagem de SO não é mais necessária e as suas cópias devem ser removidas de todos os pools do cluster. A operação é irreversível e exige confirmação explícita: a imagem só pode ser restaurada importando-a novamente da fonte da biblioteca.

A remoção tem duas etapas: uma verificação de dependências somente leitura, seguida da remoção propriamente dita. A primeira etapa é segura e pode ser repetida quantas vezes for necessário: ela não altera nada nos nós nem no catálogo.

Este procedimento não se aplica se você precisa apenas restringir uma imagem para um VDC: a remoção exclui a imagem inteira de todos os pools do cluster. Ele também não se aplica à revogação de uma versão: as versões de imagem não podem ser endereçadas como objetos separados do catálogo; a imagem é removida pelo seu identificador.

Pré-requisitos​

  • O privilégio View Image Dependencies com escopo no VDC de destino para a verificação de dependências;
  • O privilégio Remove OS Image com escopo no VDC de destino para a remoção propriamente dita; esse é um direito separado, e fazer parte de concessões de visibilidade não o fornece;
  • Propriedade da imagem: um administrador de VDC só pode remover imagens que pertencem ao seu VDC. Ele não pode remover uma imagem compartilhada do cluster nem uma imagem apenas tornada visível para o seu VDC; essa remoção é feita pelo papel Cluster master;
  • Os nós do cluster estão acessíveis: um nó indisponível não consegue remover a sua cópia, e a remoção terá um resultado parcial;
  • vStack Center versão 4.0.0.

Etapas​

Na interface web, a remoção começa na seção «Image library», aba «Images»: «Delete image» no painel da imagem ou «Delete» no menu da linha e, em seguida, «Delete» na caixa de diálogo «Delete image?» — essa é a confirmação explícita da irreversibilidade. A interface não executa nenhuma verificação separada antes disso. Se a imagem tiver dependências, a caixa de diálogo «The image cannot be deleted» lista «Virtual machines from this image», «Clones on nodes» e o número de nós ignorados. Um resultado parcial abre «The image has been removed partially» com os grupos «Removed from», «Failed on» e «Skipped» e um botão «Retry». Um administrador de VDC não pode remover uma imagem compartilhada do cluster nem a imagem de outro VDC: o botão fica inativo com a dica «The image belongs to another virtual data center».

As etapas abaixo apresentam a ordem das operações pela API do cluster; as estruturas de requisição e os detalhes completos das respostas estão na referência da API.

  1. Obtenha o mapa de dependências da imagem. A verificação consulta todos os nós online e, ao mesmo tempo, procura máquinas que fazem referência à imagem. O resultado chega quando a consulta é concluída.

  2. Leia o mapa, verificando quatro coisas.

    O que verificarComo interpretar
    Indicador agregado de dependências"Presente" significa que a remoção será bloqueada
    Mapa de clones"Nó → pool → clones": o dataset filho fica à esquerda, e o seu snapshot pai (origin) fica à direita. A indicação de que a imagem está ausente em um par significa "não há cópia da imagem neste pool"; isso não é nem uma dependência nem uma falha
    Máquinas dependentesMáquinas que fazem referência à imagem: o identificador e o nome de cada máquina
    Nós ignoradosNós que não puderam ser consultados: a verificação está incompleta

    Uma lista não vazia de nós ignorados significa que clones podem não ter sido detectados. Aguarde o retorno do nó e obtenha o mapa novamente.

  3. Remova as dependências. Enquanto a imagem tiver pelo menos um clone ZFS ou uma máquina dependente, a remoção é rejeitada com o código -48012, e os nós não são tocados. Resolva as máquinas dependentes indicadas no mapa. Quem retém a imagem também pode ser outra imagem do catálogo: o mapa também a nomeia, e essa imagem só pode ser removida depois de quem a retém.

  4. Remova a imagem. Confirme explicitamente que a operação é irreversível: sem confirmação, a remoção é rejeitada. Antes da remoção, o vStack Center verifica as dependências novamente para se proteger contra uma condição de corrida em que um novo clone da imagem surgiu entre a verificação e a remoção.

    O resultado é definitivo: ele chega depois que os nós online respondem e já contém o desfecho: o estágio da imagem, os nós dos quais a cópia foi removida, os nós com erros e os nós ignorados.

Verificar o resultado​

A remoção completa é identificada por três aspectos do resultado:

O que verificarValor esperado
Estágio da imagemremoved — a linha do catálogo foi excluída
Nós com errosA lista está vazia
Nós ignoradosA lista está vazia

A imagem então desaparece do catálogo do cluster. Verifique se a sua linha não está mais no catálogo de imagens.

Solução de problemas​

Alguns nós não removeram as suas cópias​

A remoção retorna sucesso, mas com o estágio partial_active: alguns nós não removeram as suas cópias. O resultado lista os nós com erros e o motivo de cada um, como um dataset ocupado.

Os nós bem-sucedidos não são revertidos, e a linha do catálogo permanece. Resolva a causa e tente a remoção novamente: ela remove o restante de forma idempotente. Uma lista não vazia de nós ignorados significa o mesmo: a remoção das cópias restantes não foi confirmada porque um nó não respondeu.

O serviço foi reiniciado durante a remoção​

Nenhuma imagem fica travada após um reinício. A remoção completa é registrada no log de segurança estritamente antes de a linha da imagem desaparecer do catálogo, então as remoções confirmadas são concluídas na inicialização, enquanto as não confirmadas são colocadas em partial_active. Tentar a remoção novamente conclui a operação.

Falhas por código​

Código de falhaSignificadoAção
-48011A irreversibilidade não foi confirmadaConfirme explicitamente que a remoção é irreversível
-48012A imagem tem clones ZFS ou máquinas dependentesObtenha o mapa de dependências e remova os objetos dependentes; os nós não foram tocados
-48009A imagem não foi encontrada: a linha do catálogo não existe, ou a imagem não está visível para quem faz a chamadaVerifique o identificador da imagem; a resposta é a mesma para a imagem restrita de outra pessoa, então a sua existência não é confirmada
-48004Uma operação concorrente já está removendo a imagemAguarde o resultado da primeira operação
-48010Não foi possível consultar os nós: o status do cluster ou o transporte está indisponívelVerifique o estado do cluster e tente novamente
-403Acesso negadoVerifique o privilégio de remoção e a propriedade: apenas o papel Cluster master pode remover uma imagem compartilhada, a imagem de outra pessoa ou uma imagem tornada visível por meio de uma concessão
-503O log de segurança não aceitou o registro de intençãoA remoção não foi iniciada e nada mudou; restaure a disponibilidade do log e tente novamente
-48001Erro de banco de dadosTente a remoção novamente; se o erro se repetir, entre em contato com o suporte

Um identificador de imagem inválido ou ausente, assim como a falta de confirmação, é rejeitado durante a análise da requisição, antes de qualquer ação no catálogo ou nos nós.

Veja também​

Métodos da API​

As operações de API abordadas nesta página são golden-image-clones, golden-image-remove e golden-images-list; consulte a referência da API.