14.5. HW 타임스탬프링을 사용하는 Chrony


일부 NIC(네트워크 인터페이스 컨트롤러)의 하드웨어 타임스탬프는 들어오고 나가는 패킷의 정확한 타임스탬프를 제공합니다. NTP 타임스탬프는 일반적으로 시스템 클록을 사용하여 커널 및 chronyd 에 의해 생성됩니다. 그러나 HW 타임스탬프가 활성화되면 NIC는 자체 클록을 사용하여 패킷이 링크 계층 또는 물리적 계층을 입력하거나 종료할 때 타임스탬프를 생성합니다. NTP 와 함께 사용할 경우 하드웨어 타임스탬프를 사용하면 동기화의 정확성을 크게 향상시킬 수 있습니다. 최적의 정확성을 위해 NTP 서버와 NTP 클라이언트 모두 하드웨어 타임스탬프를 사용해야 합니다. 이상적인 상황에서 마이크로초 미만의 정확성이 가능할 수 있습니다.

하드웨어 타임스탬프를 사용하는 시간 동기화를 위한 또 다른 프로토콜은 PTP 입니다.

NTP 와 달리PTP 는 네트워크 스위치 및 라우터의 지원을 사용합니다. 동기화의 최상의 정확성을 달성하려면 PTP 가 지원되는 스위치 및 라우터가 있는 네트워크에서 PTP 를 사용하고 이러한 스위치 및 라우터가 없는 네트워크에서 NTP 를 선호합니다.

14.5.1. 하드웨어 타임스탬프 지원 확인

인터페이스에서 NTP 를 사용한 하드웨어 타임스탬프를 지원하는지 확인하려면 ethtool -T 명령을 사용합니다. ethtool 이 SOF_TIMESTAMPING_TX_ HARDWARE 및 SOF_TIMESTAMPING_TX_QUAWARE 기능과 HWTSTAMPMP_FILTER_ ALL 필터 모드를 나열하는 경우 인터페이스를 NTP 로 하드웨어 타임스탬프에 사용할 수 있습니다.

절차

  • 장치의 타임스탬프 기능 및 관련 PTP 하드웨어 클록을 표시합니다.
# ethtool -T enp1s0

14.5.2. 하드웨어 타임스탬프 활성화

/etc/chrony.conf 파일의 hwtimestamp 지시문을 사용하여 하나 이상의 인터페이스에서 하드웨어 타임스탬프를 활성화할 수 있습니다. 지시문은 단일 인터페이스를 지정하거나 와일드카드 문자를 사용하여 이를 지원하는 모든 인터페이스에서 하드웨어 타임스탬프를 활성화할 수 있습니다.

절차

  1. /etc/chrony.conf 파일을 편집하고 다음과 같이 변경합니다.

    1. 하드웨어 타임스탬프를 지원하는 인터페이스에 대한 hwtimestamp 설정을 추가합니다. 예를 들면 다음과 같습니다.

      hwtimestamp enp1s0
      hwtimestamp eno*

      ptp4l 과 같은 다른 애플리케이션이 없는 경우 * 와일드카드를 사용할 수 있습니다.

    2. 서버 설정에 minpollmaxpoll 옵션을 추가하여 짧은 클라이언트 폴링 간격을 구성합니다. 예를 들면 다음과 같습니다.

      server ntp.example.comlocal minpoll 0 maxpoll 0

      하드웨어 타임스탬프의 경우 시스템 클럭의 오프셋을 최소화하려면 기본 범위(641024초)보다 짧은 폴링 간격을 구성해야 합니다.

    3. xleave 옵션을 서버 설정에 추가하여 NTP 인터리브 모드를 활성화합니다.

      server ntp.example.comlocal minpoll 0 maxpoll 0 xleave

      이 설정을 사용하면 chrony가 패킷을 보낸 후에만 하드웨어 전송 타임스탬프를 가져옵니다. 이 동작은 서버가 응답하는 패킷에 타임스탬프를 저장하지 못하도록 합니다. xleave 옵션을 사용하면 chrony가 전송 후 생성된 전송 타임스탬프를 수신할 수 있습니다.

    4. 선택 사항: 서버에 대한 클라이언트 액세스 로깅에 할당된 최대 메모리 크기를 늘립니다. 예를 들면 다음과 같습니다.

      clientloglimit 100000000

      기본 서버 구성을 사용하면 몇 수천 개의 클라이언트가 인터리브 모드를 동시에 사용할 수 있습니다. clientloglimit 설정의 값을 늘리면 많은 클라이언트에 대해 서버를 구성할 수 있습니다.

  2. chronyd 서비스를 다시 시작합니다.

    # systemctrl restart chronyd

검증

  1. 선택 사항: /var/log/messages 로그 파일에서 하드웨어 시간 샘플링이 활성화되었는지 확인합니다.

    chronyd[4081]: Enabled HW timestamping on enp1s0
    chronyd[4081]: Enabled HW timestamping on eno1
  2. chronyd가 NTP 클라이언트 또는 피어로 구성된 경우 전송 및 수신 타임스탬프 모드 및 임시 모드를 표시합니다.

    # chronyc ntpdata
    
    Output:
    
    [literal,subs="+quotes,verbatim,normal"]
    
    
    Remote address  : 203.0.113.15 (CB00710F)
    Remote port     : 123
    Local address   : 203.0.113.74 (CB00714A)
    Leap status     : Normal
    Version         : 4
    Mode            : Server
    Stratum         : 1
    Poll interval   : 0 (1 seconds)
    Precision       : -24 (0.000000060 seconds)
    Root delay      : 0.000015 seconds
    Root dispersion : 0.000015 seconds
    Reference ID    : 47505300 (GPS)
    Reference time  : Wed May 03 13:47:45 2017
    Offset          : -0.000000134 seconds
    Peer delay      : 0.000005396 seconds
    Peer dispersion : 0.000002329 seconds
    Response time   : 0.000152073 seconds
    Jitter asymmetry: +0.00
    NTP tests       : 111 111 1111
    Interleaved     : Yes
    Authenticated   : No
    TX timestamping : Hardware
    RX timestamping : Hardware
    Total TX        : 27
    Total RX        : 27
    Total valid RX  : 27
  3. NTP 측정의 안정성을 보고합니다.

    # chronyc sourcestats
    
    Output:
    
    [literal,subs="+quotes,verbatim,normal"]
    ....
    
    210 Number of sources = 1
    Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
    ntp.local                  12   7    11     +0.000      0.019     +0ns    49ns
    ....

이 안정성은 Std Dev 열에 보고됩니다. 하드웨어 타임스탬프가 활성화된 경우 NTP 측정의 안정성은 일반 부하에서 수십 또는 수백 나노초이어야 합니다.

14.5.3. PTP-NTP 브리지 구성

PTP(Precision Time Protocol) 기본 timeserver를 PTP를 지원하는 스위치 또는 라우터가 없는 네트워크에서 사용할 수 있는 경우 컴퓨터는 PTP 클라이언트 및 stratum-1 NTP 서버로만 작동할 수 있습니다. 이러한 컴퓨터에는 두 개 이상의 네트워크 인터페이스가 있어야 하며 기본 시간 서버에 가 있거나 직접 연결할 수 있어야 합니다. 이렇게 하면 네트워크에서 매우 정확한 동기화가 가능합니다.

절차

  1. 하나의 인터페이스를 사용하여 PTP 를 사용하여 시스템 시계를 동기화하도록 linuxptp 패키지에서 ptp4lphc2sys 프로그램을 구성합니다.
  1. 다른 인터페이스를 사용하여 시스템 시간을 제공하도록 chronyd 를 구성합니다.

    bindaddress 203.0.113.74
    hwtimestamp enp1s0
    local stratum 1
  2. chronyd 서비스를 다시 시작합니다.

    # systemctrl restart chronyd
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.