Как обеспечить синхронизацию хостов linux, работающих на vmware Infrastructure 3 или vmware 3 esxi с ntp-сервером. Я обнаружил, что гость linux, работающая под esx или esxi, в будущем имеет тенденцию к смещению часов.
Как обеспечить синхронизацию времени с сервером времени? Нужно ли мне развертывать инструменты vmware на хосте Linux? а затем синхронизировать хост с сервером ntp, гостя с хостом и с сервером ntp?
Краткий ответ: правильные параметры ядра и конфигурация ntpd
Длинный ответ: у VMware есть документ с лучшими практиками, который довольно хорош в этом отношении, http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1006427
Обратите внимание, что это несколько противоречит некоторой информации в этой ветке. Например, особенно рекомендуется не чтобы больше использовать функцию timeync vmware-tools.
Я столкнулся с этой проблемой, и иногда смещения настолько велики, что служба ntp отказывалась синхронизироваться.
Я обнаружил, что если вы установите инструменты vmware на гостевой машине, он автоматически синхронизирует свое время со временем хоста.
Да, установка vmware-tools для инструмента синхронизации часов важна, но этого может быть недостаточно.
У меня сработало добавление параметра загрузки ядра:
clock=pit notsc
Это устанавливает источник тактовых импульсов на то, что vmware постоянно обновляет, и отключает счетчик синхронизации времени.
Возможно, не связанное с этим, но на достаточно свежих ядрах я всегда добавляю:
divider=10
что значительно снижает загрузку гостевых ЦП.
Оба из них также полезны с установленными инструментами vmware или без них и помогают поддерживать более точную синхронизацию часов (вместо постоянной борьбы между быстро дрейфующими часами и службой синхронизации часов инструментов vmware).
Да, вам необходимо установить vmware-tools на клиенте виртуальной машины. Затем вы можете установить кнопку «синхронизировать гостевое время с хостом» на экране параметров виртуальной машины.
Есть ответ, который уже выбран (и это лучший ответ, поскольку инструменты vmware дают вам так много других преимуществ), но еще один вариант - запускать обычные команды ntpdate в cron. Это исправляет ваши часы, но не управляет их дрейфом, но работает в крайнем случае.
Будьте осторожны с ntpdate или rdate, обычно не рекомендуется сдвигать время в жестком направлении, поскольку многие серверные приложения зависят от непрерывного времени.
Например, Dovecot просто выйдет, если обнаружит большой сдвиг во времени.
Если вы используете ядро «без тиков» (2.6.22+ по умолчанию - IIRC) в гостевых системах, то легче управлять дрейфом часов. Я обнаружил, что использование NTP более точно, чем собственный инструмент VMWare, но я не проверял это с научной точки зрения.
Чтобы не дать NTP просто отказаться, если из-за большой нагрузки или какой-либо другой проблемы часы уходят слишком далеко (это гораздо реже с новыми ядрами, но все еще может происходить), убедитесь, что у вас есть строка «tinker panic 0» наверху / рядом с ним. вашего ntp.conf.
Чтобы быть внимательным, синхронизируйте часы ваших хост-компьютеров с общедоступными часами, а виртуальные машины с хостом - не делайте, чтобы все ваши виртуальные машины отдельно связывались с общедоступными серверами времени.
Также: не используйте гостевую синхронизацию часов VMWare одновременно с NTPD. Они будут сбивать друг друга, оставляя часы вашей виртуальной машины в неопределенном и ненадежном состоянии.
Вот хорошая подборка статей по vmware, которые помогали мне в прошлом: http://blogs.vmware.com/kb/2009/02/new-timekeeping-articles.html
Если вы установите Демон NTP на вашем гостевом компьютере Linux в качестве клиента он будет периодически проверять, чтобы ваши часы не смещались в долгосрочной перспективе. Вам не нужно выполнять какую-либо причудливую синхронизацию хост-гость, потому что сервер просто находится в сети. :)