Проблема: ntpd
, когда она установлена на виртуальной машине с Ubuntu (у меня это было на хостах с различными гипервизорами, такими как KVM и VMware ESX), похоже, подвержены серьезным нагрузкам дрейфовать. Я не нашел ни одного хорошего метода, и не все, кажется, испытывают это.
Вопрос: Как я могу предотвратить это? Есть ли какие-либо настройки в /etc/ntp.conf
, чтобы заставить ntpd
быть более агрессивным в синхронизации времени внутри виртуальной машины, или я должен использовать ntpdate -b timeserver
вместо этого в cron
задании, которое выполняется так часто?
Какие Рекомендуется ли избегать скачков при использовании ntpdate -b
или смещения тактовой частоты в виртуальной машине Ubuntu?
Примечание: я видел аналогичные эффекты на ведомых устройствах vios (гипервизор IBM), работающих под управлением AIX как и на солярисе. Таким образом, проблема очень реальна и, по-видимому, связана с гипервизорами в целом.
В виртуальной коробке вы можете попытаться изменить параметр паравиртуализации вашей виртуальной машины.
В настройках вашей машины перейдите к: Система> Ускорение
Это исправит проблему для меня.
По крайней мере, в VirtualBox вы можете ... У меня раньше были проблемы с синхронизацией времени, но настройка параметров синхронизации времени в гостевых дополнениях , казалось, исправила это.
Вот соответствующий текст из руководства:
Настройка параметров синхронизации времени гостевых дополнений
Гостевые дополнения VirtualBox гарантируют, что системное время гостя синхронизировано со временем хоста. Есть несколько параметров, которые можно настроить. Параметры могут быть установлены для конкретной виртуальной машины с помощью следующей команды:
VBoxManage guestproperty set "VM name" "/VirtualBox/GuestAdd/VBoxService/PARAMETER" VALUE
где PARAMETER - одно из следующего:
--timesync-interval
Определяет интервал, с которым синхронизируется время с гостья. По умолчанию установлено значение 10000 мс (10 секунд).
--timesync-min-adjust
Минимальное абсолютное значение дрейфа, измеренное в миллисекундах для корректировки. По умолчанию 1000 мс в OS / 2 и 100 мс в другом месте.
--timesync-latency-factor
Коэффициент, на который умножается задержка запроса времени, чтобы вычислить динамическое минимальное время настройки. Значение по умолчанию - 8 раз, что означает в деталях: измерьте время, необходимое для определения времени хоста (гость должен связаться со службой хоста ВМ, что может занять некоторое время), умножьте это значение на 8 и выполните настройку, только если разница во времени между хостом и гостем больше, чем это значение. В противном случае не корректируйте время.
--timesync-max-latency
Максимальная задержка запроса таймера хоста для принятия. Значение по умолчанию составляет 250 мс.
--timesync-set-threshold
Абсолютный порог дрейфа, выраженный в миллисекундах, с которого следует начинать устанавливать время, а не пытаться плавно его регулировать. По умолчанию это 20 минут.
--timesync-set-start
Установите время при запуске службы синхронизации времени.
--timesync-set-on-restore 0|1
Установите время после восстановления виртуальной машины из сохраненного состояния при передаче 1 в качестве параметра (по умолчанию). Отключите, передав значение 0. В последнем случае время будет плавно регулироваться, что может занять много времени.Все эти параметры также могут быть указаны как параметры командной строки для
VBoxService
.Отключение синхронизации времени гостевых дополнений
После установки и запуска гостевые дополнения VirtualBox будут пытаться синхронизировать время гостя со временем хоста. Этого можно избежать, запретив гостевой службе читать часы хоста:
blockquote>VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled"
Я наблюдал похожие симптомы на машине с Linux, работающей на VMware ESX. Кажется, что дрейф (несколько минут в день) был вызван синхронизацией времени, обеспечиваемой NTP внутри инструментов VM и VMware. Мы решили нашу проблему, отключив синхронизацию времени в свойствах инструментов VMware (в свойствах VM в ESX). После этого NTP смог синхронизировать часы с удаленным сервером времени. Если вы предпочитаете редактировать файл .vmx
вручную, установите tools.syncTime = "0"
.
Остановка NTP внутри виртуальной машины и синхронизация времени инструментами, вероятно, также будут работать, по крайней мере, для устранения дрейфа сервера. Сам ESX может запустить демон NTP. Лучшие практики VMware по хронометражу рекомендуют использовать NTP вместо VMWare Tools для синхронизации времени.
VMware публикует большую статью о хронометраже в виртуальных машинах VMware . Наиболее актуальным отрывком является подраздел «Ядра Clocksource». В VMware KB также есть советов по устранению неполадок для хронометража в гостевых системах Linux .