Removendo disco virtual truncado “attached to control domain” no XenServer e XCP-ng
Quando trabalhamos com scripts de backups no XenServer e XCP-ng é comum nos depararmos com um erro que pode vir a ocorrer devido a incapacidade de armazenamento do “storage” ou “espaço em disco” usado. Este erro pode ocorrer no momento em que um script de backup duplica ou cria snapshot da VM e não encontra espaço suficiente para finalizar a tarefa, o que acaba por consumir espaço em disco e em casos extremos inviabilizar o funcionamento do hypervisor. Neste artigo vamos demonstrar como remover via linha de comando um disco virtual truncado incapaz de ser removido através do Xen Center/XCP-ng Center. O mesmo processo se aplica a XenServer e XCP-ng.
Considerações
Vamos levar em consideração que você já possua conhecimento básico sobre o XenServer/XCP-ng, discos virtuais e prompt de comando. Este artigo é um tópico avançado, alterações mal executadas podem comprometer seu host.
Entendendo o problema
Repare na imagem abaixo, nela podemos observar um disco virtual truncado em um storage comum. Observe na grid, especialmente na coluna “Virtual Machines”, nela consta a seguinte mensagem:
“Control domain on host xenserver1“.
Isso significa que o host xenserver1 está usando o disco virtual no momento.
Sabemos que o host em sua execução normal não depende de discos virtuais para seu funcionamento. O disco em questão, ilustrado no artigo, é fruto da execução de um script de backup onde no momento da conversão do “snapshot” para “disco virtual“, encontrou uma falha de falta de espaço no Storage, ocasionando assim o cancelamento da execução do script e truncamento da imagem de disco backupeado.
Nota: Quando realizamos backups de vms no XenServer e XCP-ng dependemos de espaço no storage o suficiente para a duplicação da mesma. Após essa duplicação a vm é convertida para a extensão “.xva” e movida para o armazenamento de destino como um HD externo, pasta compartilhada, etc… Somente após esse procedimento o espaço é novamente liberado pelo controlador de domínio.
Localizando o disco
Com nosso problema em mãos, precisamos traçar uma solução. A primeira coisa que devemos fazer é localiza o “disco virtual” que desejamos excluir. Para isso, selecione o mesmo através do Xen Center/XCP-ng Center e no botão “Properties” altere o nome do disco para outro de melhor visualização visando facilitar sua identificação, como exemplo, mudaremos para “serverdc AQUI“. Feito isso, execute o comando conforme ilustrado abaixo
xe vdi-list
Você será capaz de ver uma informação parecida com a ilustrada abaixo.
Filtrando o disco
Agora vamos filtrar nosso disco, selecione o “UUID” localizado acima do “name-label” de seus disco e execute o comando conforme ilustrado abaixo.
xe vbd-list vdi-uuid=bb72d63c-d8a6-48cd-b365-3167626dfd1e
Você será capaz de ver uma informação parecida com a ilustrada abaixo.
Desconectando e excluindo o disco
Após realizarmos o filtro do disco, podemos desconectar e excluir o mesmo utilizando o “UUID” VBD, destacado na imagem acima. Para isso, execute o comando conforme ilustrado abaixo.
xe vbd-unplug uuid=63687815-3244-e4da-4818-fe0ef3b35317
xe vbd-destroy uuid=63687815-3244-e4da-4818-fe0ef3b35317
Repare que após executar o comando já é possível observar o botão “Delete” habilitado na tela do Xen Center/XCP-ng Center, possibilitando assim a exclusão do disco virtual.
Neste momento a remoção do disco é segura.
Nosso grupo no Telegram: https://t.me/xcpng