У меня есть домен Active Directory с двумя DC. Первый DC в лесу / домене - Server 2012, второй - 2008 R2. Первый DC выполняет роль эмулятора PDC.
Время от времени я получаю предупреждение от Time-Service
источник, идентификатор события 50:
The time service detected a time difference of greater than %1 milliseconds for %2 seconds. The time difference might be caused by synchronization with low-accuracy time sources or by suboptimal network conditions. The time service is no longer synchronized and cannot provide the time to other clients or update the system clock. When a valid time stamp is received from a time service provider, the time service will correct itself.
Синхронизация времени в домене настроена со вторым DC для синхронизации с помощью /syncfromflags:DOMHIER
флаг. Первый DC настроен на синхронизацию времени с помощью /syncfromflags:MANUAL /reliable:YES
, из списка партнеров, состоящего из нескольких британских серверов уровня 2, таких как ntp2d.mcc.ac.uk
.
Я не понимаю, почему я получаю это предупреждение о событии. Это означает, что мой эмулятор PDC не может синхронизировать время с предположительно надежным внешним источником времени, и указывает разницу во времени> 5 секунд для 900 секунд. Стоит также упомянуть, что раньше я использовал британский пул с ntp.org, но я получал предупреждение гораздо чаще. После обновления до ряда серверов академического времени в Великобритании, он стал более надежным.
Может ли кто-нибудь с большим опытом пролить свет на это - возможно, это чисто временное явление? Следует ли игнорировать предупреждение? Моя конфигурация звучит правильно?
РЕДАКТИРОВАТЬ:
Я должен добавить, что контроллеры домена являются виртуальными и устанавливаются на двух отдельных физических хостах VMware ESXi / vSphere.
Я также могу подтвердить, что в соответствии с комментарием и рекомендациями MDMarra, VMware timesync отключен, поскольку: c:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe timesync status
возвращается Disabled
.
РЕДАКТИРОВАТЬ 2
Возникла какая-то странная новая проблема. Я заметил закономерность. Первоначально предупреждения о событии с идентификатором 50 будут появляться примерно в 12:30 каждый день. Это интересно, поскольку резервное копирование с помощью Veeam происходит в 12 часов дня.
Поскольку я внес изменения, обсуждаемые здесь, теперь я получаю идентификатор события 51 вместо 50. В новом предупреждении говорится, что:
The time sample received from peer server.ac.uk differs from the local time by -40 seconds
(Или примерно 40 секунд). Это происходило два дня подряд. Теперь я еще больше запутался. Очевидно, время никогда не обновляется, пока я не вмешаюсь вручную.
Проблема, похоже, связана с виртуализацией и veeam. Что-то может происходить, когда veeam выполняет резервное копирование PDCe. Какие-либо предложения?
ОБНОВЛЕНИЕ И РЕЗЮМЕ
Превосходный список ресурсов msemack ниже (принятый ответ) предоставил достаточно информации для правильной настройки службы времени в домене. Это должно быть первым портом захода для всех будущих людей, желающих проверить свою конфигурацию.
Последнюю проблему «40-секундного прыжка» я решил (предупреждений больше нет), настроив параметры синхронизации времени VMware, как указано в статье базы знаний veeam здесь: http://www.veeam.com/kb1202
В любом случае, если кто-либо из будущих читателей будет использовать ESXi, veeam или нет, ресурсы здесь являются отличным источником информации по теме синхронизации времени, а ответ msemack особенно неоценим.
Вот моя рекомендуемая конфигурация для синхронизации времени домена Windows, собранная из нескольких статей Microsoft TechNet и сообщений в блогах.
Если ваши серверы виртуализированы, не используйте любую из функций синхронизации времени инструментов VMware. Просто позвольте службе времени Windows (w32time) делать свою работу. VMware даже так говорит. Я предполагаю, что то же самое верно и для Hyper-V. Кроме того, если у вас есть обе инструменты виртуальной машины и Служба времени Windows пытается управлять системными часами, вы можете оказаться в ситуации «перетягивания каната», когда ваши часы будут постоянно прыгать и никогда не быть точными.
Эмулятор основного контроллера домена следует вручную настроить для синхронизации с несколькими внешними серверами NTP (четыре - хорошее число). Использование нескольких источников NTP обеспечивает избыточность и служит проверкой работоспособности в случае, если один сервер начинает отправлять неверные данные времени (это случилось раньше). Active Directory предполагает, что ваш PDCe является центральным авторитетным источником времени для вашей сети. Все остальное в вашем домене должно синхронизироваться с PDCe (включая другие контроллеры домена).
Я рекомендую, чтобы ваш PDCe был физическим сервером (если это возможно). Любой другой сервер может быть виртуальной машиной. Мне удобнее использовать PDCe как физический сервер по двум причинам:
3а. Физический сервер менее подвержен дрейфу времени. Дрейф времени ВМ это хорошо задокументированное явление. Виртуализированный сервер может видеть отклонение часов на несколько минут в день. Не лучший выбор для источника времени! (Обратите внимание, что даже на физическом сервере часы реального времени все равно будут дрейфовать примерно на 2 секунды в день без внешнего источника. Вот почему вам нужен NTP.)
3b. Я знаю, что дата и время физического сервера появятся правильно после холодного включения. Несколько лет назад у меня была ситуация, когда при полном отключении питания серверной комнаты виртуальные машины устанавливали время в формате UTC, а не в местном часовом поясе. Я думаю, они вытащили время с хоста ESX (который был в UTC) и не настроили часовой пояс должным образом. Это доставляло массу удовольствия, когда сервисы не запускались. Пришлось вручную исправить время и перезагрузить всех.
Если ваш PDCe в настоящее время является виртуальной машиной и у вас есть доступный физический контроллер домена, он относительно легко перенести роли.
Microsoft (и другие) рекомендуют использовать NTP-серверы Stratum 2 или Stratum 3 в качестве источника времени для вашего PDCe.
Хотя общедоступные серверы Stratum 1 существуют, их ограниченное количество, и они сильно перегружены. Использование серверов Stratum 1 в качестве источника времени, когда оно вам действительно не нужно, делает вас придурком. (Да, есть люди, которым действительно нужен Stratum 1. Вы, вероятно, не один из них. Если вы действительно хотите использовать источник Stratum 1, купите GPS-часы для своей локальной сети.)
Все ваши внешние источники NTP должны находиться в одном Stratum. Предположим, у вас есть один источник Stratum 2 и несколько источников Stratum 3. Служба времени Windows предпочтет источник Stratum 2. Ваш PDCe станет сервером Stratum 3. w32time проигнорирует серверы Stratum 3 (потому что они не лучше вашего PDCe). Windows не позволит вашему серверу перейти на более высокий / худший уровень без ручного вмешательства (например, перезапуска службы времени). Итак, если ваш источник Stratum 2 перейдет в автономный режим, у вас не будет запасного выхода.
Поскольку служба времени Windows требовательна к слою вашего источника времени, я не рекомендую использовать pool.ntp.org. (по крайней мере, для PDCe). Нет никакой гарантии относительно уровня сервера, который вы обслуживаете из пула.
Вместо этого я рекомендую вам выбрать четыре сервера Stratum 2 из список ntp.org. Попробуйте выбрать те, которые находятся физически близко к вам (задержка в сети сказывается на NTP). Убедитесь, что серверы все еще действительны и живы (этот список со временем меняется). Обратите внимание, что по умолчанию Microsoft time.windows.com печально известен своими проблемами. Я бы не стал доверять ему свой домен.
Если вы раньше играли со службой времени Windows или унаследовали эту сеть от кого-то другого, вероятно, будет хорошей идеей сбросить w32time до настроек по умолчанию, прежде чем вы начнете его заново настраивать. Выполните следующие команды на контроллерах домена, начиная с PDCe.
net stop w32time
w32tm /unregister <-- If you get an Access Denied message, reboot.
w32tm /register
net start w32time
Я рекомендую вам перезагрузить сервер 1-2 раза после выполнения этих команд и убедиться, что служба времени Windows присутствует, установлена в автоматический режим и запущена. Я встречал ситуации, когда команда / unregister не вступала в силу до следующей перезагрузки. Затем вас ждет сюрприз, когда вы перезагружаетесь после установки исправлений Windows, и служба w32time внезапно отсутствует!
Чтобы настроить службу времени Windows на вашем PDCe, я рекомендую вам создать объект групповой политики для PDCe, который использует фильтр WMI для DomainRole = 5, и поместить сюда все настройки вашего клиента NTP. В противном случае вы можете использовать команду w32tm или настроить реестр вручную. См. Здесь примеры всех трех методов.
Настройте PDCe для использования NTP вместо NT5DS (введите = NTP в конфигурации службы времени Windows). В противном случае PDCe попытается синхронизироваться с самим собой, что будет работать не очень хорошо.
Введите список серверов NTP в конфигурации службы времени Windows (в GPO, реестре или w32tm), убедитесь, что вы вводите список серверов в этом формате: server1.whatever.com,0x9 server2.otherplace.com,0x9 server3.another.com,0x9
. Флаги 0x9 в конце каждого сервера указывают на использование интервала опроса, указанного в SpecialPollInterval (0x1), и на то, что синхронизация времени выполняется только для клиента, а не для двусторонней синхронизации (0x8).
При настройке клиента PDCe NTP проверьте значение SpecialPollInterval. Если ваш PDCe - физический ящик, установите его на 3600 секунд (один раз в час). Если ваш PDCe представляет собой виртуальную машину, выберите что-нибудь более агрессивное, например каждые 15 минут, для борьбы с дрейфом времени виртуальной машины.
В общем, возиться с AnnounceFlags. Значение по умолчанию 10 подходит для всех контроллеров домена (PDCe или других). При необходимости он будет автоматически рекламироваться как источник времени.
Я рекомендую, чтобы все контроллеры домена (PDCe и другие) имели включенный сервер NTP. Я бы создал объект групповой политики для контроллеров домена и включил его там. Если вы не хотите использовать групповую политику, вы можете сделать это в реестре по адресу HKLM \ SYSTEM \ CCS \ Services \ W32Time \ TimeProviders \ NtpServer \ Enabled = 0x1.
Убедитесь, что для MaxPosPhaseCorrection и MaxNegPhaseCorrection установлено разумное значение на всех контроллерах домена! Это защитит ваш домен на тот случай, если один из ваших внешних источников NTP отключится и передаст крайне неточную временную метку (это случилось). Если у вас Win2008 или более поздняя версия, эти ограничения должны быть установлены на 48 часов по умолчанию, но Win2003 имеет неограниченное значение. Вы можете установить их в ранее упомянутом объекте групповой политики контроллеров домена или сделать это напрямую в реестре (HKLM \ SYSTEM \ CCS \ Services \ W32Time \ Config).
Для контроллеров домена я также рекомендую установить EventLogFlags = 0x3. Это даст вам дополнительную информацию о ходе синхронизации с течением времени. Обратите внимание, что необходимо установить два значения EventLogFlags. Один находится в HKLM \ SYSTEM \ CCS \ Services \ W32Time \ Config (для всех контроллеров домена). Другой находится в HKLM \ SYSTEM \ CCS \ Services \ W32Time \ TimeProviders \ NtpClient (актуально только для PDCe). Оба могут управляться из групповой политики. Я установил для них оба значения 0x3. (Обратите внимание, что я обнаружил некоторые расхождения в описании этого параметра между TechNet и описанием групповой политики.)
За исключением одного PDCe, все остальные машины Windows в домене должны быть настроены на использование иерархии доменов NT5DS для синхронизации времени. Сюда входят все остальные контроллеры домена, любые другие серверы и рабочие станции. NT5DS используется по умолчанию для компьютеров, присоединенных к домену, поэтому вам не придется с ним связываться.
Обратите внимание, что единственные параметры, связанные со временем, которые у меня есть в моем домене, - это (1) объект групповой политики клиента NTP PDCe с фильтром WMI и (2) объект групповой политики контроллеров домена, который включает сервер NTP, устанавливает максимальные значения коррекции фазы и флаги событий. Все параметры времени групповой политики можно найти в разделе Конфигурация компьютера \ Административные шаблоны \ Система \ Служба времени Windows. У меня нет явной конфигурации в реестре или с помощью команды w32tm. Я рекомендую использовать групповую политику для этого, чтобы она выходила за рамки реального сервера. Если вы в будущем добавите новый контроллер домена или замените PDCe, все будет «просто работать». В противном случае не забудьте вручную настроить новый сервер.
Некоторые дополнительные примечания к приведенной выше конфигурации:
Пока это является возможно обойти доменную иерархию и явно настроить синхронизацию ваших клиентов с определенным сервером, мне с этим не повезло. Я рекомендую вам просто оставить все, кроме PDCe, в NT5DS и позволить службе времени работать так, как задумано Microsoft.
Помните, что служба времени Windows предназначена для небольших периодических корректировок системных часов. Предполагается, что часы вашего сервера были установлены правильно с самого начала, и w32time сохранит их таким же образом. Если ваш сервер слишком сильно рассинхронизируется с вашими внешними источниками NTP, он в значительной степени «сдастся». Если вы следовали приведенным выше рекомендациям, вам следует внимательно следить за своими внешними источниками времени. Однако, если у вас есть среда виртуальной машины с действительно плохой дрейф времени (перегруженный хост виртуальной машины, постоянные снимки), вы все равно можете рассинхронизироваться. Если это так, есть несколько настроек для «обнаружения всплесков», которые вы можете настроить. Хотя, вероятно, это повязка на другую проблему в вашем окружении. Убедитесь, что вы выполнили все вышеперечисленные рекомендации, прежде чем углубляться в настройки!
Применение изменений конфигурации и проверка всего:
Если вы использовали групповую политику для настройки службы времени, изменение должно вскоре распространиться на все ваши контроллеры домена. Вы можете запустить gpupdate /force
команда на каждом контроллере домена (начиная с PDCe) делает это немедленно.
Если вы решили не использовать групповую политику и вручную настроить службу времени с помощью w32tm или путем редактирования реестра, убедитесь, что вы запустили w32tm /config /update
на каждом затронутом сервере, а затем перезапустите службу (начиная с PDCe). В противном случае ваши настройки не вступят в силу!
Далее, беги w32tm /resync /rediscover
на PDCe. Подождите несколько минут, а затем проверьте, нет ли проблем в средстве просмотра событий. Могут быть некоторые сообщения об ошибках / предупреждениях от отмены регистрации / регистрации службы времени, но после этого все должно быть золотым. Вы должны увидеть сообщения о получении действительных данных времени от ваших серверов NTP. Убедившись, что PDCe в порядке, перейдите на другие контроллеры домена и выполните те же команды.
После того, как служба времени синхронизируется на всех контроллерах домена, вы можете выполнить w32tm /monitor
. Убедитесь, что контроллеры домена указаны в списке, а их RefID и Stratum выглядят правильно. Если вы используете серверы Stratum 2, вашим PDCe должен быть Stratum 3. Вы также можете запустить w32tm /query /status /verbose
(Только Win2008 или новее) и посмотрите время последнего обновления. Убедитесь, что он обновляется должным образом.
Когда контроллеры домена будут в порядке, запустите w32tm /resync /rediscover
на некоторых рабочих станциях и рядовых серверах. Проверьте программу просмотра событий на наличие ошибок. Если вы испортили службу времени на других рабочих станциях, возможно, вам придется запустить на них команды отмены регистрации / регистрации w32tm.
Следовать за:
Для полноты картины вы должны убедиться, что все ваши клиенты NTP, отличные от Windows (маршрутизаторы, коммутаторы, серверы печати и т. Д.), Направлены на контроллеры домена в качестве источника времени. Я рекомендую настроить DNS-запись CNAME для ntp.yourdomain.com, которая указывает на yourdomain.com. Таким образом, вам не нужно явно указывать имена контроллеров домена или IP-адреса на всех ваших устройствах, что поможет при добавлении / отключении серверов в будущем. Ваши клиенты NTP, отличные от Windows, будут использовать любой контроллер домена, включенный в циклический DNS. (Обратите внимание, это работает только в том случае, если вы включили сервер NTP на всех контроллерах домена.)
Кроме того, на вашем сервере (ах) DHCP убедитесь, что параметр области 42 настроен так, чтобы указывать на контроллеры домена. Любое устройство с настройкой DHCP, которое поддерживает параметр 42, будет автоматически синхронизировать время с контроллерами домена.
Источники моей информации:
Возможно, вы захотите увидеть, что отображается в журнале отладки w32tm при возникновении события.
Чтобы включить ведение журнала отладки:
w32tm /debug /enable /file:C:\Windows\Debug\w32tm.log /size:50000000 /entries:0-300
Больше информации:
http://blogs.msdn.com/b/w32time/archive/2008/02/28/configuring-the-time-service-enables-the-debug-log.aspx
Что касается правильной конфигурации, если ваш DC не рекламируется как сервер времени в течение длительных периодов времени, это может стать проблемой. Вы можете проверить, рекламирует ли ваш DC, используя команду:
nltest /dsgetdc:domain.com
У него должен быть флаг TIMESERV.
Вы можете просмотреть подробную информацию о службе времени с помощью команды:
w32tm /query /status /verbose
Пример вывода:
Leap Indicator: 0(no warning)
Stratum: 2 (secondary reference - syncd by (S)NTP)
Precision: -6 (15.625ms per tick)
Root Delay: 0.0312500s
Root Dispersion: 0.0314141s
ReferenceId: 0x81060F1E (source IP: 129.6.15.30)
Last Successful Sync Time: 3/25/2014 11:55:30 AM
Source: time-c.nist.gov
Poll Interval: 7 (128s)
Phase Offset: 0.0000667s
ClockRate: 0.0156001s
State Machine: 2 (Sync)
Time Source Flags: 0 (None)
Server Role: 64 (Time Service)
Last Sync Error: 0 (The command completed successfully.)
Time since Last Good Sync Time: 97.2535519s
Конечный автомат должен иметь значение «Синхронизация», а роль сервера - «Служба времени». Если Source не является внешним NTP-сервером в списке одноранговых узлов, это может стать проблемой. Известными ошибочными записями источника, на которые следует обратить внимание, будут «Часы системы, работающие бесплатно» или «Часы локальной CMOS».