Синхронизация часов с использованием ptp4l

Вопрос или проблема

Я пытаюсь синхронизировать часы с помощью 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 являются правильными и могуществующими инструментами для решения этой проблемы.

  1. Запуск ptp4l

    sudo ptp4l -i <interface> -2
    • -i <interface>: указывает интерфейс сети, который будет использоваться для синхронизации времени.
    • -2: этот параметр указывает на использование протокола IEEE 802.3 для PTP, который необходим для работы с Ethernet-сетями.
  2. Запуск 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.

Оцените материал
Добавить комментарий

Капча загружается...