Как синхронизировать время на виртуальных машинах ESXi Windows за одну секунду?

12

Я разработчик, и мы используем Quartz.Net, широко используемую библиотеку планирования с хранилищем резервных копий SQL для запуска кластера серверов заданий (виртуальных машин в кластере ESXI).

Quartz.Net требует, чтобы время было синхронизировано между экземплярами сервера заданий, и рекомендует использовать для него NTP.

Часы должны быть с точностью до секунды друг от друга.

Наши системные администраторы используют Windows NTP для синхронизации времени с контроллером домена. Синхронизация виртуальных машин с хостом ESXI отключена.

Они продолжают настаивать на том, что «в течение секунды» не является правильным требованием и не может быть выполнено без аппаратных устройств синхронизации GPS. Их SLA и уровень мониторинга "в течение 3 минут".

Мы наблюдаем периодические (раз в 2-3 месяца) случаи кварцевого рассинхронизма, которые согласуются с несинхронизированным временем.

  1. Правильно ли нам просить «в течение секунды» или нам нужно полностью отказаться от Кварца?
  2. Если да, какие изменения рекомендуются для нашей настройки?
Leotsarev
источник
11
Синхронизация с одной секундой - ничто , даже на виртуальных серверах (которые, как известно, имеют плохую стабильность времени самостоятельно). Три минуты?! Смеяться Вы не можете запустить сеть таким образом.
Гонки

Ответы:

20

Это 2018. Windows может поддерживать синхронизацию серверов в течение 2 мс или около того, как того требуют правила MIFID II. Итак, ваша проблема не проблема.

Наши системные администраторы используют Windows NTP для синхронизации времени с контроллером домена. Синхронизация виртуальных машин с хостом ESXI отключена.

Почему? Хост может справиться с этим намного лучше (будучи аппаратным), а у вас намного меньше. Ваши сисадмины стреляют себе в ногу, затем жалуются, что у них кровотечение.

Они продолжают настаивать на том, что «в течение секунды» не является правильным требованием и не может быть выполнено без аппаратных устройств синхронизации GPS. Их SLA и уровень мониторинга "в течение 3 минут".

СТАРЫЙ - древний - Windows синхронизировалась в течение этого периода времени, потому что билеты Kerberos имели 5-минутный срок действия.

Но это, как я уже сказал, 2018. В настоящее время финансовая индустрия предъявляет довольно жесткие требования, и MS справляется с этим, думаю, с 2012 года. 2016 год полностью воплотил его в жизнь. Точность в миллисекундах через Интернет - это решаемая проблема, решаемая 50 лет назад на самом деле для достойного соединения. NTP может справиться с этим. Возможно, вам придется установить дешевую аппаратную коробку, если вы хотите сократить трафик (то есть создать собственный источник времени NTP уровня 3), но это опять-таки не дорого.

Правильно ли нам просить «в течение секунды» или нам нужно полностью отказаться от Кварца?

Вам нужно программировать на случайные проблемы со временем - как вы это делаете с оборудованием. Но «в течение секунды» - это шутка с требованием - это тривиально для удовлетворения при нормальных обстоятельствах.

Некоторые ссылки:

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time

Правительственные постановления, такие как: точность 50 мс для FINRA в США; 1 мс ESMA (MiFID II) в ЕС.

Много деталей и инструкций там. Это действительно потрясающее чтение, если вам нужно решить эту проблему. Возможно, вам придется обновить гипервизор - они все говорят о Hyper-V. VMWare должен быть в состоянии сделать то же самое, но не уверен, сколько лет вашей версии.

TomTom
источник
FWIW, соответствие требованиям MiFID II в финансовой индустрии [Великобритании] шокирующе мало (банки скорее заплатили бы ничтожные штрафы, чем потрудились бы со всем этим ухищрением), но вы, конечно, технически правы.
Гонки
Речь идет не о соответствии, а о способности быть совместимым. MS решила это давно. Таким образом, «3 минуты точного», что ОП говорит о шутке области.
TomTom
Я согласен; это было просто в стороне.
Гонки
2
Я с вами, что NTP более чем достаточно быстр, но VMware не рекомендует использовать сервисы интеграции для синхронизации времени, в большинстве (хотя и не во всех) случаях обычный NTP работает лучше и быстрее.
HoD
Поскольку вас беспокоит относительное время между серверами, вы можете использовать NTP для синхронизации их с сетевыми коммутаторами, которые, в свою очередь, синхронизируются с вашим Интернет-провайдером - никакого дополнительного оборудования не требуется.
grahamj42
6

Правильно ли нам просить «в течение секунды» или нам нужно полностью отказаться от Кварца?

Существует множество веских причин, по которым различным стекам приложений требуется жесткий контроль времени, и то, о чем просит Quartz, не является чем-то необычным.

Если да, какие изменения рекомендуются для нашей настройки?

Лучше всего сделать так, чтобы каждая часть вашей системы использовала NTP и указала на одну и ту же пару серверов NTP. Таким образом, хосты ESXi и виртуальные машины, работающие на них, используют одни и те же источники NTP, то же самое для всего остального. Таким образом, даже если NTP-серверы «выключены», то, по крайней мере, каждая часть вашей системы соответствует друг другу.

Chopper3
источник
4

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary

Поддержка высокой точности для Windows 8.1 и 2012 R2 (или Prior)

Более ранние версии Windows (до Windows 10 1607 или Windows Server 2016 1607) не могут гарантировать высокую точность времени. Служба Windows Time в этих системах:

  • Обеспечение необходимой точности времени для соответствия требованиям аутентификации Kerberos версии 5

  • Предоставление точного времени для клиентов и серверов Windows, подключенных к общему лесу Active Directory

Более строгие требования к точности выходили за пределы спецификации проекта Службы времени Windows в этих операционных системах и не поддерживаются.

Windows 10 и Windows Server 2016

Точность времени в Windows 10 и Windows Server 2016 была значительно улучшена, при этом поддерживается полная обратная совместимость NTP со старыми версиями Windows. При правильных условиях работы системы, работающие под управлением Windows 10 или Windows Server 2016 и более новых выпусков, могут обеспечивать точность до 1 секунды, 50 мс (миллисекунд) или 1 мс.

Точность цели: 1 секунда (1сек)

Для достижения точности 1 с для конкретной целевой машины по сравнению с высокоточным источником времени:

  • Целевая система должна работать под управлением Windows 10, Windows Server 2016.

  • Целевая система должна синхронизировать время с NTP-иерархией серверов времени, что приводит к высокоточному, совместимому с Windows источнику времени NTP.

  • Все операционные системы Windows в иерархии NTP, упомянутой выше, должны быть сконфигурированы, как описано в документации по настройке систем для высокой точности.

  • Совокупная задержка односторонней сети между целью и источником не должна превышать 100 мс. Совокупная сетевая задержка измеряется путем сложения отдельных односторонних задержек между парами узлов клиент-сервер NTP в иерархии, начиная с цели и заканчивая в источнике. Для получения дополнительной информации, пожалуйста, просмотрите документ с высокой точностью синхронизации времени.

https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy

Грег Аскью
источник
На самом деле мы используем Windows 2012R2. Кажется, это корень проблемы (наряду с несинхронизацией с хостом ESXI)
Леоцарев,
1
@Leotsarev: если это члены домена, они не должны синхронизироваться с хостом VM.
Грег Аскью