IT/Unix & Linux

OS 별 윤초 (Leap second) 조치 및 점검 방법

슈다루냥 2019. 6. 13.

안녕하세요. 슈다 입니다.

OS 별 윤초  (Leap second) 조치 방법을 알아보겠습니다.

 

윤초 (Leap second) 란?

세계에서 공용으로 사용하는 세계협정시(UTC) 의 오차를 맞추기 위해 1초를 더하거나 빼는 것을 의미합니다.

한국은 2017년 1월 1일 9시에 1초가 추가된 이력이 있습니다.

 

윤초 (Leap second) 가 시스템에 미치는 영향

1초가 더해지거나 빼지는 것은 시스템에 있어서 치명적일 수도 있습니다.

주로 DB 및 시간과 관련된 시스템에서 Crash를 발생하는데요, 

1초 차이로 인해 DB Data가 꼬여버리거나 Crash 되는 등의 심각한 상황이 발생할 수 있습니다.

그렇지만 Windows시스템이나 VMware 등은 윤초로 인한 문제 발생 가능성이 매우 낮다고 합니다.

 

OS 별 윤초 조치 방법 및 점검

□ UNIX

윤초로 인해 발생 가능한 문제점 : Time backwards로 인한 DB Crash 발생 가능성

해결방법 : NTP 의 slew 옵션 적용 (-x 옵션)

확인방법 : -x 옵션 적용 되었는지 확인하며, 적용되어 있지 않다면 적용

# ps -ef |grep ntp

# /usr/sbin/xntpd -x (옵션 적용됨)

# /usr/sbin/xntpd    (옵션 적용되지 않음)

 

적용방법 (AIX)

# stopsrc -s xntpd  (NTP 중지)

# chsys -s xntpd -a "-x"   (NTP 실행 시 -x 옵션 실행되도록 시스템 설정 변경)

# lssrc -Ss xntpd ( : 로 구분된 3번째 필드 cmdargs 에 -x 가 있는지 확인)

# startsrc -s xntpd  (NTP 기동)

# ps -ef |grep ntp 명령으로 xntpd -x 로 기동되어 있는지 확인

번외

# startsrc -s xntpd -a "-x"  (chsys 명령으로 변경하지 않고, ntp 기동 시 옵션을 넣어 기동하는 방법)

 

□ Linux

윤초로 인해 발생 가능한 문제점

1. Time backwards로 인한 DB Crash 발생 가능성

해결방법 : NTP 의 slew 옵션 적용 (-x 옵션)

확인방법 : -x 옵션 적용 되었는지 확인하며, 적용되어 있지 않다면 적용

# ps -ef |grep ntp

# ntpd -x -u ntp:ntp .... (옵션 적용됨)

ntpd -u ntp:ntp ....  (옵션 적용되지 않음)

 

적용방법

/etc/sysconfig/ntpd 파일을 수정합니다. OPTIONS 값에 -x 추가 및 SYNC_HWCLOCK 값을 입력합니다.

# vi /etc/sysconfig/ntpd

# OPTIONS="-x -u ntp:ntp -p /var/run/tnpd.pid"  (-x 값을 추가합니다.)

# SYNC_HWCLOCK=no  (값을 추가하거나 yes를 no로 변경해 줍니다.)

# service ntpd restart  (NTP 데몬 재기동)

# ps -ef |grep ntp  (-x 옵션이 적용되었는지 확인)

 

2. 커널 업데이트가 필요할 수 있습니다.  - kernel crash 발생 사례 있다고 함

chronyd 패키지를 사용하는 경우 최신 커널 버전을 권장합니다. - Redhat 권고사항

RHEL7 버전을 사용하는 경우 아래의 kernel level 보다 높은 버전을 권장합니다.

  7.2  :  kernel-3 - 7.2: kernel-3.10.0-327.41.4.el7
  7.3  :  kernel-3.10.0-514.2.2.el7

 

 

□ Windows

윤초로 인해 발생 가능한 문제점

Time 값을 Primary Key로 사용하는 DB Table의 경우에, 테이블 업데이트 주기가 1초 미만인 경우 Duplication 발생 가능

그렇지만 발생 가능성이 매우 낮다고 합니다.

 

해결방법 : 별도 Action 없음

1. 윤초 (Leap second) 관련하여 Windows에서 보고된 사례가 없는 것으로 확인된다고 하며 (2016년 말 기준)

2. NTP Client는 동기화 시 윤초를 구분하지 않고 평소처럼 시간 동기화 주기 때 동기화를 시도하고

3. NTP Server는 Client와 동일한 방식으로 동기화 하며, Client에 동기화packet 전달 시 윤초 packet을 전달하지 않는다고 합니다.

4. 1초 이하의 시간을 사용하는 Application은 NTP 동기화 시 잘못된 동기화로 인한 오류 발생 가능성으로 인해

독립적인 Clock 사용으로 NTP 운영환경에서의 문제발생 여지가 적음

반응형