Posts tagged: ESXi

Adicionando Roda estaticas no VMWare ESXi

Dica rápida para adicionar rotas estaticas no ESXi.

Para adicionar uma rota primeiramente conecte via console local (Alt+F1) ou via SSH e execute o esxcfg-route.

~# esxcfg-route -a 192.168.0.0/24 192.168.1.2

Para remover uma rota estatica

~# esxcfg-route -d 192.168.0.0/24 192.168.1.2

Para listar as rotas

~ # esxcfg-route -l
VMkernel Routes:
Network          Netmask          Gateway          Interface
10.192.168.1.0      255.255.255.0  Local Subnet     vmk1
200.198.219.204   255.255.255.224  Local Subnet     vmk0
192.168.0.0       255.255.255.0    192.168.1.2   vmk1
default          0.0.0.0          200.198.219.192   vmk0

Matando maquinas virtuais travadas no VMWare ESXi

VMwareLogoNão existe nada mais irritante do que buscar alguma informação no google e não achar ou pior, achar mais com informações que não implicam com o que você realmente quer. Isso aconteceu recentemente comigo para resolução de um pequeno mais desastroso problema: o travamento de uma máquina virtual no ESXi. Tudo bem, é simples a máquina virtual travou é só ir lá e dar um shutdown nela através do client do infrastructure, pois bem e quando você via lá dá um shutdown via client e o mesmo não desliga? Cortar os pulsos?! Pular do 20º andar, apelar para ignorancia e dar um shutdown no EXSi?! Não tem um procedimento simples e eficaz para essas horas, matar a maquina virtual. OK, porém o ESXi parece um Linux mas todo customizado para rodar maquinas virtuais e alguns comandos e processos existentes no VMWare Server, ESX 3.5 (Sem o “i”) e VMPlayer simplesmente não estão lá, o que pode facilmente um administrador ao desespero.

Verifiquei que o ESXi não possui o vmware-cmd, ou seja, não posso utilizar um stop hard. com isso me basta matar o processo responsavel pela máquina virtual, mas isso também não vai funcionar uma vez que o comando é o vmware-cmd. Dar um shutdown no ESXi vai para todas as máquinas e o processo pode continuar demorando para ser morto e com isso perder mais tempo ainda e agora com todas as máquinas virtuais desligadas, fora que se eu realizar um shutdown estilo Wolverine (puxar o cabo de força) pode gerar problemas no sistema de arquivos, sair matando processos arbitrariamente também não é legal, afinal qual é o processo que pode ser detonado?!

Diante desse cenário realizei as seguintes ações:

Conectei no ESXi via SSH e lá rodei um esxtop, com o qual verifiquei que o processo da máquina virtual que mandei desligar estava usando 98% de um dos processadores do ESXi.

ID    GID NAME             NWLD   %USED    %RUN    %SYS   %WAIT    %RDY
25949  25949 Magneto           7    98.82    5.86    0.05  687.24    2.05
147567 147567 Storm         7    2.49    2.50    0.03  691.49    1.17
9369   9369 Cyclops                 7    1.62    1.63    0.01  692.69    0.83

Sai do esxtop e dei um ps auwx | grep <nome da minha Máquina virtual> para localizar os processos ligados a minha máquina virtual.

~ # ps ax auxxxx | grep Magneto
21383448      vmm0:Magneto
21383449      vmm1:Magneto
21383451 21383447 mks:Magneto      /bin/vmx
21154076 21383447 vcpu-0:Magneto   /bin/vmx
21383454 21383447 vcpu-1:Magneto   /bin/vmx

Não podemos matar todos os processo simplesmente pois podem gerar problemas a máquina virtual, pelo que pude entender todas as máquinas virtuais estão ligadas a um processo vmx pai, que é responsavel por agrupar todos os demais processos ligados aquela máquina. Visto isso realizei outro ps auxwww mas agora fazendo uma grep para  vmx.

~ # ps ax auxxxx | grep vmx
61545 61545 vmx                  /bin/vmx
61547 61545 vmx                  /bin/vmx
61548 61545 mks:Storm    /bin/vmx
61549 61545 vcpu-0:Storm /bin/vmx
68727 68727 vmx                  /bin/vmx
68729 68727 vmx                  /bin/vmx
68730 68727 mks:Cyclops    /bin/vmx
68731 68727 vcpu-0:Cyclops /bin/vmx
21383447 21383447 vmx                  /bin/vmx
21383450 21383447 vmx                  /bin/vmx
21383451 21383447 mks:Magneto      /bin/vmx
21154076 21383447 vcpu-0:Magneto   /bin/vmx
21383454 21383447 vcpu-1:Magneto   /bin/vmx

Reparei que o GID do processo vmx está vinculado ao GID dos processos vinculados a minha máquina virtual, sendo assim executei o comando kill com o GID do processo VMX vinculado a minha máquina virtual.

~ # kill -9 21383447

Um novo ps auxw revelou que os processo haviam sido mortos.

~ # ps ax auxxxx | grep vmx
61545 61545 vmx                  /bin/vmx
61547 61545 vmx                  /bin/vmx
61548 61545 mks:Storm    /bin/vmx
61549 61545 vcpu-0:Storm /bin/vmx
68727 68727 vmx                  /bin/vmx
68729 68727 vmx                  /bin/vmx
68730 68727 mks:Cyclops    /bin/vmx
68731 68727 vcpu-0:Cyclops /bin/vmx

No cliente a máquina Virtual apareceu como desligada na mesma hora. Ao religar a máquina virtual a mesma voltou a responder sem alertas de anormalidade.

WordPress Themes