quinta-feira, 17 de setembro de 2009

Linux Kernel 2.6 em VM com horário incorreto

Introdução:
Ao instalar um CentOS 5.3 em uma máquina virtual (VMWare Server 1.0), mas pelas pesquisas é um problema do Kernel 2.6 com máquinas virtuais, inclusive o MS Virtual Server, o mesmo começou a apresentar problemas de horário, mas não somente dessincronismo e sim anomalias, acompanhe os testes realizados.

Testes Realizados:
# date
Wed Sep 16 15:10:16 BRT 2009
Horário Incorreto

# service ntpd restart
Shutting down ntpd: [ OK ]
ntpd: Synchronizing with time server: [ OK ]
Starting ntpd: [ OK ]

# date
Wed Sep 16 15:13:03 BRT 2009
Horário sincronizado com o NTP

# while true; do date; sleep 120; done
Wed Sep 16 15:13:15 BRT 2009
Wed Sep 16 15:15:15 BRT 2009

Se eu deixar ele me mostra certinho 2 em 2 minutos... Porém...

# date
Wed Sep 16 15:15:42 BRT 2009

Não são 15:15 e sim 15:17... Ele perdeu 2 minutos no meio do caminho.... O minuto dele não tem 60 segundos???? Ele vai perdendo minutos até estar com horas de diferença...

Solucionando o problema:
Bom depois de muitas pesquisas e testes, vamos a solução, que é realizada em várias etapas.
Instalar VMware tools:
Menu VM // Install VMWare Tolls...

Automaticamente será montada uma imagem do VMWare Tools na máquina virtual. Execute os comandos:
# cd /media/VMware\ Tools/
# rpm -ivh VMwareTools-1.0.9-156507.i386.rpm

Configurar VMware tools:
# vmware-config-tools.pl
Siga as instruções.

# vmware-toolbox
Marque a seguinte opção:
"Time synchrononization between the virtual machine and the host operation system."


Alterar o GRUB:
Editar o GRUB e acrescentar os seguintes parâmetros, na linha do kernel:
clock=pit nosmp noapic nolapic

Por exemplo:
kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ rhgb quiet clock=pit nosmp noapic nolapic

Desligar o computador:
# sync
# sync
# shutdown -h now

Ele deve acrescentar automáticamente a linha abaixo no arquivo .vmx da sua VMWare:
tools.sync.Time = "TRUE"
Se isto não aconteceu, acrescente manualmente.

Iniciar a VM e verificar que o horário está OK!!

Referências:
http://communities.vmware.com/thread/74465
http://communities.vmware.com/thread/41993
http://communities.vmware.com/thread/120931
http://support.microsoft.com/kb/918461
http://www.vmwarez.com/2006/01/vmwarezcoms-pre-built-vms-for-player.html