오퍼링 > 소프트웨어 테크놀로지 서비스 > 오픈소스 SW > OS > 자료실

오픈소스 SW 자료실 - OS

오픈소스 OS 관련 기술서비스 정보 및 자료를 제공합니다.

서버 시간 동기화 방법

2021.02.24

Q1. 서버의 시간 동기화를 위해서는 어떤 서비스를 사용하나요?


1. chronyd (RHEL7 권장)


2. ntpd


 

Q2. chronyd와 ntpd의 차이는 무엇인가요?


1. ntpd는 다양한 하드웨어 참조 클럭을 위한 많은 수의 드라이버가 포함되어 있으나, chronyd는 SHM 또는 SOCK 인터페이스를 통해 시간을 제공하기 위해 다른 프로그램(gpsd or ntp-refclock)을 필요로 합니다.


2. chronyd는 더 큰 범위의 클럭 속도 조정을 제공하며, 갑작스러운 클럭의 변화에 빠르게 적응하는 반면, ntpd는 다시 안정화 되는 데 오랜 시간이 필요할 수 있습니다.


3. chronyd는 더 적은 메모리를 사용하며, 필요한 경우에만 CPU를 사용하므로 절전에 더 효율적입니다.


 

Q3. chronyd를 권장하는 이유는 무엇인가요?


1. Autokey 프로토콜로 패킷 인증을 수행하여야 하는 시스템은 chronyd가 이 프로토콜을 지원하지 않기 때문에 ntpd를 사용하여야 합니다.


2. 그러나, Autokey 프로토콜에는 심각한 보안 문제가 있으므로 이 프로토콜을 사용하지 않아야 하며, Autokey 프로토콜 대신 대칭 키 인증을 사용하여야 합니다.


3. Chronyd는 SHA256 및 SHA512와 같은 강력한 HASH 기능을 지원하는 반면 ntpd는 MD5 및 SHA1 사용으로 보안에 취약한 단점이 있습니다.


 

Q4. 설치 및 서비스 사용 여부는 어떻게 확인하나요?


1. 패키지 확인


- # rpm -qa | egrep 'chrony|ntp'


패키지 확인


패키지 확인


 

2. 서비스 사용 여부 확인


2.1 chronyd


- # systemctl status chronyd


chronyd


 

2.2 ntpd


- # systemctl status ntpd


systemctl status ntpd


 

Q5. 만약 설치가 안 되어 있다면 어떻게 설치하나요?


1. chronyd


- # yum install -y chrony


 

2. ntpd


- # yum install -y ntp


 

Q.6 설정 방법은 어떻게 되나요?


1. chronyd


- # vi /etc/chrony.conf


vi /etc/chrony.conf


- # systemctl restart chronyd


 

2. ntpd


- # vi /etc/ntp.conf


vi /etc/ntp.conf


- # systemctl restart ntpd


 

3. 옵션 설정


- 사용하시는 NTP server 업체의 권고 설정이 있다면, 해당 설정값으로 설정하는 것을 권장 드립니다.


 

Q7. slew 옵션은 어떻게 설정하나요?


1. slew 옵션 이란?


- 시스템은 윤초가 발생하였을 때 00:00:00 UTC에 시스템 시계를 1초 뒤로 또는 앞으로 조정하여 윤초를 삽입 / 삭제 합니다.


- 시스템 시간 조정에 대해 민감한 어플리케이션의 경우 해당 작업이 문제가 발생할 수 있으므로, 바로 조정하지 않고 천천히 조정하도록 설정할 수 있습니다.


 

2. chronyd


- # vi /etc/chrony.conf


leapsecmode slew 추가


- # systemctl restart chronyd


 

3. ntpd


- # vi /etc/sysconfig/ntpd


vi /etc/sysconfig/ntpd


- # systemctl restart ntpd


 

Q8. 서비스 시작 방법 및 동기화 여부는 어떻게 확인하나요?


1. 서비스 시작


1.1 chrony


- # systemctl start chronyd


 

1.2 ntpd


- # systemctl start ntpd


 

2. 서비스 활성화 (부팅시 자동 시작)


2.1 chronyd


- # systemctl enable chronyd


 

2.2 ntpd


- # systemctl enable ntpd


 

3. 동기화 여부 확인


3.1 chronyd


- # chronyc sources


chronyc sources


- # chronyc tracking


chronyc tracking


 

3.2 ntpd


- # ntpq -p


ntpq -p


- # ntpstat


ntpstat


 

Q9. NTP 서버와의 시간 차이는 어떻게 확인하나요?


1. chronyd


- 아래 명령 실행 시 현재 서버가  NTP 서버와의 시간이 219초 차이 난다는 것을 알 수 있습니다.


- # chronyc sources


현재 서버가  NTP 서버와의 시간이 219초 차이


 

2. ntpd


- 아래 명령 실행 시 현재 서버가 NTP 서버와의 시간이 208초 차이 난다는 것을 알 수 있습니다.


- # ntpq -p


현재 서버가 NTP 서버와의 시간이 208초 차이


- # ntpdate -d [NTP server] | tail -1


현재 서버가 NTP 서버와의 시간이 208초 차이


 

Q10. 시간이 많이 차이 나게 되었을 때 어떻게 조치 하나요?


1. NTP 서버와 시간이 많이 차이 나는 경우 수동 동기화를 통하여 해당 증상을 해소할 수 있습니다.


 

Q11. 수동 시간 동기화는 어떻게 하나요?


1. chronyd


- # chronyc -a makestep


- # hwclock -w  (현재 설정된 시간으로 하드웨어 시간 설정)


 

2. ntpd


- # systemctl stop ntpd (ntpd가 실행 중일 경우 ntpdate가 실행되지 않습니다.)


- # ntpdate [NTP server] (한번 수행으로 차이가 크게 줄어들지 않으므로, 여러 번 수행하시기 바랍니다.)


- # hwclock -w  (현재 설정된 시간으로 하드웨어 시간 설정)


- # systemctl start ntpd


 

 

참조 문서

1. NTP 와 chrony 비교

- https://chrony.tuxfamily.org/comparison.html