베하!
오늘은 리눅스에서의 시간 동기화에 대한 내용을 가져왔어요.
바로 시작해볼게요!
먼저, 시간 동기화를 하는 이유에 대해서 알아볼게요.
여러 사용자가 접속하여 서비스를 이용하는데, 시간이 어긋나버리면 후에 서버에 문제가 생겼을 경우 다음과 같은 문제점이 발생할 수 있어요 :
- 로그를 확인하는 과정에서 시간 간극으로 인해 정확한 원인을 파악하지 못하는 경우가 발생
- 각종 로그 설정이나 디버깅에 있어 서버마다 다른 시간을 바라보고 있으면 디버깅이 어려워지며 특정 어플리케이션에서는 서비스에 문제가 발생 될 수 있음
- 예를 들어 : Active-Standby나 Replication의 경우 데이터 동기화가 되지 않으니 문제가 생김
시간 동기화를 하는 방법에는 크게 두 가지가 있어요.
NTP와 Chrony 두 가지가 있는데요, 하나씩 알아보도록 할게요!
NTP
보통 서버에는 NTP 서버라는 시간의 기준이 되는 서버가 존재하며, 일반 서버들은 대부분 NTP 서버와 통신을 하여 시간을 맞추게 돼요.
NTP(Network Time Protocol)는 컴퓨터 시스템간의 시간 동기화를 위한 네트워킹 프로토콜인데요,
공용 NTP 서버로는 time.bora.net 등을 많이 사용해요.
이제 Ubuntu에서 NTP를 이용해 시간 동기화를 직접 해보도록 할게요.
# KST로 타임존 변경
timedatectl set-timezone Asia/Seoul
apt update
apt-get install -y ntp
vim /etc/ntp.conf
# --- 주석 처리 ---
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst
# ------
# --- 아래 내용 추가 ---
server 203.248.240.140 iburst
# ------
systemctl start ntp
참고로, 203.348.240.140은 time.bora.net의 IP이며,
뒤의 iburst는 동기화 하는데 걸리는 시간을 짧게 줄여주는 옵션이랍니다!
Chrony
다음은 chrony에 대해 알아볼게요!
Chrony란 NTP(Network Time Protocol)을 구현한 server/client 로, 기존 리눅스의 ntpd 를 대체하는 시간 동기화 방법이랍니다.
레드햇에서는 RHEL 8 부터 기본 NTP로 채택하여 사용 중이라고 하네요!
이번엔 Ubuntu에서 chrony를 이용해 시간 동기화를 직접 해보도록 할게요.
apt-get install chrony
vim /etc/chrony/chrony.conf
# --- 주석 처리 ---
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
pool 1.ubuntu.pool.ntp.org iburst maxsources 1
pool 2.ubuntu.pool.ntp.org iburst maxsources 2
# ------
# --- 아래 내용 추가 ---
# 169.254.169.123은 Amazon Time Sync Service IP이다.
server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
# ------
systemctl start chrony
그럼 어느 경우에 NTP나 Chrony를 사용할까요?
Chrony는 더 큰 범위의 클럭 속도 조정을 제공하며, 갑작스러운 클럭의 변화에 빠르게 적응하는 반면,
NTP는 다시 안정화 되는 데 오랜 시간이 필요할 수 있어요.
따라서
- 항상 연결이 보장된 상황에서는 NTP 사용
- 모바일이나 가상 시스템처럼 빈번한 대기, 접속 차단이 불가피한 상황에서는 Chrony 사용
오늘은 Linux에서의 시간 동기화에 대해 알아봤어요.
그럼 다음에 또 만나요~
베빠!!
'OS > Linux' 카테고리의 다른 글
[Liunx]LVM을 사용해 EBS 볼륨 용량 늘리기 (1) | 2023.07.19 |
---|---|
[Linux]권한 이해하기 (0) | 2023.07.14 |
[Linux] Swap Memory (0) | 2023.07.07 |
[Linux]포트 이해하기 (0) | 2023.06.26 |
[Linux]시스템 로그와 모니터링 이해하기 (0) | 2023.06.12 |
댓글