Дрейф времени хоста Vmware

10

Как можно гарантировать, что хосты linux, работающие на vmware Infrastructure 3 или vmware 3 esxi, будут синхронизированы с сервером ntp. Я обнаружил, что у гостя linux, работающего под esx или esxi, есть тенденция к смещению часов в будущем.

Как обеспечить синхронизацию времени с сервером времени? Нужно ли развертывать инструменты VMware на хосте Linux? а затем синхронизировать хост с сервером ntp, гостем с хостом и с сервером ntp?

biosFF
источник

Ответы:

6

Это проблема, с которой я столкнулся, и иногда дрейфы настолько велики, что служба ntp отказывается синхронизироваться.

Я обнаружил, что если вы установите vmware tools на гостя, он автоматически синхронизирует время с временем хоста.

tomdeb
источник
Я также обнаружил, что мне нужно было добавить clocksource = pit к загрузочной линии ядра grub.
Скотт
9

Краткий ответ: правильные параметры ядра и конфигурация ntpd

Длинный ответ: у VMware есть документ с рекомендациями, который очень хорош в этом, http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427

Обратите внимание, что это несколько противоречит некоторой информации в этой теме. Например, особенно рекомендуется больше не использовать функцию временной синхронизации vmware-tools.

cagenut
источник
Боюсь, различные установки хоста / гостя нуждаются в различной комбинации решений. Я работал с виртуальной коробкой на другой работе, с которой мы просто не могли решить проблему синхронизации по времени, независимо от того, что мы пытались.
staticsan
4

Да, установка vmware-tools для инструмента синхронизации часов важна, но может быть недостаточной.

Для меня сработало добавление параметра загрузки ядра:

clock=pit notsc

Это устанавливает источник синхронизации на то, что vmware постоянно обновляет, и отключает счетчик синхронизации времени.

Возможно, не связано, но на достаточно недавних ядрах я всегда добавляю:

divider=10

что значительно снижает использование гостевого процессора.

Оба они также полезны с установленными инструментами vmware или без них и помогают более точно синхронизировать часы (вместо постоянной борьбы между быстро дрейфующими часами и сервисом синхронизации часов инструментов vmware).

jmanning2k
источник
3

Да, вы должны установить vmware-tools на клиенте VM. Затем вы можете установить флажок «синхронизировать время гостя с хостом» на экране «Параметры» виртуальной машины.

Дэвид Макинтош
источник
1

Есть ответ, который уже выбран (и это лучший ответ, поскольку инструменты vmware дают вам много других преимуществ), но другой вариант также заключается в запуске обычных команд ntpdate в cron. Это исправляет ваши часы, однако не управляет смещением часов, но работает в крайнем случае.

Мэтт Симмонс
источник
1

Будьте осторожны с ntpdate или rdate, обычно не стоит переносить время на трудный путь, поскольку многие серверные приложения зависят от непрерывного времени.

Например, Dovecot просто выйдет, если обнаружит большой сдвиг времени.

Свен
источник
Кроме того, никогда не используйте ntpdate в сочетании с собственной функцией синхронизации времени VMWare. В результате VMWare может установить существенное дрейфовое соединение после того, как ntpdate обновит тактовую частоту, делая вещи столь же неточными, как и в другом направлении.
Дэвид Спиллетт
1

Если вы используете «тиканье» ядро ​​(2.6.22+ по умолчанию - IIRC) в гостевых системах, то смещением часов легче управлять. Я обнаружил, что использование NTP более точно, чем собственный инструмент VMWare, но я не проверял это с научной точки зрения.

Чтобы прекратить NTP, просто сдаваясь, если из-за большой нагрузки или из-за других проблем такты смещаются слишком далеко (это случается гораздо реже с новыми ядрами, но все еще может случиться), убедитесь, что у вас есть строка «tinker panic 0» в верхней части или рядом с ней. вашего ntp.conf.

Чтобы быть внимательным, синхронизируйте часы своих хост-машин с общедоступными часами и виртуальными машинами с хостом - не связывайте все свои виртуальные машины отдельно с общедоступными серверами времени.

Кроме того: не используйте собственную гостевую синхронизацию часов VMWare одновременно с NTPD. Они сработают, оставив часы вашей виртуальной машины в неопределенном и ненадежном состоянии.

Дэвид Спиллетт
источник
0

Если вы устанавливаете демон NTP на гостевой компьютер Linux в качестве клиента, он будет периодически проверять и проверять, чтобы ваши часы не дрейфовали в долгосрочной перспективе. Вам не нужно выполнять какую-либо необычную синхронизацию хост-гость, потому что сервер просто ... в сети. :)

joshk0
источник
1
NTP в ВМ, скорее всего, НЕ решит эту проблему. Проблема с запуском в качестве виртуальной машины заключается в том, что вы не обязательно получаете постоянное количество тактов в секунду. В этих условиях ntp обычно довольно быстро прекращает попытки синхронизации. Вам нужно либо пойти по пути vmware-tools, либо выполнить грубый 'rdate -s $ SERVER' из cron, чтобы выручить часы.
Дэвид Макинтош
0

Это может быть полезно

Параметр загрузки гостевого ядра:

 clock=pit
rkthkr
источник