본문 바로가기
+ OS/Linux & Unix

[Linux] Chrony??? NTP vs Chrony

by :: Teacher :: 2020. 6. 18.
728x90
반응형

얼마전 테스트 서버에 CentOS 8 을 설치만 해놓고, 생각하고 있는 부분을 진행하지 못하고 한동한 계속 방치하고 있었다. 

그러다가 간단히 확인할 부분이 있어서 테스트 서버에 접속 하고 확인할 부분을 다 확인하고선 우연히 date 명령어를 쳤는데 현재 시간과 다르게 설정이 되어있음을 확인하였다. 

아무 생각 없음 ntpd 구동 여부를 확인하였는데 ntp가 구동을 하지 않고 있어 당황을 하였고 그러면서 서버 시간 동기화 관련하여 확인하게 되었다.

먼저 RHEL / CentOS 8 부터는 ntpd 가 지원이 종료 되고 시간 동기화 관련하여 chronyd 가 기본적으로 사용 된다.

$ ps -ef | grep chronyd
chrony    1640     1  0  5월31 ?      00:00:00 /usr/sbin/chronyd


$ systemctl status chronyd
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-05-31 17:26:40 KST; 2 weeks 4 days ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
 Main PID: 1640 (chronyd)
    Tasks: 1 (limit: 26213)
   Memory: 2.5M
   CGroup: /system.slice/chronyd.service
           └─1640 /usr/sbin/chronyd

다만, RHEL / CentOS 7에서는 ntpd 혹은 chronyd를 선택적으로 사용이 가능하다.

그렇다면 왜 ntpd에서 chronyd로 변경 하였는지 Redhat 문서 참고 하여 알아보도록 하자.

Redhat Costomer Portal에서는 관련 내용이 많이 존재하며, 자세한 내용은 아래 참고 URL로 들어가 보도록 하자.

문서들을 참고 하여 보면, 결국 ntpd보다 chronyd가 장점이 더 많음에 따라서 RHEL / CentOS 8부터는 기본으로 사용하는것으로 알 수 있다.
앞으로도 Ubuntu(우분투)등 Linux(리눅스) 계열에서는 점점 chronyd의 장점 때문에 기본으로 사용하는것으로 변경이 될 것 같다.  

1. ntpd vs Chronyd 차이점

  • chronyd는 시간 참조에 대한 액세스가 간헐적 인 환경에서 잘 작동하는 반면 ntpd는 잘 작동하려면 시간 참조에 대한 정기적인 폴링이 필요
  • chronyd는 네트워크 혼잡시에도 성능이 우수
  • chronyd는 일반적으로 클럭을 더 빠르고 더 정확하게 동기화 할 수 있음
  • chronyd는 예를 들어 수정 발진기의 온도 변화로 인한 클럭 속도의 급격한 변화에 신속하게 적응하는 반면, ntpd는 다시 안정화하기 위해서는 오랜 시간이 필요할 수 있음
  • chronyd는 Linux 시스템의 클럭 속도를 더 넓은 범위에서 조정할 수 있으므로 클럭이 깨지거나 불안정한 시스템에서도 작동 할 수 있음.(예를 들면 가상머신(VM))
  • chronyd는 크기가 작을수록 메모리를 적게 사용하며 필요할 때만 CPU를 깨우므로 절전에 더 좋음

Basic(기본)

 

chrony

ntp

Supported systems
(지원되는 시스템)

Linux, FreeBSD, NetBSD, Solaris, macOS

Linux, FreeBSD, NetBSD, OpenBSD, Solaris, macOS, Windows, …

License
(라이선스)

GPLv2

MIT + BSD

Programming language
(개발 언어)

C

C

Size of stripped daemon binary in default configuration on Linux x86-64
(Linux x86-64의 기본 구성에서 제거 된 데몬 바이너리 크기)

210 KB

840 KB

Time sources(시간 소스)

 

chrony

ntp

NTP

Yes

Yes

Reference clocks
(기준 클럭)

Yes

Yes

Manual input
(수동 입력)

Yes

No

Source tracking(소스 추척)

 

chrony

ntp

Fixed sample filtering
(고정 샘플 필터링)

Yes

Yes

Adaptive sample filtering
(적응형 샘플 필터링)

Yes

No

Sample weighting
(샘플 가중치)

Yes

No

Frequency tracking
(주파수 추적)

Yes

No

Restore state from file
(파일에서 상태 복원)

Yes

No

Source selection(소스 선택)

 

chrony

ntp

Nonrandom selection
(비 랜덤 선택)

Yes

Yes

Falseticker detection

Yes

Yes

Clustering
(클러스터링)

No

Yes

Offset combining
(오프셋 결합)

Yes

Yes

Frequency combining
(주파수 결합)

Yes

N/A

Minimum number of sources
(최소 소스 수)

1 (configurable)

1 (configurable)

Clock discipline(시계 규율)

 

chrony

ntp

Independent phase and frequency control
(독립적 인 위상 및 주파수 제어)

Yes

No

Allowed random update interval (e.g. intermittent connection)
(허용 된 임의 업데이트 간격(예: 간헐적인 연결))

Yes

No

Step threshold
(단걔 임계 수치)

Infinity (configurable)

0.128 s (configurable)

Limited number of steps
(제한된 수치)

Yes (configurable)

No

Panic threshold

Infinity (configurable)

1000 s (configurable)

Maximum slew rate

System specific (Linux: 100000 ppm, FreeBSD, NetBSD, macOS: 5000 ppm, Solaris: 32500 ppm) (configurable)

500 ppm

Restore frequency from file
(파일에서 주파수 복원)

Yes

Yes

Limited wakeups (power saving)
(제한된 전원관리(절전))

Yes

No

Temperature compensation
(온도 보상)

Yes

No

NTP modes(NTP 모드)

 

chrony

ntp

Server (mode 4)
(서버(모드4))

Yes

Yes

Client (mode 3)
(클라이언트(모드 3))

Yes

Yes

Persistent symmetric
(지속적인 대칭)

Yes

Yes

Ephemeral symmetric
(임시 대칭)

No

Yes

Broadcast server
(브로캐스트 서버)

Yes

Yes

Broadcast client
(브로캐스트 클라이언트)

No

Yes

Multicast server
(멀티캐스트 서버)

No

Yes

Multicast client
(멀티캐스트 클라이언트)

No

Yes

Manycast server
(매니캐스트 서버)

No

Yes

Manycast client
(매니캐스트 클라이언트)

No

Yes

Interleaved server

Yes

No

Interleaved client

Yes

?

Interleaved symmetric

Yes

Yes

Interleaved broadcast

No

Yes

NTP client(NTP 클라이언트)

 

chrony

ntp

Multiple servers per name (pool)
(이름 (풀) 당 여러 서버)

Yes

Yes

Fixed delay-based sample filtering
(
고정 지연 기반 샘플 필터)

Yes

Yes

Adaptive delay-based sample filtering
(
적응 지연 기반 샘플 필터링)

Yes

No

Estimation of asymmetric jitter
(
비대칭 지터 추정)

Yes

No

KoD RATE handling
(KoD RATE 핸들링)

Yes

Yes

Ready for next NTP era (year 2036)
(
다음 NTP 시대에 대비 (2036 ))

Yes

Yes

Extra timestamp validation
(추가 타임 스탬프 유효성 검사)

No

No

Configurable port number
(구성 가능한 포트 번호)

Yes

No

NTP server(NTP Server)

 

chrony

ntp

Protocol version
(
프로토콜 버전)

NTPv4

NTPv4

Root dispersion/delay accumulation
(Root 분산 / 지연 축적)

Yes

Yes

Adaptive dispersion rate
(적응 분산)

Yes

No

Restricted access
(접근 제한)

Yes

Yes

Response rate limiting
(응답 속도 제한)

Yes

Yes

Local reference
(지역 참조)

Yes

Yes

Orphan mode
(
독립  모드)

Yes

Yes

Served time not fixed to local time
(
현지 시간으로 고정되지 않은 시간 제공)

Yes

No

Time smoothing
(시간 다듬기)

Yes

N/A

Configurable port number
(구성 가능한 포트 번호)

Yes

No

NTP authentication(NTP 인증)

 

chrony

ntp

Symmetric key
(
대칭 키)

Yes

Yes

Autokey (insecure)
(
오토 (insecure))

No

Yes

Network Time Security
(
네트워크 시간 보안)

N/A

N/A

MS-SNTP via Samba
(
삼바를 통한 MS-SNTP)

Yes

Yes

MAC hash functions
(
MAC 해시 함수)

MD5, SHA-1, SHA-2, …

MD5, SHA-1, SHA-2, AES-CMAC, …

NTP pool use(NTP Pool 사용)

 

chrony

ntp

Number of used servers
(
사용 서버 수)

By DNS, max 4 (configurable)

10 (configurable)

Replace unreachable
(
연결할 수없는 교체)

Yes

Yes

Replace falsetickers
(
잘못된 티커 교체)

Yes

Yes

NTP poll control(NTP 폴링 제어)

 

chrony

ntp

Polling interval
(폴링 간격)

64-1024 s (configurable)

64-1024 s (configurable)

Minimum configurable polling interval
(
구성 가능한 최소 폴링 간격)

1/64 s

8 s

Randomization
(무작위)

Yes

Yes

Burst
(
파열)

Yes

Yes

Interval independent from other sources
(다른 소스와 독립적 간격)

Yes

Yes

Aware of jitter
(
지터 인식)

Yes

Yes

User-controlled polling
(사용자 제어 폴링)

Yes

No

NTP timestamping(NTP 타임 스탬프)

 

chrony

ntp

Kernel RX timestamping
(
커널 RX 타임 스탬프)

Yes

Yes

Kernel TX timestamping
(
커널 TX 타임 스탬프)

Yes (Linux)

No

Hardware RX timestamping
(
하드웨어 RX 타임 스탬프)

Yes (Linux)

No

Hardware TX timestamping
(
하드웨어 TX 타임 스탬프)

 

Yes (Linux)

No

Reference clocks(기준 클럭)

 

chrony

ntp

System drivers
(
시스템 드라이버)

PPS, PTP clock (Linux)

PPS

Interfaces for 3rd party drivers
(
타사 드라이버 인터페이스)

SHM, SOCK

SHM

Number of HW-specific drivers
(
HW 특정 드라이버 수)

0

> 30

Sample filtering
(
샘플 필터링)

 

Yes

Yes

Real-time clock (RTC)(실시간 클럭)

 

chrony

ntp

Time initialization from RTC
(
RTC에서 시간 초기화)

Yes (Linux)

No

RTC drift tracking
(
RTC 드리프트 추적)

Yes (Linux)

No

RTC trimming
(
RTC 트리밍)

Yes (Linux)

No

Kernel RTC synchronization
(
커널 RTC 동기화)

Yes (Linux, macOS)

Yes (Linux)

Restore time from file w/o RTC
(
RTC없이 파일에서 시간 복원)

Yes

No

Leap seconds(윤초)

 

chrony

ntp

Clock correction modes
(
클럭 수정 모드)

system, step, slew, ignore

system, step, ignore

Majority of sources required to agree on leap
(
도약에 동의하는 필요한 많은 출처)

Yes

Yes

Additional leap second source
(
추가 윤초 소스)

system tzdata

leapfile

Server leap smear
(
서버 도약 번짐)

Yes (quadratic)

Yes (cosine)

Accepted on
(허용)

Jun 30 / Dec 31

any day

Applied on
(적용)

Jun 30 / Dec 31

last day of any month

Announced on
(표현)

Jun 30 / Dec 31

last day of any month

Runtime management(런타임 관리)

 

chrony

ntp

Local monitoring
(
로컬 모니터링)

Yes

Yes

Local configuration
(
로컬 구성)

Yes

Yes

Remote monitoring
(
원격 모니터링)

Yes

Yes

Remote configuration
(
원격 구성)

No (chrony >= 2.2)

Yes

Restricted access
(
접근 제한)

Yes

Yes

Security(보안)

 

chrony

ntp

Root privileges dropping (in all processes)
(
루트 권한 삭제 (모든 프로세스에서))

Yes (Linux)

Yes (Linux, NetBSD, Solaris)

Privilege separation
(
권한 분리)

Yes (FreeBSD, NetBSD, macOS, Solaris)

No

System call filter (seccomp, pledge)
(
시스템 호출 필터 (seccomp, 서약))

Yes (Linux)

Yes (Linux)

Random NTP client source port
(
임의의 NTP 클라이언트 소스 포트)

Yes

No

Fully random transmit timestamp in client packets
(
클라이언트 패킷의 완전 임의 전송 타임 스탬프)

Yes

No

Sub-second randomization of polling interval
(
폴링 간격의 1 미만의 임의 설정)

Yes

No

Connected NTP client sockets
(
연결된 NTP 클라이언트 소켓)

Yes

No

NTP server port disabled by default
(
NTP 서버 포트는 기본적으로 비활성)

Yes

No

Remote management disabled by default
(
원격 관리는 기본적으로 비활성화)

N/A

No

Remote management port separate from NTP
(
NTP 분리 원격 관리 포트)

Yes

No

No traffic amplification in management protocol
(
관리 프로토콜에서 트래픽 증폭 없음)

Yes

No

Non-blocking response rate limiting
(
차단 응답 속도 제한)

Yes

No

 

참고 URL : 

728x90
반응형

댓글


loading