안녕하세요?
뜻밖의 행운 입니다.
오늘은 시스템 운영간에 각 서버간의 시간을 동기화 시킬 필요가 있을 때 (특히 데이터 베이스 서버)
NTP 를 이용하여 시긴을 동기화 시키는 방법에 대해 다루어 보겠습니다.
시스템간의 시간을 동기화 시킬 수 있는 방법은 크게 3가지가 있습니다.
우선 가장 간단한 명령은 setclock 명령입니다.
# setclock hostname 을 통해 지정한 host의 time을 가져오는 명령어입니다.
아래 그림에서 보듯이
date로 현재 시간을 확인해 볼 때 16:58 입니다.
setclock FSS(호스트명) 명령어를 사용하니
바로 FSS2의 시간을 가지고 오는 것을 확인 할 수 있습니다.
이 명령어의 특징은 지속적으로 시간을 동기화하는 것이 아닌 명령어를 수행한 구
순간 한번만 실행되는 명령어입니다.
단순히 시스템간의 시간을 맞추고 싶다면 crontab 에 이 명령을 적절한 시간에 반복
하도록 등록하는 것도 하나의 방법이 될 수 도 있습니다.
두 번째 방법으로는 timed Daemon을 사용할 수 있습니다.
Timed는 동일 네트웍에 있는 서버들의 시간을 동기화시키는 데몬입니다.
timed는 주기적으로 시간을 확인해 동기화 하지만 20ms의 정도의 서버의 시간 차는 무시하고
"sync 시간"을 결정하므로 무시된 서버의 시간은 시간 차이가 큰 서버들간의 sync time으로 인해 큰 차
이로 변경 될 수 있습니다.
세번 째 방법이 바로 NTP를 이용한 시간 동기화 방법입니다.
NTP는 xntpd Daemon을 이용해 시간을 동기화 하며 xnptd는 timed와는 다르게 동일
network이 아닌 시스템 간에도 사용할 수 있으며 바로 동기화가 되는 것이 아니라 (1분에 약 5초 정도씩 보정이 됩니다.
맞출려고 하는 서버가 시간이 느렸던 것이면 실제 시간으로는 60초가 흘렀지만 시
스템 시간으로는 65초가 흐른것으로 되어 천천히 시간을 맞추는 것)
참고로 NTP은 UDP 포트 123을 사용합니다. 이 포트가 인터넷으로 열려 있지 않으
면 서버를 인터넷 SNTP 서버와 동기화할 수 없습니다.
기본적으로 timed는 설정 후 sync를 시키면 바로 시간을 맞추는 반면 xntpd는 8분
정도 후에 서버와 클라이언트 간에 시간이 맞추어지게 됩니다.
xntpd의 경우 이론상 최초 실행 후 timesysnc check는 분당 이루어지나 그 시간은 서
버간 거리나 clock drift에 의해 바뀔 수 있으며 보통 6~10분 가량 걸리는 것으로 나타나고 있습니다.
xntpd를 이용한 시간 동기화
/etc/ntp.conf , /etc/ntp.drift 와 /etc/ntp.trace 파일이 있는지 확인합니다
vi를 이용하여 /etc/ntp.conf 파일을 아래와 같이 수정합니다.
startsrc -s xntpd 를 이용하여 xntpd를 살립니다.
ps -ef 명령어로 Daemon이 정상적으로 살아있는지 확인합니다.
6~8 분 정도 후에 lssrc -ls xntpd 결과 값에서 아래 표시된 값들을 확인합니다.
ntpq –p 로 시스템이 시간을 동기화 시키는 과정을 확인 할 수있습니다. (또는 xntpdc -p )
대부분의 경우 Reach 값이 377에 다다를 경우 시간의 동기화가 완료됩니다.
주의점
xntpd는 Server와 Client간 1000초(16분) 이상의 시간 차이가 발생하면 더 이상 시간을 동기화 하지 않습니다. date 확인 후 시간차가 크다면 # smitty date 를 통해 시간
을 근접하게 바꾸어 줍니다.
(아시겠지만 데이터 베이스 서버나 특정 어플리케이션의 경우 시간에 민감하기 때문에 시간을 과거로 돌릴경우 실행이 안되거나 데이터가 깨질 수 도 있습니다.)
startsrc -s xntpd -a "-x"
- x 옵션을 통해 Time backward 를 막을 수 있습니다. 이로서 시간이 늦는 서버의 시
간을 동기화 하는 것을 방지해(시간이 과거로 돌아가는 것)시간차에 민감한 DB들의
충돌을 방지할 수 있습니다
보통 6~10분 사이에 시스템간 시간은 동기화(시스템간의 시간차에 따라 더 오래 걸
릴 수도 있습니다)가 되며 동기화 설정후 바로 시간을 맞추고 싶다면 ntp server 가
active 인 상태인 Client에서
ntpdate <ip_of_Sever> 또는 #setclock hostname 후
startsrc -s xntpd -a "-x"
로 데몬을 살리면 시간은 바로 같아집니다.
후에 재부팅후에도 같은 설정을 적용하고 싶다면
모든 시스템의 /etc/rc.tcpip 파일에 start /usr/sbin/xntpd "$src_running" "-x" 항목
을 추가해주시면
됩니다..
xntpd를 이용해 시간을 동기화 한 후 Time Server의 시간을 바꾸면 전체 Client의 시
간이 바뀌므로 주의해서 시간관리를 해야 합니다. Time Server의 시간을 임시로 바
꾸고자 하면 반드시 xntpd daemon을 stop 시킨 후 (#stopsrc -s xntpd) 작업을 하는것
을 권해 드립니다.
지금까지 NTP을 이용해 시간을 맞추는것에 대해 간단히 알아 봤는데 다음에는
좀더 자세하게 다루어 보겠습니다.
보신 분들께 도움이 되었으면 좋겠습니다. ^^
'IT > AIX&Linux' 카테고리의 다른 글
하루 5분 AIX - 기본 중의 기본 ls (0) | 2013.05.17 |
---|---|
하루 5분 AIX - 지금 이 host의 시간은? (0) | 2013.05.16 |
하루 5분 AIX - 누가 접속해 있나? (0) | 2013.05.15 |
하루 5분 AIX - 명령어 구성방식 (0) | 2013.05.14 |
하루 5분 AIX - password (0) | 2013.05.13 |
하루 5분 AIX - log in/out (0) | 2013.05.12 |
AIX 에서 crontab 사용하기! (0) | 2013.02.27 |
Nmon -1 부- (3) | 2013.02.07 |
AIX dd 명령어를 이용한 동일 환경 구축 (0) | 2013.01.24 |
AIX 에서 lspv 시 hdisk가 순서대로 나오지 않을 때 (0) | 2013.01.24 |