Я разработчик, и мы используем Quartz.Net, широко используемую библиотеку планирования с резервным хранилищем SQL для запуска кластера серверов заданий (виртуальных машин в кластере ESXI).
Quartz.Net требует это время будет синхронизировано между экземплярами сервера заданий, и для него рекомендуется использовать NTP.
Часы должны быть в пределах секунды друг от друга.
Наши системные администраторы используют Windows NTP для синхронизации времени с контроллером домена. Синхронизация виртуальных машин с хостом ESXI отключена.
Они продолжают настаивать, что «в пределах секунды» - неправильное требование и не может быть выполнено без аппаратных устройств GPS-синхронизации. Их уровень SLA и мониторинга «в пределах 3 минут».
Мы периодически (раз в 2-3 месяца) наблюдаем рассинхронизацию экземпляров Quartz, что соответствует рассинхронизации времени.
Это 2018 год. Windows может поддерживать синхронизацию серверов в пределах 2 мс или около того, как того требуют правила MIFID II. Итак, ваша проблема - не проблема.
Наши системные администраторы используют Windows NTP для синхронизации времени с контроллером домена. Синхронизация виртуальных машин с хостом ESXI отключена.
Зачем? Хост может справиться с этим намного лучше (будучи оборудованием), а у вас их намного меньше. Ваши системные администраторы стреляют себе в ногу, а затем жалуются, что у них кровотечение.
Они продолжают настаивать на том, что «в пределах секунды» - неправильное требование и не может быть выполнено без аппаратных устройств GPS-синхронизации. Их уровень SLA и мониторинга «в пределах 3 минут».
СТАРАЯ - древняя - Windows синхронизировалась в течение этого периода времени, потому что билеты Kerberos действительны 5 минут.
Но это, как я уже сказал, 2018 год. В настоящее время финансовая индустрия предъявляет довольно жесткие требования, и MS решила это для ... я думаю, с 2012 года. 2016 г. ввел его в действие. Миллисекундная точность в Интернете - это решенная проблема - фактически решенная 50 лет назад для приличного соединения. NTP может справиться с этим. Возможно, вам придется установить дешевую аппаратную коробку, если вы хотите сократить трафик (т.е. создать свой собственный источник времени NTP уровня 3), но это опять же не дорого.
Правильно ли мы просить «в течение секунды» или нам нужно полностью отказаться от Quartz?
Вам нужно программировать на случайные временные проблемы - как если бы вы поступали с оборудованием. Но требование «в течение секунды» - это шутка, которую легко выполнить в нормальных условиях.
Некоторые ссылки:
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time
Правительственные постановления, например: точность 50 мс для FINRA в США; 1 мс ESMA (MiFID II) в ЕС.
Там много подробностей и инструкций. На самом деле это отличное чтение, если вам нужно решить эту проблему. Возможно, вам придется обновить свой гипервизор - все говорят о Hyper-V. VMWare должна иметь возможность делать то же самое, но не знать, сколько лет вашей версии.
Правильно ли мы просить «в течение секунды» или нам нужно полностью отказаться от Quartz?
Существует множество очень веских причин, по которым различные стеки приложений нуждаются в жестком контроле времени, и то, что просит 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 (или более ранних версий)
Более ранние версии Windows (до Windows 10 1607 или Windows Server 2016 1607) не могут гарантировать высокую точность времени. Служба времени Windows в этих системах:
Обеспечена необходимая точность времени для удовлетворения требований проверки подлинности 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-клиент-сервер в иерархии, начиная с цели и заканчивая источником. Для получения дополнительной информации ознакомьтесь с документом о высокоточной временной синхронизации.