Полное отключение синхронизации времени между виртуальной машиной и гипервизором 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'а.
    Таким образом можно обезопасить себя от любых неправильных настроек времени на стороне гипервизоров, вызванных человеческим фактором либо объективными причинами.

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 15

      0
      Разве ваша команда виртуализации не использует maintenance mode для проведения таких операций как апдейты биос, ато ведь хост может вернутся без hba какого нибудь к примеру?
      Кроме того править на ходу vmx файл виртуальной машины не получится, что означает что прийдется выключать вм что не всегда приемлемо
        0
        Они же не вручную их обновляли, наверняка через какой-нибудь Systems Director.
        А Advanced Setting прекрасно обновляются при включенной ВМ черезе PowerCLI — тут тоже никакого кайфа тормозить машины и копаться в блокноте.
          0
          Про PowerCLI в этом плане не знал, надо будет попробовать, спасибо!
          А по поводу всяких system director, не уверен, они уже vmware aware? Просто что б машины сразу начали переезжать на хост он по идее должен быть сразу не в maintenance mode, но в таком случае его надо ребутнуть в нормальном состоянии что как бы как минимум странно, если же он бутается до maintenance mode а потом его софт выводит в нормальное состояние, то к тому времени время уже синхронизируется как правило
            0
            А по поводу всяких system director, не уверен, они уже vmware aware?

            Уже давно.

            то к тому времени время уже синхронизируется как правило

            Меня тоже смутил этот момент, но я не разбираюсь в нюансах работы ntpd. Может быть он не успел довести время до правильного, если синхронизация происходит постепенно.
        –1
        нужно произвести определенные настройки свойств каждой виртуальной машины

        А есть ли единый шаблон, на основе которого генерируются новые виртуальные машины?

        И можно ли внести изменения в него, чтобы потом новые ВМ создавались уже с правильными настройками? (Подразумеваю, что в подавляющем большинстве случаев у данного конкретного пользователя синхронизация времени не требуется. Если у кого-то это не так — не обращайте внимания на вопрос.)
          0
          Вот если честно сам хотел бы это знать…
            0
            Шаблон даже если он есть не затронет уже созданные машины. В остальном нет никакой проблемы сделать шаблон какой надо, единственное что не во всех юзкейсах шаблон приемлем
          0
          Особенно веселые комбинации получаются на связке Timezone виртуалки + Timezone блейд-сервера + Timezone корзины. Тут можно искать главного виновника до бесконечности. :)
            +1
            TZ должна быть вся в GMT. Тогда не придется скакать по граблям.
            0
            А какое пороговое значение расхождения времени в вашей мониторинговой системе?
              0
              200мс/500мс — дефолтные значения Нагиоса
                0
                Интересные цифры.

                Вот на технете пишут, что для AD критичен офсет более 5 минут.
                Да и в Study Guide к экзамену 70-411 есть такой вопрос и пояснения к нему с ответом:
                image

                Непонятно зачем использовать дефолтные настройки особенно с таким маленьким офсетом.
                  0
                  Я рад за Майкрософт и Керберос, но это все не мой случай. У нас другие приложения, по словам заказчика «критичные ко времени». Насколько — пытаемся выяснить.
              0
              Спасибо!
              На новой работе приходиться разбираться с ESXi, несколько ошалел, насколько оказалось нетривиально отключить синхронизацию времени гостя с гипервизором. По сравнению с Hyper-V, конечно. Про другие платформы ничего не скажу. Не знаю.
                0
                В версии 5.5. формат другой: вместо = «0» надо писать = “0”.
                Я сделал проще — в виртуальных машинах указал ntp-сервера своей страны.
                Т.к. шаманства с данными настройками и принудительным выставлением часового пояса не всегда давали нужный результат или жили ровно до следующей перезагрузки.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое