Системное администрирование
15 августа 2014

Полное отключение синхронизации времени между виртуальной машиной и гипервизором VMware ESXi

Небольшая, но довольно полезная статья. Надеюсь поможет кому-нибудь избежать проблем в будущем.
Недавно на одном из наших проектов случился неожиданный шторм инцидентов, вызванный рассинхронизацией времени между виртуалками и NTP-серверами. Причину нашли довольно быстро: в это время происходила массовая онлайн-миграция vMotion между хостами, вызванная обновлением BIOS гипервизоров. Причем хосты тоже получали время с NTP-сервера, но виртуалки на них начинали мигрировать сразу после включения гипервизоров, когда последние еще не успевали полностью синхронизировать время, соответственно возникала разница во времени между хостами между которыми происходила миграция. Очевидно, что это была ошибка со стороны команды виртуализации, однако это вызвало шторм инцидентов на нас, UNIX команде.

Ситуация вызвала большое удивление, ведь настройка “Synchronize time with host” была отключена на всех виртуалках. Причина была найдена в КБ-шке VMware:
Особого внимания заслуживают строчки:
In the VMware Tools control panel, the time synchronization checkbox is unselected, but you may experience these symptoms:
  • When you suspend a virtual machine, the next time you resume that virtual machine it synchronizes the time to adjust it to the host.
  • Time is resynchronized when you migrate the virtual machine using vMotion, take a snapshot, restore to a snapshot, shrink the virtual disk, or restart the VMware Tools service in the virtual machine (including rebooting the virtual machine).

Вот так нежданчик. Получается, что Вмваря принудительно синхронизирует время при миграции, снятии снапшотов и в других «особых» случаях. В случае если между двумя хостами существует разница во времени, и вы мигрируете виртуалку между ними – эта разница во времени отразится на системных часах, что может привести к известным проблемам с ntpd.

И наконец самое главное, ради чего написал статью: там же в статье говорится о том, как навсегда избавиться от этой проблемы – нужно произвести определенные настройки свойств каждой виртуальной машины, а именно внести изменения в vmx-файл виртуалки:
tools.syncTime = «0»
time.synchronize.continue = «0»
time.synchronize.restore = «0»
time.synchronize.resume.disk = «0»
time.synchronize.shrink = «0»
time.synchronize.tools.startup = «0»
time.synchronize.tools.enable = «0»
time.synchronize.resume.host = «0»

То же самое можно сделать через интерфейс vSphere Client'а.
Таким образом можно обезопасить себя от любых неправильных настроек времени на стороне гипервизоров, вызванных человеческим фактором либо объективными причинами.

+7
32,2k 97
Комментарии 15

Рекомендуем