Я разработчик, и мы используем Quartz.Net, широко используемую библиотеку планирования с хранилищем резервных копий SQL для запуска кластера серверов заданий (виртуальных машин в кластере ESXI).
Quartz.Net требует, чтобы время было синхронизировано между экземплярами сервера заданий, и рекомендует использовать для него NTP.
Часы должны быть с точностью до секунды друг от друга.
Наши системные администраторы используют Windows NTP для синхронизации времени с контроллером домена. Синхронизация виртуальных машин с хостом ESXI отключена.
Они продолжают настаивать на том, что «в течение секунды» не является правильным требованием и не может быть выполнено без аппаратных устройств синхронизации GPS. Их SLA и уровень мониторинга "в течение 3 минут".
Мы наблюдаем периодические (раз в 2-3 месяца) случаи кварцевого рассинхронизма, которые согласуются с несинхронизированным временем.
- Правильно ли нам просить «в течение секунды» или нам нужно полностью отказаться от Кварца?
- Если да, какие изменения рекомендуются для нашей настройки?
источник
Ответы:
Это 2018. Windows может поддерживать синхронизацию серверов в течение 2 мс или около того, как того требуют правила MIFID II. Итак, ваша проблема не проблема.
Почему? Хост может справиться с этим намного лучше (будучи аппаратным), а у вас намного меньше. Ваши сисадмины стреляют себе в ногу, затем жалуются, что у них кровотечение.
СТАРЫЙ - древний - 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
Много деталей и инструкций там. Это действительно потрясающее чтение, если вам нужно решить эту проблему. Возможно, вам придется обновить гипервизор - они все говорят о Hyper-V. VMWare должен быть в состоянии сделать то же самое, но не уверен, сколько лет вашей версии.
источник
Существует множество веских причин, по которым различным стекам приложений требуется жесткий контроль времени, и то, о чем просит Quartz, не является чем-то необычным.
Лучше всего сделать так, чтобы каждая часть вашей системы использовала NTP и указала на одну и ту же пару серверов NTP. Таким образом, хосты ESXi и виртуальные машины, работающие на них, используют одни и те же источники NTP, то же самое для всего остального. Таким образом, даже если NTP-серверы «выключены», то, по крайней мере, каждая часть вашей системы соответствует друг другу.
источник
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
источник