Synchronizacja czasu funkcji Hyper-V dla kontrolera domeny VM

13

Mamy 2 fizyczne serwery Hyper-V obsługujące między nimi 8 maszyn wirtualnych, każdy serwer fizyczny ma kontroler domeny działający na maszynie wirtualnej, a wszystkie serwery mają wersję 2008R2

VM PDC jest ustawiony na NTP i synchronizuje się z time.microsoft.com, a reszta, w tym serwery fizyczne, to NT5DS. Ta główna VM PDC zdecydowanie posiada FSMO i jest aktywna UDP 123

kiedy uruchamiam w32tm / query / status

Dostaję dostawcę synchronizacji czasu VM IC na obu DC VM, wiem, że oznacza to synchronizację z hostem.

Kiedy uruchamiam w32tm / resync / rediscover

Otrzymałem komunikat „Nie zsynchronizowałem ponownie, ponieważ brak danych o czasie”, a identyfikator zdarzenia 134 w dziennikach ma jakieś pomysły na ten temat?

Przejrzałem również dzienniki i dostałem zdarzenie 144 i 12

Śledziłem szczegóły MS KB dotyczące konfigurowania zewnętrznego źródła czasu i wprowadziłem wszystkie zmiany w rejestrze, ale myślę, że DNS mnie dopadnie?

Ale kiedy zmieniam czas na jednej z fizycznych maszyn, to od tego czasu się ustawia. Może jeśli wyrejestruję je wszystkie i zarejestruję się, zaktualizuję i zsynchronizuję, ale obawiam się, że stworzę większy problem!

Próbuję pozostawić synchronizację czasu między maszyną wirtualną a hostem Hyper-V, ponieważ uważam, że jest to najlepsza praktyka z tego, co przeczytałem.

Dzięki za pomoc



Nareszcie mam to działa! Ma to na celu pomóc ludziom, którzy zaczynają od początku ustalania czasu domen.

W tym przykładzie wszystkie serwery, główny kontroler domeny (PDC), inne kontrolery domeny (DC) i inne serwery działają pod kontrolą systemu Windows 2008 R2 i są zwirtualizowane za pomocą funkcji Hyper-V.

Najpierw przeczytasz, aby wyłączyć „usługę integracji synchronizacji czasu” na dowolnej maszynie wirtualnej w Hyper-V, ale zamiast tego powinieneś manipulować usługą czasu systemu Windows (usługa w32tm) z poziomu wirtualnego kontrolera domeny, nie powinieneś tego wyłączać, ponieważ gdy VM uruchomi się ponownie, spowoduje to problemy, należy to zrobić przy pomocy w32tm. http://blogs.msdn.com/b/virtual_pc_guy/archive/2010/11/19/time-synchronization-in-hyper-v.aspx

Musisz dowiedzieć się, jaki serwer to PDC i czy masz uruchomione role FSMO. Uruchom to: netdom query fsmo Rezultatem powinien być Twój PDC i tutaj dokonujesz większości swoich zmian.

Upewnij się, że w zaporze znajduje się reguła „Outbound” na UDP123, a programem jest% SystemRoot% \ System32 \ w32tm.exe, po prostu przejdź do katalogu Windows i znajdź plik exe na czas

To tam idą zmiany rejestru! HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Upewnij się, że PDC w konfiguracji w powyższym adresie rejestru jest ustawiony na NTP dla „typu”, a wszystkie inne serwery mają NT5DS, co oznacza, że ​​NTP jest tatusiem! Najlepszą praktyką jest tutaj, aby PDC wyglądało zewnętrznie na czas i wszystko było z nim zsynchronizowane.

Uruchom to na wszystkich kontrolerach domeny (w tym PDC), częściowo wyłączy czas systemu Windows, aby nie patrzył na maszynę hosta na czas, ważne, ponieważ jesteśmy zwirtualizowani. reg dodaj HKLM \ SYSTEM \ CurrentControlSet \ Services \ W32Time \ TimeProviders \ VMICTimeProvider / v Enabled / t reg_dword / d 0

Możesz przejść do strony ntp.org http://support.ntp.org/bin/view/Servers/WebHome, aby znaleźć najbliższy serwer do synchronizacji czasu zewnętrznego. Nie polecam używać Microsoft, ponieważ są one intensywnie używane i mogą się z tego powodu wymknąć.

Poniższe polecenie spowoduje, że PDC będzie wyglądać zewnętrznie, ale także sprawdzi ustawienia rejestru zdefiniowane tutaj, aby zsynchronizować zewnętrznie (musisz to zrobić oba) http://support.microsoft.com/kb/816042

Uruchom to na PDC w32tm / config /manualpeerlist: Połączenia0.pool.ntp.org,0x1 ”/ syncfromflags: MANUAL / niezawodny: tak w32tm / config / update w32tm / resync w32tm / resync / rediscover

Uruchom te 2 polecenia w dowolnym momencie na dowolnym serwerze, aby zobaczyć ich źródło, a gdy zostaną one ostatnio zaktualizowane, zostaną one użyte w tym ćwiczeniu, aby upewnić się, że Twój PDC i inne serwery otrzymują czas z właściwego miejsca w32tm / query / status w32tm / query /źródło

Następnie uruchom to na wszystkich kontrolerach domeny oprócz PDC, sprawi, że będą patrzeć na PDC przez czas i ponownie zsynchronizować z nim w32tm / config / syncfromflags: DOMHIER / update net stop w32time net start w32time w32tm / resync / force

Problemy: Po uruchomieniu zapytania Status lub Źródło daj im minutę lub 2 po zmianach, nie powinieneś patrzeć na Lokalny Zegar CMOS i nie powinieneś również używać dostawcy synchronizacji czasu vm ic jako źródła.

Jeśli się powiedzie, PDC powinien odczytać ustawioną zewnętrzną stronę, a pozostałe serwery powinny powiedzieć PDC jako źródło

Mam nadzieję, że to pomaga ludziom powodzenia!

Karl
źródło
Cześć, odpowiedzi trafiają do sekcji Odpowiedzi, a nie do edycji pytania.
Michael Hampton
2
Nie działa to całkowicie w nowszej wersji Hyper-V 2012R2 z najnowszymi aktualizacjami integracji, ponieważ czas natychmiast wraca do hosta bazowego po ustawieniu przez serwer NTP. Nawet po chwili siedzenia utknął w niewłaściwym momencie. Odkryłem, że przez modyfikację klucza rejestru TimeProviders / VMICTimeProvider / InputProvider = 0, serwer tak szybko przestał przyciągać się do bazowego hosta.
Brain2000,
1
Sformatowałem twoją odpowiedź poniżej dla lepszej czytelności. Może chcę usunąć odpowiedź z pytania i tylko odniesienie do odpowiedzi.
Tilo,

Odpowiedzi:

12

@PSaul jest w większości poprawny. Nie chcesz używać time.microsoftani time.windows.comjako źródła czasu dla kontrolera domeny, który pełni rolę emulatora PDC FSMO. Domyślnie są one często używane, często powolne z powodu braku lokalizacji, a czasem niedostępne. Wybierz pulę NTP, która jest bliżej Ciebie.

Nie należy jednak wyłączać integracji synchronizacji czasu funkcji Hyper-V. Jest to wymagane w przypadku niektórych funkcji, takich jak resetowanie czasu po ponownym uruchomieniu lub po powrocie maszyny wirtualnej ze stanu zapisanego. To, co chcesz zrobić, to poinformować zwirtualizowanych kontrolerów domeny, aby zignorowali host Hyper-V jako źródło czasu.

Można to zrobić w następujący sposób:

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

To polecenie usuwa źródło czasu Hyper-V jako potencjalne źródło W32Time.

w32tm /config /syncfromflags:DOMHIER /update

Teraz powiedz W32Time, aby szukał najlepszego możliwego źródła czasu w hierarchii domen. Jeśli chcesz użyć zewnętrznego źródła dla obu kontrolerów domeny, możesz to skonfigurować, aby to zrobić, używając komend @PSaul opublikowanych tutaj lub stąd . Ogólnie rzecz biorąc, kontroler domeny pełniący rolę emulatora PDC powinien zsynchronizować się ze źródłem zewnętrznym, a pozostałe kontrolery domeny powinny zsynchronizować się z nim.

net stop w32time & net start w32time
w32tm /resync /force

Uruchom ponownie usługę czasu i wymuś ponowną synchronizację.

w32tm /query /source

Na koniec powinieneś potwierdzić, że kontrolery domeny mają właściwe źródło czasu.

Zobacz doskonały wpis na blogu Bena Armstronga, aby uzyskać więcej informacji.


źródło
Dzięki za informacje, przeczytałem bloga Bena Armstronga i chciałem trzymać się najlepszych praktyk. Na maszynie wirtualnej, która dzisiaj jest PDC, uruchomiłem: w32tm / config /manualpeerlist: komunikacji0.pool.ntp.org,0x1 ”/ syncfromflags: MANUAL / niezawodny: tak w32tm / config / update w32tm / resync w32tm / resync / rediscover
Karl
W rejestrze 0.pool.ntp.org 0x1 jest teraz wartością dla serwera NTP. Mogę pingować 0.pool.ntp.org z PDC, ale nadal nie mogę pingować time.windows.com, co moim zdaniem było dziwne! Czas jest ustawiony przez jednego z hostów, jestem tego pewien, ale jest ustawiony na NT5DS i to / zapytanie / status mówi mi, że używa PDC, czy muszę uruchomić kilka poleceń na hoście, aby ponownie zsynchronizować do VM PDC? Widziałem polecenie reg add i zakładam, że należy to zrobić na wszystkich kontrolerach domeny? Zastanawiam się, czy w32tm / config / syncfromflags: DOMHIER / update również trzeba uruchomić na PDC, czy tylko na wszystkich innych DC?
Karl
Myślę, że brakuje końca pierwszego komentarza po uruchomieniu poniższych poleceń na PDC. Wszystkie powiedziały, że zakończyły się sukcesem, ale kiedy uruchomiłem w32tm / query / status, nadal miałem źródło „dostawcy synchronizacji czasu vm ic” w32tm / config /manualpeerlist:działu0.pool.ntp.org,0x1 ”/ syncfromflags: MANUAL / niezawodny: tak w32tm / config / update w32tm / resync w32tm / resync / rediscover and start and stop
Karl
Dziękuję za wszystkie porady, które myślę, że w końcu je mam, ale odejdę na kilka dni, aby potwierdzić, a następnie zaktualizuję to, co zrobiłem, aby to naprawić
Karl
5

Nareszcie mam to działa! Ma to na celu pomóc ludziom, którzy zaczynają od początku ustalania czasu domen.

W tym przykładzie wszystkie serwery, główny kontroler domeny (PDC), inne kontrolery domeny (DC) i inne serwery działają pod kontrolą systemu Windows 2008 R2 i są wirtualizowane za pomocą funkcji Hyper-V.

Najpierw przeczytasz, aby wyłączyć „usługę integracji synchronizacji czasu” na dowolnej maszynie wirtualnej w Hyper-V, ale zamiast tego powinieneś manipulować usługą czasu systemu Windows (usługa w32tm) z poziomu wirtualnego kontrolera domeny, nie powinieneś tego wyłączać, ponieważ gdy VM uruchomi się ponownie, spowoduje to problemy, należy to zrobić przy pomocy w32tm. Informacje MSDN

Musisz dowiedzieć się, jaki serwer to PDC i czy masz uruchomione role FSMO. Uruchom to: netdom query fsmo Rezultatem powinien być Twój PDC i tutaj dokonujesz większości swoich zmian.

Upewnij się, że w zaporze znajduje się reguła „Outbound” na UDP123, a programem jest % SystemRoot% \ System32 \ w32tm.exe, po prostu przejdź do katalogu Windows i znajdź plik exe na czas

To tam idą zmiany rejestru!

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ W32Time

Upewnij się, że PDC w konfiguracji w powyższym adresie rejestru jest ustawiony na NTP dla „ Typu ”, a wszystkie inne serwery mają NT5DS, co oznacza, że ​​NTP jest tatusiem! Najlepszą praktyką jest tutaj, aby PDC wyglądało zewnętrznie na czas i wszystko było z nim zsynchronizowane.

Uruchom to na wszystkich kontrolerach domeny (w tym PDC), częściowo wyłączy czas systemu Windows, aby nie patrzył na maszynę hosta na czas, ważne, ponieważ jesteśmy wirtualni.

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

Możesz przejść do witryny ntp.org, aby znaleźć najbliższy serwer, aby zsynchronizować swój czas zewnętrzny. Nie polecam używać Microsoft, ponieważ są one intensywnie używane i mogą się z tego powodu wymknąć.

Poniższe polecenie spowoduje, że PDC będzie wyglądać na zewnątrz, ale także sprawdzi ustawienia rejestru zdefiniowane tutaj, aby zsynchronizować zewnętrznie (należy to zrobić obie) MS KB 816042

Uruchom to na PDC

w32tm /config /manualpeerlist:"0.pool.ntp.org,0x1" /syncfromflags:MANUAL /reliable:yes   
w32tm /config /update   
w32tm /resync 
w32tm /resync /rediscover

Uruchom te 2 polecenia w dowolnym momencie na dowolnym serwerze, aby zobaczyć ich źródło, a kiedy zostaną one ostatnio zaktualizowane, będą one używane w tym ćwiczeniu, aby upewnić się, że Twój PDC i inne serwery otrzymują czas z właściwego miejsca

w32tm /query /status  
w32tm /query /source

Następnie uruchom to na wszystkich kontrolerach domeny oprócz PDC , sprawi, że będą patrzeć na PDC na czas i zsynchronizować się z nim

w32tm /config /syncfromflags:DOMHIER /update 
net stop w32time 
net start w32time 
w32tm /resync /force

Problemy : Po uruchomieniu zapytania Status lub Źródło daj im minutę lub 2 po zmianach, nie powinieneś patrzeć na Lokalny Zegar CMOS i nie powinieneś również używać Dostawcy Synchronizacji Czasu VM IC jako źródła.

Jeśli się powiedzie, PDC powinien odczytać ustawioną zewnętrzną stronę, a pozostałe serwery powinny powiedzieć PDC jako źródło

Mam nadzieję, że to pomaga ludziom powodzenia!

Karl
źródło
Dwie dodatkowe rzeczy: Użyj obiektu GPO do skonfigurowania czasu NTP na PDCE - oznacza to, że zostanie on skonfigurowany automatycznie, jeśli rola PDCE się zmieni: www.sysadminlab.net/windows/configuring-ntp-on-windows-using-gpo.
Trix,
Aby ustawić flagi w usłudze NTP, rozważ użycie 0x8 - oznacza to, że jest to niezawodne źródło czasu, które synchronizuje się gdzieś z zegarem sprzętowym. Weź również pod uwagę nieużywanie 0x1 dla „specjalnego przedziału czasu”. O ile nie musisz synchronizować zegara w określonych odstępach czasu, w dzisiejszych czasach jest to trochę niepotrzebne. Jeśli kontroler domeny nie otrzyma czasu bezpośrednio po uruchomieniu (np. Sieć nie jest gotowa), czeka cały ten przedział czasu. Lub jeśli używasz 0x1 / 0x9, ustaw inne źródło z 0xa - rezerwowe źródło, zostanie natychmiast zapytane, jeśli podstawowe źródła nie odpowiedzą.
Trix,
1

Sugerowałbym:

  • NIE włącza synchronizacji czasu między hostem HyperV a maszynami wirtualnymi gościa - szczególnie dla kontrolerów domeny. Posiadacz roli PDC powinien aktualizować za pośrednictwem NTP z kilku dobrych źródeł czasu. Zegar hosta może również aktualizować się przez NTP, ale chcesz, aby PDC było „głównym” dla innych kontrolerów domeny i serwerów członkowskich. (przynajmniej z VMwre, zakładam to samo z HyperV)
  • Upewnij się, że port UDP 123 jest otwarty dla ruchu wychodzącego.
  • Że możesz rozwiązać FQDN serwerów NTP (czy możesz pingować je?)
  • Wszystkie pozostałe kontrolery domeny i maszyny członkowskie powinny aktualizować się automatycznie.

Nie używaj TYLKO time.windows.com lub time.microsoft.com, użyj jednego z serwerów * .pool.ntp.org. Używam north-america.pool.ntp.org lub ca.north-america.pool.ntp.org - im bliżej, tym lepiej. Możesz sprawdzić: http://www.pool.ntp.org/, aby znaleźć najbliższe serwery.

Następnie uruchom coś takiego:

w32tm /config /manualpeerlist:"north-america.pool.ntp.org 0.pool.ntp.org" /syncfromflags:MANUAL /update /reliable:YES

(Dodaj dowolne serwery NTP. W Kanadzie używam również time.nrc.ca)

Śledzony przez:

net stop w32time
net start w32time

Możesz sprawdzić rówieśników za pomocą:

w32tm /query /peers

Sprawdź dziennik systemu, aby sprawdzić, czy się aktualizuje. Powinieneś być w stanie ustawić zegar z wyprzedzeniem 1min, zrestartować usługę w32time, a ona zaktualizuje się w ciągu 30 sekund. [pochylenie czasu poniżej 5 minut jest dopuszczalne w domenie AD]

PSaul
źródło
0

Zgodnie z zaleceniami innych zdecydowanie nie należy synchronizować czasu sprzętowego między hostem a gościem. Synchronizuj także z zewnętrznymi serwerami NTP tylko z kontrolera domeny, który pełni rolę emulatora głównego kontrolera domeny PDC. Jeśli kontroler domeny roli emulatora PDC głównego lasu nie synchronizuje się, kontrolery domeny, które na nim polegają, będą mieć problemy.

Możesz także wypróbować następującą poprawkę:

Synchronizacja czasu nie jest wykonywana, mimo że usługa W32Time została pomyślnie uruchomiona w systemie Windows Server 2008 lub Windows Server 2008 R2

http://support.microsoft.com/kb/2493006

Bardziej pomocne może być użycie flagi / verbose dla w32tm:

w32tm /query /status /verbose /computer:dcname

Dodatkowe informacje:

https://technet.microsoft.com/en-us/library/virtual_active_directory_domain_container_virrollation_hyperv%28WS.10%29.aspx

„W przypadku maszyn wirtualnych skonfigurowanych jako kontrolery domeny zaleca się wyłączenie synchronizacji czasu między systemem hosta a systemem operacyjnym gościa działającym jako kontroler domeny. Dzięki temu kontroler domeny gościa może synchronizować czas z hierarchii domen”.

„Aby wyłączyć dostawcę synchronizacji czasu Hyper-V, zamknij maszynę wirtualną i wyczyść pole wyboru Synchronizacja czasu w obszarze Integration Services.”

Greg Askew
źródło