У меня есть виртуальная машина Windows, у которой есть проблемы с дрейфом времени, и если ее оставить наедине с собой, она будет дрейфовать на несколько минут в день.
Я знаю, что на виртуальных машинах есть проблемы со временем, но я надеялся, что использование службы Meinberg NTP будет успешным.
Как правило, это работает в том смысле, что время корректируется одним большим шагом примерно раз в 70 минут при смещении примерно на 10 минут.
Это полностью сбило меня с толку, так как я думал, что NTP должен плавно возвращаться в нужное время, паниковать и умирать, если смещение будет больше 3 минут.
Итак, (а) что происходит и (б) как мне сделать так, чтобы оно обновлялось более регулярно?
Во-первых ... NTP обычно предназначен для периодической корректировки ваших часов ... да ... но также обычно понимают, что он проверяет нечасто. Первоначальные проверки обычно проводятся каждые несколько минут ... а после того, как базовый уровень установлен ... они возвращаются к каждые несколько часов. Если вы слишком часто запрашиваете сервер NTP, он, скорее всего, просто забанит вас.
При этом большинство фреймворков виртуальных серверов включают в себя какой-то пакет инструментов, который включает инструмент, который используется для синхронизации хоста и гостей. Hyper-V - единственное животное, которое хорошо работает только с Windows. (Microsoft начала создавать инструменты для Linux ... затем, когда база драйверов превратилась в исходный код ядра ... полностью прекратила его поддержку ... вынудив команду ядра Linux выдернуть то, что добавила MS.) Есть несколько работ: для многих таких ситуаций ... но дополнительная информация о том, с какой средой виртуальной машины вы работаете, может помочь.
редактировать Похоже, что Microsoft наконец-то удалось вернуть поддержку своего гипервизора в ядро Linux. (начиная с Windows 2012 R2) Будем надеяться, что они продолжат его поддерживать. Я не тестировал и не изучал все детали. Но, учитывая историю Microsoft ... я лично пока не стал бы на нее полагаться.
Что касается ответов на ваши последние 2 вопроса ... A) Часы дрейфуют ... потому что они не используют аппаратные часы ... а скорее часы на основе CPU-Tick (большинство ОС делают это), которые намного точнее чем стандартные часы. К сожалению ... когда это будет сделано ... количество тактов ЦП на виртуальной машине не является постоянным ... и поэтому ... часы RTC будут дрейфовать. Обычно, если у вас есть приложение, которое напрямую запрашивает аппаратные часы ... оно вернется почти точно. И Б) ... Я не знаю, как настроить сервис "Meinberg NTP" ... но также предлагаю не трогать его.