- NTP 설치
1 | [user@vm1 ~]$ sudo yum install -y ntp | cs |
1 | [user@vm1 ~]$ sudo apt-get install -y ntp | cs |
- Local NTP 서버 설정
1 | [user@vm1 ~]$ sudo vi /etc/ntp.conf | cs |
21 22 23 24 | server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst | cs |
21 22 23 24 25 | #server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst server 127.127.1.0 | cs |
설정을 완료했으면 NTP 데몬을 재시작한다.
1 | [user@vm1 ~]$ sudo service ntpd start | cs |
부팅시 자동으로 NTP 데몬을 시작하고 싶다면 다음과 같이 등록한다.
1 | [user@vm1 ~]$ sudo chkconfig ntpd on | cs |
- NTP 시간 동기화
Local NTP 서버를 구동하였으면, 이제 다른 서버들(예시에서는 vm2)은 NTP 서버를 통해 시간을 동기화하도록 한다.
각 서버에서 다음과 같은 명령어로 동기화를 요청한다.
1 | [user@vm2 ~]$ sudo ntpdate -b vm1 | cs |
NTP를 사용하여 시간을 동기화할 때, 약 10분 정도를 기다려야 정확한 동기화가 된다고 한다.
하지만 실제로 동기화 작업을 해보니 위의 명령어를 실행하자마자 거의 정확한 동기화가 됨을 확인하였다.
위의 방법은 Local NTP 서버로 한 번만 동기화 작업을 요청하는데, 이는 시간이 지날 경우 동기화가 조금씩 풀리는 문제가 나타날 수 있다.
이 때는 두 가지 방법으로 해결할 수 있다.
첫 번째 방법은 서버와 마찬가지로 /etc/ntp.conf 파일을 수정하고 NTP 데몬을 부팅 레벨에 등록함으로써, 부팅 때마다 동기화되도록 하는 것이다.
이 방법은 재부팅때에만 동기화 작업을 하므로, 재부팅을 거의 하지 않는 서버에서는 해결 방법이 아니다.
두 번째 방법은 crontab에 등록하는 것이다.
crontab은 특정 기간마다 명령어를 자동으로 실행해준다.
이 방법은 주기적으로 동기화 작업을 하지만, 동기화에 약 10분의 대기 시간이 있으므로 빈번한 동기화 시에는 오히려 정확한 동기화가 어렵다.
(crontab에 5분마다 동기화를 했었는데, 너무 짧은 시간이라 동기화가 전혀 되지 않은 문제가 있었다.)
- Troubleshooting
NTP는 기본적으로 UDP 123 포트를 사용한다고 한다.
따라서 방화벽을 끄거나 방화벽에서 123 포트를 개방하지 않으면, 동기화 작업을 수행하지 못한다.
- 참고 사이트
RHEL, CentOS에서 ntp 서버 설정하기(사설망 내부 서버들의 시간 동기화)
[CentOS 7 / RHEL 7.2]NTP를 이용한 서버 시간 동기화
'운영체제 > Linux' 카테고리의 다른 글
Ubuntu에서 apt repository 변경 (0) | 2020.11.11 |
---|---|
Port-forwarding via iptables in Linux (0) | 2020.11.10 |
Enable/Disable CPU Cores (0) | 2019.05.02 |
동시에 여러 서버에게 ping 요청하기 (Broadcast ping) (0) | 2019.04.14 |
다중 서버에서 오차를 최소화한 시간 동기화 방법(Local NTP) (0) | 2017.10.18 |