얼마전 테스트 서버에 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 |
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) |
Yes |
Yes |
Client (mode 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 |
Yes |
Yes |
Ready for next NTP era (year 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 |
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) |
No |
Yes |
Network Time Security |
N/A |
N/A |
MS-SNTP via Samba |
Yes |
Yes |
MAC hash functions |
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 |
Yes |
Yes |
Kernel TX timestamping |
Yes (Linux) |
No |
Hardware RX timestamping |
Yes (Linux) |
No |
Hardware TX timestamping
|
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 |
0 |
> 30 |
Sample filtering
|
Yes |
Yes |
Real-time clock (RTC)(실시간 클럭)
|
chrony |
ntp |
Time initialization from RTC |
Yes (Linux) |
No |
RTC drift tracking |
Yes (Linux) |
No |
RTC trimming |
Yes (Linux) |
No |
Kernel RTC synchronization |
Yes (Linux, macOS) |
Yes (Linux) |
Restore time from file w/o 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) |
Yes (Linux) |
Yes (Linux) |
Random NTP client source port |
Yes |
No |
Fully random transmit timestamp in client packets |
Yes |
No |
Sub-second randomization of polling interval |
Yes |
No |
Connected NTP client sockets |
Yes |
No |
NTP server port disabled by default |
Yes |
No |
Remote management disabled by default |
N/A |
No |
Remote management port separate from NTP |
Yes |
No |
No traffic amplification in management protocol |
Yes |
No |
Non-blocking response rate limiting |
Yes |
No |
참고 URL :
'+ OS > Linux & Unix' 카테고리의 다른 글
[Linux] CentOS Hostname(호스트명) 변경 하기 (0) | 2020.06.28 |
---|---|
[Linux] AdoptOpenJDK Install (0) | 2020.06.19 |
[Linux] Linux(리눅스)에서 CPU 정보 확인 방법 (0) | 2020.06.07 |
[Linux] 일반 계정에서 SUDO 사용 및 SUDOERS 설정 하기 (0) | 2020.05.17 |
[Linux] Python(파이썬) pyenv virtualenv Install(설치하기) (0) | 2020.05.11 |
댓글