Вопрос или проблема
Я пытаюсь синхронизировать часы с помощью ptp4l
и phc2sys
.
Я следовал этим инструкциям.
К сожалению, я вижу скачки времени:
На 5 из 6 серверов часы скачут на 2 часа. На изображении время меняется с 9:52 до 11:46.
Проблема возникала из-за различных временных меток на процессорных часах и NIC.
NIC был на два часа впереди и вызывал изменение времени для всех других систем.
Эти две команды сработали для меня:
sudo ptp4l -i <интерфейс> -2
sudo phc2sys -a -rr
-2 IEEE 802.3
-i интерфейс
-a включить автоконфигурацию
-rr синхронизировать системные (реальные) часы и также считать их источником времени
Это может не помочь с вашими конкретными проблемами, но это некоторые вещи, которые я выяснил, когда настраивал это на своей системе.
Мы можем запускать ptp4l на нескольких интерфейсах. Используйте
phc2sys -a -r // Автоматически синхронизировать время в соответствии с текущим состоянием ptp4l, синхронизировать системные часы с удаленным мастером.
// используйте это, если у вас есть главный мастер
Если вы хотите один экземпляр ptp4l на нескольких интерфейсах (указывая -i
дважды), они оба должны использовать либо программное, либо аппаратное временное штампование, мы не можем смешивать.
phc2sys -a -r
помог моему 3-му компьютеру, cpu2 в этом случае (Главный мастер -> CPU1 -> CPU2) не отставать на 36 секунд от своего мастера.
ptp4l должен работать как на мастере, так и на слейве, чтобы часы синхронизировались.
Ответ или решение
Синхронизация времени с использованием ptp4l и phc2sys: Подробное руководство
Синхронизация времени в распределенной системе является критически важной задачей, особенно в инфраструктурах, где точность временных меток необходима для корректного функционирования приложений. В данном случае мы рассмотрим, как эффективно использовать инструменты ptp4l
и phc2sys
для настройки синхронизации времени с помощью протокола Precision Time Protocol (PTP).
Проблема с рассинхронизацией времени
Согласно вашему описанию, вы столкнулись с проблемами скачков времени в 5 из 6 серверов, когда часы на них показывали на 2 часа больше, чем ожидалось. Изучив данную проблему, можно отметить, что причиной является расхождение временных меток между системным тактовым генератором (CPU clock) и сетевым интерфейсным контроллером (NIC), что привело к неправильной синхронизации.
Решение с помощью ptp4l и phc2sys
Используемые вами команды для запуска ptp4l
и phc2sys
являются правильными и могуществующими инструментами для решения этой проблемы.
-
Запуск ptp4l
sudo ptp4l -i <interface> -2
-i <interface>
: указывает интерфейс сети, который будет использоваться для синхронизации времени.-2
: этот параметр указывает на использование протокола IEEE 802.3 для PTP, который необходим для работы с Ethernet-сетями.
-
Запуск phc2sys
sudo phc2sys -a -rr
-a
: включает автоматическую конфигурацию.-rr
: синхронизирует системные часы с реальным временем и рассматривает их в качестве источника времени.
Дополнительные особенности и рекомендации
-
Работа на нескольких интерфейсах: Возможность запуска
ptp4l
на нескольких интерфейсах требует, чтобы все используемые интерфейсы поддерживали либо программную, либо аппаратную метку времени. Использование смешанной конфигурации не допускается.ptp4l -i <interface1> -i <interface2> -2
-
Использование phc2sys для работы с главными часами: Если у вас есть главный сервер времени (grandmaster), используйте команду
phc2sys -a -r
для автоматической синхронизации системного времени с времением главного времени.sudo phc2sys -a -r
-
Убедитесь, что ptp4l запущен на обоих серверах: Для успешной синхронизации необходимо, чтобы
ptp4l
работал как на главном, так и на подчиненном сервере.
Заключение
Эти методы и подходы к использованию ptp4l
и phc2sys
помогут вам эффективно решить проблему с синхронизацией времени в вашей сети. Убедитесь, что вы проверяете состояние временных меток на каждом сервере и настраиваете все компоненты системы в соответствии с рекомендациями. В результате этого вы сможете добиться точной синхронизации времени среди всех серверов, что увеличит надежность и точность работы ваших приложений.
Если у вас будут дополнительные вопросы или возникнут проблемы, обратитесь за помощью к команде поддержки или к более подробной документации по PTP.