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 Dependenciescom escopo no VDC de destino para a verificação de dependências; - O privilégio
Remove OS Imagecom 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.
-
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.
-
Leia o mapa, verificando quatro coisas.
O que verificar Como 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 dependentes Máquinas que fazem referência à imagem: o identificador e o nome de cada máquina Nós ignorados Nó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.
-
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. -
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 verificar | Valor esperado |
|---|---|
| Estágio da imagem | removed — a linha do catálogo foi excluída |
| Nós com erros | A lista está vazia |
| Nós ignorados | A 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 falha | Significado | Ação |
|---|---|---|
-48011 | A irreversibilidade não foi confirmada | Confirme explicitamente que a remoção é irreversível |
-48012 | A imagem tem clones ZFS ou máquinas dependentes | Obtenha o mapa de dependências e remova os objetos dependentes; os nós não foram tocados |
-48009 | A 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 chamada | Verifique o identificador da imagem; a resposta é a mesma para a imagem restrita de outra pessoa, então a sua existência não é confirmada |
-48004 | Uma operação concorrente já está removendo a imagem | Aguarde o resultado da primeira operação |
-48010 | Não foi possível consultar os nós: o status do cluster ou o transporte está indisponível | Verifique o estado do cluster e tente novamente |
-403 | Acesso negado | Verifique 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 |
-503 | O log de segurança não aceitou o registro de intenção | A remoção não foi iniciada e nada mudou; restaure a disponibilidade do log e tente novamente |
-48001 | Erro de banco de dados | Tente 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
- Biblioteca de imagens de SO — o modelo do catálogo, a propriedade das imagens e o escopo de visibilidade.
- Como importar uma imagem de SO para o cluster — a operação inversa: importar uma imagem e distribuí-la entre os pools.
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.