서버 시간 동기화: 제발 21세기엔 rdate 쓰지 말자

한줄 요약: 시간 동기화는 간단하지 않다.

최소한 NTP 프로토콜 사용

이 글을 쓰는 이유는… 2020년 12월 현 시점에서 rdate(와 cron)로 시간 동기화 하겠다는 충격적인 블로그 글을 봐서…

결론부터 말하면 NTP 프로토콜 지원하는 프로그램으로 동기화 하자.

시간 보정 방법

step: 즉시 시간 보정

slew: 시계 회전 속도를 조절하여 시간 보정. 단조증가 시계 Monotonic clock.

시간 동기화 프로토콜 종류

Time Server udp/37 rdate 등이 사용하는 시간 서비스. 정확하지도 않고 개인 시스템이더라도 쓰지 말자…

NTP udp/123 시간 동기화 표준 프로토콜, 윈도, 리눅스 동일

SNTP udp/123 NTP의 서브셋, NTP와 동일 포트 사용. 1-50ms 정도의 정확도

PTP Precision Time Protocol, NTP보다 더 정밀한 프로토콜. chrony 에서 미지원, 지원 계획 없음. 참고#1, 참고#2

  • 과학, 금융 수준에서 사용… 커널과 하드웨어가 지원되어야 사용 가능.

NTS Network Time Security for the Network Time Protocol. chrony 4.0 부터 지원.

시간동기화 프로그램

rdate udp/37 사용, xinetd 등에서 사용하는 단순 시간 변경 툴. 쓰면 안된다. step 방식으로만 보정하기 때문.
systemd-timesyncd systemd에서 사용하는 시간 동기화 데몬. SNTP 구현체인데 구현이 약간 다름. 오차 100 ms 정도 된다고.

ntpd NTP 구현체 CentOS 6까지 기본 시간 동기화 데몬.
chrony ntpd보다 개선된 구현체. 보안면에서 가장 좋다는 평가. CentOS 7부터 기본 시간 동기화 데몬. NTP 구현체 비교
w32tm 윈도 시간동기화 툴. Windows Server 메뉴얼을 보면 알겠지만… 정확도가 2016에서야 좋아졌다(아래 이미지 참조)

rdate와 ntp(chrony)의 차이점

  • rdate 실행 시 서버쪽 시간을 바로 적용. 시간 서버 – 클라이언트 60초의 오차가 있을 때 60초를 즉시 건너 뛴다.
    그래서 시간이 빠른 장비의 시간 보정을 rdate로 하면 (장비 관점에서)시간이 과거로 돌아가는 문제가 있음 -> DB의 경우 과거 시간으로 데이터가 쌓이면 DB 테이블이 깨질 수 있음.
  • ntpd(chrony)는 오차 시간을 빠르게 혹은 느리게 시간을 돌려서 맞춰(slewing) rdate와 같은 문제 발생하지 않음.
    • 시간 오차가 너무 클 때는 NTP 구현체도 step 방식으로 시간 보정.

시간

1초. 1초의 정의가 지속적으로 바뀌었음. https://ko.wikipedia.org/wiki/%EC%B4%88_(%EC%8B%9C%EA%B0%84)#cite_note-1

  • 지구 자전(하루)에 의한 평균 태양일의 1/86,400 으로 정의
    • 지구의 자전이 불규칙함. 계속 느려지고 있으며, 큰 지진에도 영향 받아 정확도 보장이 안됨.
      • 2021-01-09 지구 자전이 빨라져서 역윤초(음의 윤초) 적용 검토 필요할 수 있다는 뉴스.
      • 지구 온난화로 빙하가 녹아 지구 질량 재분배가 발생한게 아닐까 하는 연구결과가 2015년 경에 있었음.
  • 1956년, 1900년 1월 0일 12시 기준 태양년의 1/31556925.9747, 자전에서 공전으로 기준 변경
  • 1967년, 원자 시계 발명 되어 세슘-133 원자의 1초간 진동 수 (보조적으로 루비듐 원자)

그 외 시간 관련해 알면 좋은 것

  • 2020년 현재까지 가장 정밀한 시간(초) 측정 장치는 ‘광격자 시계(or 광시계)’.
    • 가장 정밀하지만 아직 표준 시간 기준으로 채택되어 사용 중은 아닌 듯.
  • 고도에 따라 시간이 다르게 흐름(중력 영향 차이 발생하기 때문)
  • 윤초(Leap second): 원자시계와 태양시간의 오차 보정하기 위함
  • UTC 세계 협정시, KST는 UTC +9h
  • epoch

IT 인프라의 시간 동기화

인증 시스템이나 클러스터에서 모든 기준은 시간이 되기 때문에 각 시스템간 시간 차이가 발생하면 신뢰할 기준이 없어지는 상황이 된다. 그렇다면 시간 오차를 모든 단위에서 ‘0’로 할 수 있는가?

시간 오차 제로: 매우 어렵다… 물리적으로 불가능. NTP 가 실제 네트워크에서 잘 동작한다고 보장할 수 있는 사람/단체는 아무도 없음. 다만 같은 서비스 그룹끼리 비슷한 시간 유지하여 서비스 데몬에서 로그가 뒤섞이지 않는 정밀도를 목표로 해야. NTP 프로토콜은 어디까지나 네 가지 시간을 조합, 추정하여 오차 보정하여 적용하는 것이지 오차를 ‘0’으로 해주는 프로토콜이 아니다.

메인보드와 OS시간: 메인보드가 UTC를 쓰는가, KST를 쓰는가? 보드에서 이미 KST를 쓰는데 OS에서 추가로 +9 하는 경우가 있음.

Linux 에서 윤초 해결: Timezone 패키지(tzdata) 수시로 업데이트 해야함.

chrony 의 원격지 chrony 관리: authhash 명령 실행해보면 ‘Authentication is no longer supported in the command protocol.’ 라고 뜨는데, chrony 2.2 에서 보안 문제로 제거된 기능이라고… CentOS 6 에 설치되는 chrony 는 2.1이라 사용 가능하지만 CentOS 7만 돼도 버전이 더 높아서 원격지 chrony 관리는 못함.


관련링크

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite#sect-Using_chrony
https://ubuntu.com/server/docs/network-ntp
http://time.ewha.or.kr/

ftp.kaist.ac.kr 복구

이 글을 쓰는 이유: CentOS mirror는 어떻게 만들고 갱신해야 하는가?…라는 글을 쓰려다보니 역사와 전통의 ftp.kasit.ac.kr 이 복구 되었음을 확인.

  • 한국 mirror FTP 의 대장격인 ftp.kaist.ac.kr 이 2019년 11월 2일 이후로 접속 불가.(였는데 이 글을 쓰는 2020년 2월 19일 12:00 현재 접속이 되고 있다!!)
  • ftp.neowiz.com cpan, php, ubuntu 만 갱신 중. 타 프로젝트는 2019년 3월 경부터 업데이트 안되고 있다.

역사와 전통의 mirror 사이트인 ftp.kaist.ac.kr 운영자와 학교 관계자분께 감사의 말씀을 드리며…

2020-04-03 현재 모습

2020-04-27 추가

네오위즈 FTP가 2020-04-28 을 끝으로 서비스 종료.

https://byline.network/2020/04/16-91/amp/ AWS 올인 영향인듯. 그 동안 잘 썼습니다. 고맙습니다.

OneNote Publisher for WordPress 사용 방법

워드프레스 기본편집기가 좋긴 하지만, 클립보드로 복사한 이미지를 편집기에 바로 붙여 넣어 파일로 첨부하는 기능은 없는 듯 하다.

그래서 MS Live Writer 를 썼는데, 업데이트가 안 되는 MS에서 버린 프로그램. 윈도 10 에선 설치조차 되지 않는다. 2015. 10. 14 확인 결과 http://windows.microsoft.com/ko-kr/windows-live/download-windows-essentials#wetabs=we2012 가 윈도 10에서 설치 된다.

2015년 10월 현재의 방법은 onenote 를 사용 하는 것. MS Office 제품군으로 들어가 있지만 http://www.onenote.com/ 무료 버전도 있다(기능상 차이가 있는지는 모르겠다.).

PC에서 Writer로 글 작성 -> 워드프레스로 업로드

발행 혹은 임시 저장하는 방식이었다면,

PC, 스마트폰, 태블렛 등 onenote 실행 가능한 기기에서 작성 -> onedirve에 저장 -> onedrive에 저장된 글을 워드프레스 새 글 작성에서 불러들임 -> 저장

일단 해보니 복잡할 뿐만 아니라 글 동기화 하고 나서도 워드프레스 원노트 글 가져오기에 제목이 표시되기 까지 꽤 긴(5분 가량) 시간이 걸렸다.

글 작성하고 수정을 여러 번 하게 된다면 안 쓰게 될 듯. 수정할 때마다 동기화 -> 원드라이브에서 가져오기를 해야 하는 것이니…

설정 방법

  1. https://wordpress.org/plugins/onenote-publisher/ 설치
  2. 자신의 워드프레스 플러그인 설정
    1. clip_image001
    2. clip_image002
    3. 밑에 진행 과정을 설명한 링크가 있음. 들어가서 확인할 것. https://account.live.com/developers/applications/ 에서 자신의 워드프레스 등록. Redirect URLs 까지 입력해야 한다. 입력하고 나면 클라이언트 ID랑 키가 발급됨.
    4. 발급된 ID와 키를 b 이미지에 입력

 

글 작성 방법

  1. 원노트에서 글 작성
  2. 동기화.
  3. 자신의 워드 프레스로 이동한다. 새 글 작성
    1. clip_image003
  4. 위와 같이 원노트 아이콘이 보이면 된다. 클릭. 새 창이 뜬다.
  5. 새 창에서 글을 가져와야 하는데… 이 글을 작성 시작할 때부터 여기 쓰는 동안 목록에 이 글이 안 뜬다.
  6. 다른 노트로 복붙하고 불러오니 가지고는 오는데 한글이 깨진다.
    1. clip_image004
  7. MS Live writer 써라 ….

 

그 외 : 이미 포스팅 하고 워드프레스에서 편집한 내용이 원노트에 반영되지 않는다. 원노트에서만 편집해야 함. 이거 뭐야…