서 버
dovecot 사용중인데 최근들어 아침에 보면 메일이 수신이 안돼는 현상이 있어서 찾아보니 다음과 같은 문제가 있었네요.
혹시나 같은 증상 이신분들은 이렇게 해결해 보세요 ^^
time.bora.net 시간 동기화후 dovecot 데몬이 죽는 현상 해결
어느 날 갑자기 아웃룩 익스프레스로 서버의 메일을 확인할때 접근이 안되어
서버에 접속해서 확인해보니 dovecot 데몬이 죽어 있을때가 있다.
현재 파악한 바로는 time.bora.net 서버 자체의 문제로 시간 동기화가 둘쑥날쑥되어
dovecot 데몬이 강제적으로 죽는 것이다. (아래 2번사항 참조)
다음과 같이 확인할 수 있고, 해결책도 제시해본다.
1) 매일 새벽시간대에 time.bora.net (타임서버)로부터 시간 동기화 할 수 있도록 cron에 script를
걸어놨다.
rdate -s time.bora.net && date && clock -r && clock -w > /dev/null 2>&1
2) 다음과 같이 dovecot 데몬이 죽어 있는 것을 maillog에 기록되어 있는 것을 확인할 수 있다.
Apr 27 04:50:42 server dovecot: Time just moved backwards by 19 seconds. This might cause a lot of problems, so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards
3) 이슈는 위 로그기록과 링크된 URL에도 나와 있지만 서버 시간이 19초 전 과거로 돌아가
dovecot 데몬을 죽였다는거다.
4) 실제 time.bora.net (타임서버)와 수동으로 동기화 시켜 보면 안맞는 것을 확인할 수 있다.
1회 수동 실행)
2009. 04. 27. (월) 13:36:59 KST
2009년 04월 27일 (월) 오후 01시 37분 00초 -0.468554 seconds ---> 1초 차이
2회 수동 실행)
2009. 04. 27. (월) 13:37:03 KST
2009년 04월 27일 (월) 오후 01시 37분 03초 -0.002654 seconds ---> 정확히 맞음
3회 수동 실행)
2009. 04. 27. (월) 13:36:46 KST
2009년 04월 27일 (월) 오후 01시 37분 07초 -0.860101 seconds ---> 19초 차이 (위, 보라넷 시간이 19초 늦음) 최대 22초 차이까지 확인함.
4회 수동 실행)
2009. 04. 27. (월) 13:36:49 KST
2009년 04월 27일 (월) 오후 01시 36분 50초 -0.259347 seconds ---> 1초 차이
--> 현재 이 사항에 대해서는 time.bora.net 을 운영하는 LG데이콤측에 문의해 놓은 상태다.
같이 운영하는 zero.bora.net 타임서버는 수동 동기화시 오차 시간 2초 이내로 정상 운영되고 있다.
5) 아마도 time.bora.net 서버측 문제일 것으로 추측해 보는데...
당장에 서버 시간 동기화도 해야겠고, dovecot 데몬도 운영되어야겠다면 다음과 같이 타임서버를
바꾸어 사용하도록 한다.
rdate -s zero.bora.net && date && clock -r && clock -w > /dev/null 2>&1
해외쪽엔 관련 이슈가 없는 걸로 봐서, time.bora.net 쪽의 문제로 생각된다.
LG데이콤측에서 답변사항이 오면 포스트하도록 하겠다.
관련 이슈 글 링크
http://kldp.org/node/102601
http://phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_install&wr_id=86763&sca=&sfl=wr_subject%7C%7Cwr_content&stx=dovecot&sop=and
ps1. CentOS 5.0 이며 dovecot-1.0-1.2.rc.15.el5 인 서버는 시간이 비정상적으로 동기화 되어도 dovecot 데몬이 죽지 않음.
출처 : http://www.seroot.com

lo마음ve
time.bora.net보다 증상이 조금 나아질진 모르나........(요즘 워낙 정신 못차리는듯.......)
Dovecot 최근 버전의 자체 문제라고 보는게 맞다고 생각.......
Time속성이 매우 중요한 데몬들이 그외에도 많은데,,,,
경고메시지&보정 처리화 하지 못하고, 서비스가 Killed된다는건 분명히 문제가 심각한 겁니다.
zero.bora.net 역시, NASA의 원자시계 같은 장비를 운영하지 않는이상(절대로 그럴리 없겠지만요...)
잘해바야, 세슘 원자시계 레벨인 stratum 0으로부터 시간값을 받아오거나,
아니라면, stratum 0 다음 하위단계의 stratum 1로부터 시간을 받거나, 그것도 아니라면, stratum 2,3,4....
또느 GPS위성 시계로부터 받아서 다수에서 시간 정보를 재전송해주는 역할을 할뿐입니다.
개인적으로 확인 해본 결과, ntp를 통해, GPS, stratum 0, stratum 1 급의 국내/국외의 신뢰도 높은
타임 서버를 지정하여 테스트 하여봤습니다만, time.bora.net보다 증상히 급격히 줄어 들긴 하였으나,
여전히 간헐적으로 Dovecot가 killed되는 현상이 발생했습니다.
뭐, 확실한 방법을 택하자면, 본문 하단 내용처럼 구 버전의 Dovecot로 돌리는 것이라고 할수 있겠으나,
권장하고 싶진 않습니다.
Time정보가, 최근 서비스 패키지들에게 있어서 그 중요도가 갈수록 커저가고 있습니다. 또한, Time의
정확도(소수점 몇자리.....)역시, 따지는 것도 있구요......
어쨋든, 구버전으로 돌리는 편법(?)보다는, 어떻게든, 중요한 Time정보를 최대한 정확히 유지/동기화 할수 있는
방법을 모색/적용 하는것이 바람직한 문제해결 방향이라고 말씀드리고 싶네요.
현재(최근버전)으로서는, 100% 해결을 보장하는 대책은 없다라고 보여지네요.
(Dovecot 자체적으로 해결되는것이 가장 이상적이지만요....)
"언발에 오줌누기"격으로, 동기화한 후, Force-Restart하는 편법이라면 몰라도요......