Removendo hosts do System Center Virtual Machine Manager 2012 SP1

Um problema que pode acontecer quando se administra um ambiente de virtualização com o System Center Virtual Machine Manager (VMM) é perder um host e ele continuar aparecendo na console e, através dela, ocorre um erro ao tentar remove-lo. Quando isso acontece é preciso ir no SQL onde a Database está e fazer a remoção manual dos registros.

Antes de tudo deve ser realizada um backup da database do VMM.
Outra boa atitude é parar o serviço do VMM.

Para isso é preciso seguir os seguintes passos (Observação: Será mostrado baseado no VMM 2012 SP1. Em versões anteriores algumas tabelas não existem pois são recursos novos, isso pode acontecer no 2012 R2, também):

Dentro do banco de dados todos os hosts terão um HostID. O HostID será usado nas queries nas outras tabelas e para a remoção dos registro.

Para isso vamos supor que precisamos deletar o servidor chamado Servidor01 e o domínio é o contoso.com e esse servidor pertencia a um cluster e estava conectado a um storage via iSCSI.

Abrir o SQL Server Management Studio e conectar ao servidor onde está o bando de dados do VMM;
Encontrar o bando VirtualManagerDB e expandir Tables.

Dentro das tabelas procurar a que tem o seguinte nome: dbo.tbl_ADHC_Host. Nessa tabela iremos encontrar o HostID. Para visualizar o conteúdo existem duas possibilidades:

Clicar com o botão direito e ir em Select Top 1000 Rows. Com essa opção serão mostrados os 1000 primeiros registros.

Caso existam mais de 1000 registros ou muitos registros e exista um desejo de se encontrar o resultado mais rápido será preciso ir em New Query e digitar o seguinte:
SELECT HostID FROM tbl_ADHC_Host WHERE (ComputerName = ‘FQDN’)

E executar. Lembrando que o FQDN é o nome qualificado do computador: Exemplo Server01.contoso.com. Com isso a query ficaria:
SELECT HostID FROM tbl_ADHC_Host WHERE (ComputerName = ‘Server01.contoso.com’)

O Resultado da query ou pelas 1000 linhas teremos o HostID algo parecido com:

F34FDB64-C78C-4EC0-BDB8-75811292277C esse HostID iremos utilizar bastante nessa jornada para eliminação do registro. Outro registro que será interessante copiar é o HostGroupID.

O processo é bastante simples, mesmo para hosts envolvendo conexões iSCSI:
Começamos com uma query para determinar as interfaces de rede:
Para essa query será utilizado o HostID capturado anteriormente.
SELECT * FROM tbl_ADHC_HostNetworkAdapter WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)

Após esse comando será preciso copiar todos os NetworkAdapterID.
Na próxima query vamos começar a deletar. Não importa que nenhuma seja deletada, o importante é seguir na ordem.

Nessa query serão utilizados os HostNetworkAdapterID, que no meu caso eram seis.

DELETE FROM tbl_NetMan_HostNetworkAdapterToIPSubnetVLan WHERE (HostNetworkAdapterID = ‘CD45D8CF-7945-4B14-A4C8-270186DAA4F4’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToIPSubnetVLan WHERE (HostNetworkAdapterID = ‘7B247D6E-6F77-4F1C-865E-4F8BDFDF4DAC’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToIPSubnetVLan WHERE (HostNetworkAdapterID = ‘A34EFC2E-C43D-496E-AFC5-73D30F5EDA88’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToIPSubnetVLan WHERE (HostNetworkAdapterID = ‘C52FF0DE-67C7-4631-B1EE-8366B8DA92A4’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToIPSubnetVLan WHERE (HostNetworkAdapterID = ‘D533398C-40E4-4461-8A5C-D9CC9C623807’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToIPSubnetVLan WHERE (HostNetworkAdapterID = ‘EDFE213C-D656-4A35-9B41-EB6D0D0F40FD’)

A próxima query só deve ser utilizada caso haja problema nas posteriores, nela é utilizado o HostGroupID:
DELETE FROM tbl_NetMan_LogicalNetworkDefinitionToHostGroup WHERE (HostGroupID = ‘4FAC29F3-9964-4049-AB7D-E07A2D4C732A’)

Se nas próximas queries houverem problemas, utilizar a anterior:

DELETE FROM tbl_NetMan_HostNetworkAdapterToLogicalNetwork WHERE (HostNetworkAdapterID = ‘CD45D8CF-7945-4B14-A4C8-270186DAA4F4’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToLogicalNetwork WHERE (HostNetworkAdapterID = ‘7B247D6E-6F77-4F1C-865E-4F8BDFDF4DAC’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToLogicalNetwork WHERE (HostNetworkAdapterID = ‘A34EFC2E-C43D-496E-AFC5-73D30F5EDA88’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToLogicalNetwork WHERE (HostNetworkAdapterID = ‘C52FF0DE-67C7-4631-B1EE-8366B8DA92A4’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToLogicalNetwork WHERE (HostNetworkAdapterID = ‘D533398C-40E4-4461-8A5C-D9CC9C623807’)
DELETE FROM tbl_NetMan_HostNetworkAdapterToLogicalNetwork WHERE (HostNetworkAdapterID = ‘EDFE213C-D656-4A35-9B41-EB6D0D0F40FD’)

 

Nas próximas queries será utilizado o HostID novamente:

DELETE FROM tbl_ADHC_HostNetworkAdapter WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)
DELETE FROM tbl_ADHC_VirtualNetwork WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)
DELETE FROM tbl_ADHC_HostVolume WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)
DELETE FROM tbl_ADHC_HostDisk WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)
DELETE FROM tbl_WLC_PhysicalObject WHERE (HostId = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)
DELETE FROM tbl_WLC_VObject WHERE (HostId = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)

 

Se houver uma ou mais interfaces iSCSI os passos abaixo precisam ser executados, caso contrários passe para as três últimas queries.

A próxima query é um select. Copie os ISCSIHbaID. Para ela, será preciso saber o iqn do servidor:
SELECT ISCSIHbaID FROM tbl_ADHC_HostInternetSCSIHba WHERE (ISCSINodeName = ‘iqn.1991-05.com.microsoft:Servidor01.contoso.com’)

Após o Select vamos deletar as entradas:

DELETE FROM tbl_ADHC_ISCSIHbaToPortalMapping WHERE (ISCSIHbaID = ’95B34A35-BA98-40C8-9E62-1AB645D55AA8′)
DELETE FROM tbl_ADHC_ISCSIHbaToPortalMapping WHERE (ISCSIHbaID = ‘DB93CDF4-23C5-4780-8520-45FC27F74981’)
DELETE FROM tbl_ADHC_ISCSIHbaToPortalMapping WHERE (ISCSIHbaID = ‘F38976A4-8361-4D5D-95CC-74F55292D7D6’)
DELETE FROM tbl_ADHC_ISCSIHbaToPortalMapping WHERE (ISCSIHbaID = ’04D4AF9D-8C27-44D1-82F5-A1D53EA1F467′)
DELETE FROM tbl_ADHC_ISCSIHbaToPortalMapping WHERE (ISCSIHbaID = ‘85390938-1D23-4E3E-BF30-BC7095C98035’)

DELETE FROM tbl_ADHC_ISCSIHbaToTargetMapping WHERE (ISCSIHbaID = ’95B34A35-BA98-40C8-9E62-1AB645D55AA8′)
DELETE FROM tbl_ADHC_ISCSIHbaToTargetMapping WHERE (ISCSIHbaID = ‘DB93CDF4-23C5-4780-8520-45FC27F74981’)
DELETE FROM tbl_ADHC_ISCSIHbaToTargetMapping WHERE (ISCSIHbaID = ‘F38976A4-8361-4D5D-95CC-74F55292D7D6’)
DELETE FROM tbl_ADHC_ISCSIHbaToTargetMapping WHERE (ISCSIHbaID = ’04D4AF9D-8C27-44D1-82F5-A1D53EA1F467′)
DELETE FROM tbl_ADHC_ISCSIHbaToTargetMapping WHERE (ISCSIHbaID = ‘85390938-1D23-4E3E-BF30-BC7095C98035’)
DELETE FROM tbl_ADHC_HostInternetSCSIHba WHERE (ISCSIHbaID = ’95B34A35-BA98-40C8-9E62-1AB645D55AA8′)
DELETE FROM tbl_ADHC_HostInternetSCSIHba WHERE (ISCSIHbaID = ‘DB93CDF4-23C5-4780-8520-45FC27F74981’)
DELETE FROM tbl_ADHC_HostInternetSCSIHba WHERE (ISCSIHbaID = ‘F38976A4-8361-4D5D-95CC-74F55292D7D6’)
DELETE FROM tbl_ADHC_HostInternetSCSIHba WHERE (ISCSIHbaID = ’04D4AF9D-8C27-44D1-82F5-A1D53EA1F467′)
DELETE FROM tbl_ADHC_HostInternetSCSIHba WHERE (ISCSIHbaID = ‘85390938-1D23-4E3E-BF30-BC7095C98035’)

Finalmente as últimas três queries:

DELETE FROM tbl_ADHC_HostBusAdapter WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)
DELETE FROM tbl_NetMan_InstalledVirtualSwitchExtension WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)
DELETE FROM tbl_ADHC_Host WHERE (HostID = ‘F34FDB64-C78C-4EC0-BDB8-75811292277C’)

Pronto, o Host foi removido.

Via PowerShell para se tentar remover um host o comando é:
remove-vmhost Server01.contoso.com –force
Mas se não foi pela console, muito provavelmente via PS também vá dar erro.

Para se remover um cluster via SQL:

SELECT ClusterID FROM tbl_ADHC_HostCluster WHERE (Name = ‘CLUSTER.contoso.com’)
Após o select, copiar o ClusterID. Lembrando que o cluster não pode ter hosts associados:
DELETE FROM tbl_ADHC_ClusterDisk WHERE (ClusterID = ‘A67C6DC5-286C-4E7A-AE16-702CBA45107D’)
DELETE FROM tbl_ADHC_HostCluster WHERE (Name = ‘CLUSTER.contoso.com’)

 

Até a próxima!!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s