Jestem programistą i używamy Quartz.Net, powszechnie używanej biblioteki harmonogramów z magazynem kopii zapasowych SQL do uruchamiania klastra serwerów zadań (maszyn wirtualnych w klastrze ESXI).
Quartz.Net wymaga synchronizacji czasu między instancjami serwera zadań i zaleca używanie do tego protokołu NTP.
Zegary muszą znajdować się w odstępach sekundy.
Nasi administratorzy używający Windows NTP do synchronizacji czasu z kontrolerem domeny. Synchronizacja maszyn wirtualnych z hostem ESXI jest wyłączona.
Utrzymują, że „w ciągu sekundy” nie jest poprawnym wymaganiem i nie można tego spełnić bez sprzętowych urządzeń synchronizujących GPS. Ich SLA i poziom monitorowania są „w ciągu 3 minut”.
Występują okresowe (raz na 2-3 miesiące) przypadki wystąpienia synchronizacji kwarcu, które są spójne z czasem braku synchronizacji.
- Czy możemy prosić o „w ciągu sekundy”, czy też musimy całkowicie porzucić Kwarc?
- Jeśli tak, jakie zmiany są zalecane w naszej konfiguracji?
źródło
Odpowiedzi:
Jest to rok 2018. System Windows może utrzymywać synchronizację serwerów w ciągu około 2 ms, zgodnie z wymogami przepisów MIFID II. Twój problem nie jest problemem.
Dlaczego? Host może sobie z tym poradzić znacznie lepiej (będąc sprzętem), a masz o wiele mniej. Twoi administratorzy strzelają sobie w stopę, a następnie narzekają, że krwawią.
STARY - starożytny - system Windows zsynchronizował się w tym czasie, ponieważ bilety Kerberos miały ważność 5 minut.
Jest to jednak, jak powiedziałem, 2018. Branża finansowa ma obecnie dość brutalne wymagania, a państwa członkowskie sprostały temu - myślę, że od 2012 r. 2016 wprowadził go w pełni w życie. Milisekundowa dokładność przez Internet to rozwiązany problem - rozwiązany właściwie 50 lat temu, w celu uzyskania przyzwoitego połączenia. NTP sobie z tym poradzi. Być może będziesz musiał zainstalować tani sprzęt, jeśli chcesz ograniczyć ruch (np. Stworzyć własne źródło czasu NTP poziomu 3), ale to znowu nie jest nawet drogie.
Musisz sporadycznie programować problemy z czasem - tak jak w przypadku sprzętu. Ale „w ciągu sekundy” to żart wymogu - spełnienie w normalnych okolicznościach jest banalne.
Niektóre referencje:
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time
Wiele szczegółów i instrukcji. To naprawdę niesamowita lektura, jeśli musisz rozwiązać ten problem. Być może będziesz musiał zaktualizować swojego hypervisora - wszystko mówi o Hyper-V. VMWare powinno być w stanie zrobić to samo, ale nie ma pewności, ile lat ma Twoja wersja.
źródło
Istnieje wiele bardzo dobrych powodów, dla których różne stosy aplikacji wymagają ścisłej kontroli czasu, a to, o co proszą Quartz, nie jest niczym niezwykłym.
Najlepiej jest, aby każda część twojego systemu korzystała z NTP i wskazywała na tę samą parę serwerów NTP. Więc hosty ESXi i uruchomione na nich maszyny wirtualne, wszystkie używają tych samych źródeł NTP, tak samo dla wszystkich innych zaangażowanych. W ten sposób, nawet jeśli serwery NTP są „wolne”, przynajmniej każda część twojego systemu jest ze sobą aktualna.
źródło
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary
Obsługa wysokiej dokładności dla Windows 8.1 i 2012 R2 (lub wcześniejszych)
Wcześniejsze wersje systemu Windows (wcześniejsze niż Windows 10 1607 lub Windows Server 2016 1607) nie mogą gwarantować bardzo dokładnego czasu. Usługa Czas systemu Windows w tych systemach:
Podano dokładność czasu niezbędną do spełnienia wymagań uwierzytelniania Kerberos w wersji 5
Zapewniono luźno dokładny czas klientom i serwerom Windows dołączonym do wspólnego lasu usługi Active Directory
Zaostrzone wymagania dotyczące dokładności wykraczały poza specyfikację projektu usługi Windows Time Service w tych systemach operacyjnych i nie są obsługiwane.
Windows 10 i Windows Server 2016
Dokładność czasu w Windows 10 i Windows Server 2016 została znacznie poprawiona, przy jednoczesnym zachowaniu pełnej kompatybilności wstecznej NTP ze starszymi wersjami Windows. W odpowiednich warunkach działania systemy z systemem Windows 10 lub Windows Server 2016 i nowszymi wersjami mogą zapewniać dokładność 1 sekundy, 50 ms (milisekund) lub 1 ms.
Celność: 1 sekunda (1 s)
Aby osiągnąć dokładność 1s dla określonej maszyny docelowej w porównaniu z bardzo dokładnym źródłem czasu:
System docelowy musi działać w systemie Windows 10, Windows Server 2016.
System docelowy musi synchronizować czas z hierarchii serwerów czasu NTP, co powinno zakończyć się bardzo dokładnym, zgodnym z Windows źródłem czasu NTP.
Wszystkie systemy operacyjne Windows w wyżej wymienionej hierarchii NTP muszą zostać skonfigurowane zgodnie z dokumentacją w dokumentacji Konfigurowanie systemów dla wysokiej dokładności.
Łączne opóźnienie sieci jednokierunkowej między celem a źródłem nie może przekraczać 100 ms. Skumulowane opóźnienie sieci jest mierzone przez dodanie indywidualnych opóźnień w jedną stronę między parami węzłów klient-serwer NTP w hierarchii, zaczynając od celu i kończąc na źródle. Aby uzyskać więcej informacji, zapoznaj się z dokumentem synchronizacji czasu o wysokiej dokładności.
https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/configuring-systems-for-high-accuracy
źródło