Jak zsynchronizować czas na maszynach wirtualnych ESXi Windows w ciągu jednej sekundy?

12

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.

  1. Czy możemy prosić o „w ciągu sekundy”, czy też musimy całkowicie porzucić Kwarc?
  2. Jeśli tak, jakie zmiany są zalecane w naszej konfiguracji?
Leotsarev
źródło
11
Synchronizacja z jedną sekundą jest niczym , nawet na serwerach wirtualnych (które same w sobie mają słabą stabilność czasu). Trzy minuty?! Śmiać się Nie można w ten sposób uruchomić sieci.
Wyścigi lekkości na orbicie

Odpowiedzi:

20

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.

Nasi administratorzy używający Windows NTP do synchronizacji czasu z kontrolerem domeny. Synchronizacja maszyn wirtualnych z hostem ESXI jest wyłączona.

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ą.

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”.

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.

Czy możemy prosić o „w ciągu sekundy”, czy też musimy całkowicie porzucić Kwarc?

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

Przepisy rządowe, takie jak: dokładność 50 ms dla FINRA w USA 1 ms ESMA (MiFID II) w UE.

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.

TomTom
źródło
FWIW, zgodność z MiFID II w branży finansowej w [Wielkiej Brytanii] jest szokująco słaba (banki wolą raczej płacić marne grzywny niż zawracać sobie głowę tym całym hoo-har), ale technicznie masz rację.
Wyścigi lekkości na orbicie
Nie chodzi o zgodność, chodzi o to, by być zgodnym. MS rozwiązało to dawno temu. W związku z tym „dokładność 3 minut”, którą OP mówi o żartach obszarowych.
TomTom,
Zgadzam się; to było tylko na bok.
Wyścigi lekkości na orbicie
2
Jestem z tobą, że NTP jest więcej niż wystarczająco szybki, ale VMware nie zaleca korzystania z usług integracji do synchronizacji czasu, w większości (choć nie wszystkich) przypadkach zwykły NTP wykonuje lepszą i szybszą pracę.
HoD
Ponieważ zależy Ci na względnym czasie między serwerami, możesz użyć NTP do synchronizacji ich z przełącznikami sieciowymi, które z kolei synchronizują się z twoim ISP - nie wymaga dodatkowego sprzętu.
grahamj42
6

Czy możemy prosić o „w ciągu sekundy”, czy też musimy całkowicie porzucić Kwarc?

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.

Jeśli tak, jakie zmiany są zalecane w naszej konfiguracji?

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.

Siekacz 3
źródło
4

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

Greg Askew
źródło
Właściwie korzystamy z systemu Windows 2012R2. Wydaje się, że jest to przyczyną problemu (wraz z brakiem synchronizacji z hostem ESXI)
Leotsarev
1
@Leotsarev: jeśli są członkami domeny, nie powinni synchronizować się z hostem VM.
Greg Askew,