Blog Agility

Remover Host XenServer Danificado do Pool

Remover Host XenServer Danificado do Pool

 

Remover um Host XenServer do pool é algo necessário caso ocorra uma falha de hardware, por exemplo. Quando uma falha no host ocorre, muitas vezes as VM’s que estavam sendo executadas nele continuam em execução no pool do XenServer, porém não são mais listadas na console XenCenter. Portanto, não podemos gerenciá-las nem migrá-las para outro host.

Nos passos a seguir iremos demonstrar uma maneira rápida e fácil de se remover este host danificado do pool.

Acesse a console de um host funcional membro do pool ou através de uma conexão SSH.

A primeira etapa deste processo consiste em identificar o UUID do host danificado por meio dos comandos abaixo:

[root@XENSERVER01 ~]# xe host-list params=uuid,name-label,host-metrics-live

uuid ( RO)                 : ecc2a5c5-fd2a-49ad-9613-78706d4fec0f
           name-label ( RW): XENSERVER01
    host-metrics-live ( RO): true

uuid ( RO)                 : 0001666d-1371-49ac-9e3f-bc2d1e36655a
           name-label ( RW): XENSERVER02
    host-metrics-live ( RO): false

uuid ( RO)                 : 5363a548-ef33-41fa-94b7-5bf79de96a97
           name-label ( RW): XENSERVER03
    host-metrics-live ( RO): true

uuid ( RO)                 : 249944e4-e83e-471e-848a-083b1fa4be86
           name-label ( RW): XENSERVER04
    host-metrics-live ( RO): true

uuid ( RO)                 : 4a14c35e-eb3f-4f11-8563-1c2f9639b095
           name-label ( RW): XENSERVER05
    host-metrics-live ( RO): true 

Com base no resultado mostrado acima, podemo identificar que o host com status “false” é o nosso host danificado e o UUID dele é 0001666d-1371-49ac-9e3f-bc2d1e36655a.

O próximo passo consiste em identificar quais VM’s estão sendo executadas neste host. Para isso, execute o comando abaixo:

[root@XENSERVER01 ~]# xe vm-list is-control-domain=false resident-on=0001666d-1371-49ac-9e3f-bc2d1e36655a
uuid ( RO) : a414a967-c9df-207e-7dde-c2c6655b2f11
name-label ( RW): VM01
power-state ( RO): running
uuid ( RO) : 4a04e0d6-93dd-a121-3483-0435513e4103
name-label ( RW): VM02
power-state ( RO): running 

No parametro “resident-on” insira o UUID do host em que identificamos a falha.

Neste caso o pool identificou duas VM’s em execução neste servidor. Dependendo da falha ocorrida no host, é possível que essas VM’s estejam realmente em execução. Sendo assim você pode acessá-las via RDP, por exemplo e desligá-las de forma “limpa”.

Segue o comando para informar ao pool que as VM’s estão desligadas.

[root@XENSERVER01 ~]# xe vm-reset-powerstate resident-on=0001666d-1371-49ac-9e3f-bc2d1e36655a –force –multiple
Caution! Incorrectly using the –multiple option could result in ALL virtual machines within the pool being reset. Be careful to use the resident-on parameter as well. Alternately, you can reset VMs individually.

Isso irá redefinir o “power state” das VM’s e então poderemos vê-las na console XenCenter.

Agora que as VM’s estão visíveis na console XenCenter, você precisa remover o host danificado do pool XenServer. Vale ressaltar que esse é um procedimento válido caso o host danificado não tenha mais condições de retornar ao pool.

Segue comando abaixo:

[root@XENSERVER01 ~]# xe sr-forget uuid=[UUID_do_Storage_Repository]

Após esse comando, o host não mais aparecerá na console XenCenter, porém ainda resta uma etapa a ser cumprida.
Novamente, o UUID inserido acima é o UUID do host danificado.

Os local SR’s (Storage Repositories) do host danificado ainda aparecem no XenCenter. Para isso precisamos executar mais alguns comandos.

Primeiro temos que encontrar o UUID dos SR que eram do host danificado.

[root@XENSERVER01 ~]# xe sr-list params=uuid,name-label,host

Na lista deve aparecer SR’s cujo host diz “Host Unknown” ou “Host not found” algo similar.

Confira os SR’s encontrados e em seguida exclua-os do pool utilizando o seguinte comando:

[root@XENSERVER01 ~]# xe sr-forget uuid=[UUID_do_Storage_Repository]

Execute o comando acima para cada SR “orfão” encontrado.

Agora o seu XenCenter encontra-se limpo e pronto para receber um novo host XenServer.