15.2. Chrony 사용


다음 섹션에서는 chronyd 를 설치, 시작 및 중지하는 방법과 chrony 가 동기화되었는지 확인하는 방법을 설명합니다. 섹션에서는 시스템 클락을 수동으로 조정하는 방법도 설명합니다.

15.2.1. Chrony 관리

다음 절차에서는 chronyd 의 설치, 시작, 중지 및 상태를 확인하는 방법을 설명합니다.

절차

  1. chrony 제품군은 기본적으로 Red Hat Enterprise Linux에 설치됩니다. 이를 확인하려면 root 로 다음 명령을 실행하십시오.

    # yum install chrony

    chrony 데몬의 기본 위치는 /usr/sbin/chronyd 입니다. 명령행 유틸리티는 /usr/bin/chronyc 에 설치됩니다.

  2. chronyd 의 상태를 확인하려면 다음 명령을 실행합니다.

    $  systemctl status chronyd
    chronyd.service - NTP client/server
       Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
       Active: active (running) since Wed 2013-06-12 22:23:16 CEST; 11h ago
  3. chronyd 를 시작하려면 root 로 다음 명령을 실행합니다.

    # systemctl start chronyd

    시스템 시작 시 chronyd 가 자동으로 시작되도록 하려면 root 로 다음 명령을 실행하십시오.

    # systemctl enable chronyd
  4. chronyd 를 중지하려면 root 로 다음 명령을 실행하십시오.

    # systemctl stop chronyd

    시스템 시작 시 chronyd 가 자동으로 시작되지 않도록 하려면 root 로 다음 명령을 실행하십시오.

    # systemctl disable chronyd

15.2.2. chrony가 동기화되었는지 확인

다음 절차에서는 chrony추적, 소스 sourcestats 명령을 사용하여 동기화되었는지 확인하는 방법을 설명합니다.

절차

  1. Chrony 추적 을 확인하려면 다음 명령을 실행합니다.

    $  chronyc tracking
    Reference ID    : CB00710F (ntp-server.example.net)
    Stratum         : 3
    Ref time (UTC)  : Fri Jan 27 09:49:17 2017
    System time     :  0.000006523 seconds slow of NTP time
    Last offset     : -0.000006747 seconds
    RMS offset      : 0.000035822 seconds
    Frequency       : 3.225 ppm slow
    Residual freq   : 0.000 ppm
    Skew            : 0.129 ppm
    Root delay      : 0.013639022 seconds
    Root dispersion : 0.001100737 seconds
    Update interval : 64.2 seconds
    Leap status     : Normal
  2. source 명령은 chronyd 가 액세스 중인 현재 시간 소스에 대한 정보를 표시합니다. chrony 소스를 확인하려면 다음 명령을 실행합니다.

    $ chronyc sources
    	210 Number of sources = 3
    MS Name/IP address         Stratum Poll Reach LastRx Last sample
    ===============================================================================
    #* GPS0                          0   4   377    11   -479ns[ -621ns] /-  134ns
    ^? a.b.c                         2   6   377    23   -923us[ -924us] +/-   43ms
    ^ d.e.f                         1   6   377    21  -2629us[-2619us] +/-   86ms

    선택 사항 -v 인수를 지정하여 자세한 정보를 출력할 수 있습니다. 이 경우 열의 의미를 알리는 추가 캡션 행이 표시됩니다.

  3. sourcestats 명령은 chronyd 에서 현재 검사하는 각 소스에 대한 드리프트 속도 및 오프셋 추정 프로세스에 대한 정보를 표시합니다. chrony 소스 통계를 확인하려면 다음 명령을 실행합니다.

    $  chronyc sourcestats
    210 Number of sources = 1
    Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
    ===============================================================================
    abc.def.ghi                11   5   46m     -0.001      0.045      1us    25us

    자세한 정보를 포함하여 선택적 인수 -v 를 지정할 수 있습니다. 이 경우 열의 의미를 알리는 추가 캡션 행이 표시됩니다.

추가 리소스

  • 시스템의 chronyc(1) 도움말 페이지

15.2.3. 시스템 시계 수동 조정

다음 절차에서는 시스템 클락을 수동으로 조정하는 방법을 설명합니다.

절차

  1. 시스템 시계를 즉시 전환하려면 줄 바꿈으로 진행 중인 조정을 무시하고 root 로 다음 명령을 실행합니다.

    # chronyc makestep

rtcfile 지시문을 사용하는 경우 실시간 클록을 수동으로 조정해서는 안 됩니다. 임의 조정으로 인해실시간 클록 드리프트의 속도를 측정해야 하는 Chrony의 필요성에 방해가 됩니다.

15.2.4. chrony 디스패치 스크립트 비활성화

chrony 디스패치 스크립트는 NTP 서버의 온라인 및 오프라인 상태를 관리합니다. 시스템 관리자는 디스패치 스크립트를 비활성화하여 chronyd 가 서버를 지속적으로 폴링하는 상태를 유지할 수 있습니다.

시스템에서 NetworkManager를 활성화하여 네트워킹 구성을 관리하는 경우 NetworkManager는 인터페이스 재구성, 중지 또는 시작 작업 중에 chrony 디스패처 스크립트를 실행합니다. 그러나 NetworkManager 이외의 특정 인터페이스 또는 경로를 구성하는 경우 다음과 같은 상황이 발생할 수 있습니다.

  1. NTP 서버에 대한 경로가 없는 경우 디스패치 스크립트가 실행되어 NTP 서버가 오프라인 상태로 전환될 수 있습니다.
  2. 나중에 경로를 설정하면 스크립트는 기본적으로 다시 실행되지 않으며 NTP 서버는 오프라인 상태로 유지됩니다.

chronyd 가 별도의 관리 인터페이스가 있는 NTP 서버와 동기화할 수 있도록 하려면 디스패치 스크립트를 비활성화합니다.

사전 요구 사항

  • 시스템에 NetworkManager를 설치하고 활성화합니다.
  • 루트 액세스

절차

  1. chrony 디스패치 스크립트를 비활성화하려면 다음과 같이 /etc/NetworkManager/dispatcher.d/20-chrony- online 파일을 편집합니다.

    #!/bin/sh
    exit 0
    참고

    chrony 패키지를 업그레이드하거나 다시 설치할 때 패키지된 디스패치 스크립트가 수정된 디스패치 스크립트가 교체됩니다.

15.2.5. 격리된 네트워크에서 시스템의 chrony 설정

인터넷에 연결되지 않은 네트워크의 경우 하나의 컴퓨터가 기본 타이머로 선택됩니다. 다른 컴퓨터는 서버 또는 클라이언트의 직접 클라이언트입니다. 서버에서 드리프트 파일을 시스템 클럭의 평균 드리프트 비율로 수동으로 설정해야 합니다. 서버가 재부팅되면 주변 시스템에서 시간을 확보하고 평균을 계산하여 시스템 시계를 설정합니다. 그 후 드리프트 파일을 기반으로 조정 적용을 재개합니다. settime 명령을 사용하면 드리프트 파일이 자동으로 업데이트됩니다.

다음 절차에서는 격리된 네트워크에서 시스템의 chrony 를 설정하는 방법을 설명합니다.

절차

  1. 시스템에서 root 로 실행되는 텍스트 편집기를 사용하여 /etc/chrony.conf 를 다음과 같이 편집합니다.

    driftfile /var/lib/chrony/drift
    commandkey 1
    keyfile /etc/chrony.keys
    initstepslew 10 client1 client3 client6
    local stratum 8
    manual
    allow 192.0.2.0/24

    여기서 192.0.2.0/24 는 클라이언트가 연결할 수 있는 네트워크 또는 서브넷 주소입니다. 자세한 내용은 시스템의 chrony.conf(7) 매뉴얼 페이지를 참조하십시오.

  2. root 로 실행되는 텍스트 편집기를 사용하여 서버의 직접 클라이언트가 되도록 선택된 시스템에서 다음과 같이 /etc/chrony.conf 를 편집합니다.

    server ntp1.example.net
    driftfile /var/lib/chrony/drift
    logdir /var/log/chrony
    log measurements statistics tracking
    keyfile /etc/chrony.keys
    commandkey 24
    local stratum 10
    initstepslew 20 ntp1.example.net
    allow 192.0.2.123

    여기서 192.0.2.123 은 서버의 주소이며 ntp1.example.net 은 서버의 호스트 이름입니다. 이 구성을 사용하는 클라이언트는 재시작 시 서버와 다시 동기화됩니다.

서버의 직접 클라이언트가 아니어야 하는 클라이언트 시스템에서 /etc/chrony.conf 파일은 localallow 지시문을 생략해야 한다는 점을 제외하고 동일해야 합니다.

격리된 네트워크에서 로컬 참조 모드를 활성화하는 로컬 지시문을 사용할 수도 있습니다. 이를 통해 chronydNTP 서버로 작동하면 동기화되지 않았거나 클록의 마지막 업데이트가 오래 전에 발생한 경우에도 chronyd가 실시간으로 동기화될 수 있습니다.

네트워크에 있는 여러 서버가 동일한 로컬 구성을 사용하도록 허용하고 둘 이상의 서버를 폴링하는 클라이언트를 혼동하지 않고 서로 동기화할 수 있도록 하려면 로컬 지시문의 고립 옵션을 사용하여 고립 모드를 활성화합니다. 각 서버는 로컬로 다른 모든 서버를 폴링하도록 구성해야 합니다 . 이렇게 하면 최소 참조 ID가 있는 서버만 로컬 참조가 활성 상태이며 다른 서버가 동기화됩니다. 서버가 실패하면 다른 서버가 인계됩니다.

15.2.6. 원격 모니터링 액세스 구성

Chronyc 는 다음 두 가지 방법으로 chronyd 에 액세스할 수 있습니다.

  • 인터넷 프로토콜, IPv4 또는 IPv6.
  • Unix 도메인 소켓 - root 또는 chrony 사용자가 로컬로 액세스할 수 있습니다.

기본적으로 chronyc 는 Unix 도메인 소켓에 연결됩니다. 기본 경로는 /var/run/chrony/chronyd.sock 입니다. 이 연결이 실패하고 예를 들어 루트가 아닌 사용자가 chronyc 를 실행 중인 경우 chronyc 는 127.0.0.1에 연결을 시도한 다음 ::1에 연결을 시도합니다.

네트워크에서 chronyd 동작에 영향을 미치지 않는 다음 모니터링 명령만 허용합니다.

  • 활동
  • 수동 목록
  • rtcdata
  • 완화 중
  • 소스
  • Sourcestats
  • 추적
  • waitsync

chronyd가 이러한 명령을 허용하는 호스트 집합은 chronyd 의 구성 파일에서 cmdallow 지시문 또는 chronyccmdallow 명령으로 구성할 수 있습니다. 기본적으로 명령은 localhost(127.0.0.1 또는 ::1)에서만 허용됩니다.

기타 모든 명령은 Unix 도메인 소켓을 통해서만 허용됩니다. 네트워크를 통해 보내면 chronyd 는 localhost에서 온 경우에도 Not authorized 오류로 응답합니다.

다음 절차에서는 chronyc 를 사용하여 원격으로 chronyd에 액세스하는 방법을 설명합니다.

절차

  1. 다음을 /etc/chrony.conf 파일에 추가하여 IPv4 및 IPv6 주소 모두에서 액세스를 허용합니다.

    bindcmdaddress 0.0.0.0

    또는

    bindcmdaddress ::
  2. cmdallow 지시문을 사용하여 원격 IP 주소, 네트워크 또는 서브넷의 명령을 허용합니다.

    /etc/chrony.conf 파일에 다음 내용을 추가합니다.

    cmdallow 192.168.1.0/24
  3. 방화벽에서 포트 323을 열어 원격 시스템에서 연결합니다.

    # firewall-cmd --zone=public --add-port=323/udp

    선택적으로 --permanent 옵션을 사용하여 포트 323을 영구적으로 열 수 있습니다.

    # firewall-cmd --permanent --zone=public --add-port=323/udp
  4. 323 포트를 영구적으로 여는 경우 방화벽 구성을 다시 로드합니다.

    # firewall-cmd --reload

추가 리소스

  • 시스템의 chrony.conf(5) 도움말 페이지

15.2.7. RHEL 시스템 역할을 사용하여 시간 동기화 관리

time sync 역할을 사용하여 여러 대상 시스템에서 시간 동기화를 관리할 수 있습니다. timesync 역할은 시스템 클럭을 동기화하도록 NTP 또는 PTP 클라이언트로 작동하도록 NTP 또는 PTP 구현을 설치하고 구성합니다.

또한 timesync 역할을 사용하면 ntp 또는 chrony를 사용하여 NTP 프로토콜을 구현하는지 여부에 관계없이 RHEL 6에서 시작하는 모든 Red Hat Enterprise Linux 버전에서 동일한 플레이북을 사용할 수 있기 때문에 쉽게 chrony 로 마이그레이션 할 수 있습니다.

주의

timesync 역할은 관리 호스트에서 제공된 또는 탐지된 공급자 서비스의 구성을 대체합니다. 이전 설정은 역할 변수에 지정되지 않았더라도 손실됩니다. timesync_ntp_provider 변수가 정의되지 않은 경우 유일한 보존 설정은 프로바이더 선택 사항입니다.

다음 예제에서는 하나의 서버 풀만 있는 상황에서 timesync 역할을 적용하는 방법을 보여줍니다.

예 15.1. 단일 서버 풀에 대한 timesync 역할을 적용하는 예제 플레이북

---
- hosts: timesync-test
  vars:
    timesync_ntp_servers:
      - hostname: 2.rhel.pool.ntp.org
        pool: yes
        iburst: yes
  roles:
    - rhel-system-roles.timesync

timesync 역할 변수에 대한 자세한 참조는 rhel-system-roles 패키지를 설치하고 /usr/share/doc/rhel-system-roles/timesync 디렉터리의 README.md 또는 README.html 파일을 참조하십시오.

15.2.8. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.