๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์๊ฐ์ ์ถ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ ์์ ์ผ์ด๋ ์์นจ ์์์ ๋ง์น๊ณ ์ถ๊ทผํ๊ณ , ์ ์ฌ ์๊ฐ์ ๊ฐ๊ณ , ํ๋ก์ ํธ ๋ง๊ฐ์ผ์ ๋ง์ถ๊ณ , ์์ผ๊ณผ ๊ณตํด์ผ์ ์ถํํ๊ณ , ๋นํ๊ธฐ๋ฅผ ํ๋ ๋ฑ์ ์ผ์ ํฉ๋๋ค.
๊ฒ๋ค๊ฐ ์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ ์๊ฐ์ ์ง์ฐฉํฉ๋๋ค. ๋ด ์๊ณ๋ ํ์ ์๋์ง๋ก ๊ตฌ๋๋๋ฉฐ ๊ตญ๋ฆฝ ํ์ค ๊ธฐ์ ์ฐ๊ตฌ์(National Institute of Standards and Technology)์์ ์ ํํ ์๊ฐ์ ์ป์ต๋๋ค(
์ฅ์น๋ ์๊ฐ์ ์ถ์ ํฉ๋๋ค.
์ฐ๋ฆฌ์ ์ฅ์น์ ์ปดํจํฐ์ ์ ํํ ์๊ฐ์ด ํ์ํ ๋ฐ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ํ, ์ฃผ์ ์์ฅ ๋ฐ ๊ธฐํ ๊ธ์ต ๋น์ฆ๋์ค์์ ๊ฑฐ๋๋ ์ ์ ํ ์์๋ก ์ํ๋์ด์ผ ํ๋ฉฐ ์ ํํ ์๊ฐ ์์๋ ์ด๋ฅผ ์ํด ๋งค์ฐ ์ค์ํฉ๋๋ค.
ํด๋ํฐ, ํ๋ธ๋ฆฟ, ์๋์ฐจ, GPS ์์คํ ๋ฐ ์ปดํจํฐ๋ ๋ชจ๋ ์ ํํ ์๊ฐ ๋ฐ ๋ ์ง ์ค์ ์ด ํ์ํฉ๋๋ค. ๋ด ์ปดํจํฐ ๋ฐํ ํ๋ฉด์ ์๊ณ๊ฐ ์ ํํ ์๊ฐ์ ํ์ํ๋๋ก ํ๊ณ ์ถ์ต๋๋ค. ์๋ฆผ์ด ๋ด ๋ก์ปฌ ์บ๋ฆฐ๋์ ์ ์์ ๋ํ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ ํํ ์๊ฐ์ ๋ํ cron ๋ฐ systemd ์์ ์ด ์ ํํ ์๊ฐ์ ์คํ๋๋๋ก ํฉ๋๋ค.
๋ ์ง์ ์๊ฐ๋ ๋ก๊น ์ ์ค์ํ๋ฏ๋ก ๋ ์ง์ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ํน์ ๋ก๊ทธ๋ฅผ ์ฐพ๋ ๊ฒ์ด ์กฐ๊ธ ๋ ์ฝ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ๋ ํ๋ DevOps(๋น์์๋ ๊ทธ๋ ๊ฒ ๋ถ๋ฅด์ง ์์์)์์ ์ผํ๊ณ ๋ ธ์ค์บ๋กค๋ผ์ด๋ ์ฃผ์์ ์ด๋ฉ์ผ ์์คํ ์ ์ค์ ํ๊ณ ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ฃจ์ 20์ฒ๋ง ๊ฐ ์ด์์ ์ด๋ฉ์ผ์ ์ฒ๋ฆฌํ์ต๋๋ค. ์ผ๋ จ์ ์๋ฒ๋ฅผ ํตํด ์ ์ ๋ฉ์ผ์ ์ถ์ ํ๊ฑฐ๋ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ํธ์คํธ์ ๋ก๊ทธ ํ์ผ์ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ์ ์ ํํ ์์๋ฅผ ๊ฒฐ์ ํ๋ ์์ ์ ๊ฐ ์ปดํจํฐ๊ฐ ์ ์๊ฐ์ ๋๊ธฐํ๋๋ ๊ฒฝ์ฐ ํจ์ฌ ์ฌ์ธ ์ ์์ต๋๋ค.
ํ ๋ฒ - ์ฌ๋ฌ ์๊ฐ
Linux ํธ์คํธ๋ ์์คํ ์๊ฐ๊ณผ RTC ์๊ฐ์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. RTC(Real Time Clock)๋ ํ๋์จ์ด ์๊ณ์ ๋ํด ์ฝ๊ฐ ์ด์ํ๊ณ ์ ํํ์ง ์์ ์ด๋ฆ์ ๋๋ค.
ํ๋์จ์ด ์๊ณ๋ ์ปดํจํฐ๊ฐ ๊บผ์ ธ ์์ด๋ ์์คํ ๋ง๋๋ณด๋์ ๋ฐฐํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ ์คํ๋ฉ๋๋ค. RTC์ ์ฃผ์ ๊ธฐ๋ฅ์ ์๊ฐ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ ๋ ์๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ ๋๋ค. ์ธํฐ๋ท์ ํตํด ์๊ฐ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์๋ ์์ ์๋ ๋ชจ๋ ์ปดํจํฐ์ ์ ํํ ๋ด๋ถ ์๊ณ๊ฐ ์์ด์ผ ํ์ต๋๋ค. ์ด์ ์ฒด์ ๋ ๋ถํ ์ RTC์ ์ก์ธ์คํด์ผ ํ์ผ๋ฉฐ ์ฌ์ฉ์๋ BIOS ํ๋์จ์ด ๊ตฌ์ฑ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์๊ฐ์ด ์ฌ๋ฐ๋ฅธ์ง ์๋์ผ๋ก ์ค์ ํด์ผ ํ์ต๋๋ค.
ํ๋์จ์ด ์๊ณ๋ ํ์ค ์๊ฐ๋์ ๊ฐ๋ ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. RTC๋ ์๊ฐ๋ง ์ ์ฅํ๋ฉฐ ํ์ค ์๊ฐ๋๋ UTC(ํ์ ์ธ๊ณ์, GMT ๋๋ ๊ทธ๋ฆฌ๋์น ํ์ค์๋ผ๊ณ ๋ ํจ)์์ ์คํ์ ์ ์ ์ฅํ์ง ์์ต๋๋ค. ์ด ๊ธฐ์ฌ์ ๋ท๋ถ๋ถ์์ ๋ค๋ฃฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ RTC๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
์์คํ ์๊ฐ์ ๋ก๊ทธ์ ํ์์คํฌํ์์ ๋ ์ง ๋ช ๋ น์ ์ถ๋ ฅ์์ โโOS๊ฐ ๋ฐ์คํฌํฑ์ GUI ์๊ณ์ ํ์ํ๋ ์๊ฐ์ ๋๋ค. ์ด๋ ํ์ผ์ ๋ง๋ค๊ณ ์์ ํ๊ณ ์ฌ๋ ๊ฒฝ์ฐ์๋ ์ ์ฉ๋ฉ๋๋ค.
ํ์ด์ง
NTP๋ ๋ฌด์์ ๋๊น?
์ ์ธ๊ณ์ ์ปดํจํฐ๋ NTP(Network Time Protocol)๋ฅผ ์ฌ์ฉํ์ฌ NTP ์๋ฒ ๊ณ์ธต์ ์ฌ์ฉํ์ฌ ์ธํฐ๋ท์ ํตํด ํ์ค ์ฐธ์กฐ ์๊ณ์ ์๊ฐ์ ๋๊ธฐํํฉ๋๋ค. ์ฃผ ์๊ฐ ์๋ฒ๋ ๊ณ์ธต 1์ ์์ผ๋ฉฐ ์์ฑ, ๋ผ๋์ค ๋๋ ๋ชจ๋์ ํตํด ์ ํ์ ์ ํตํด ๊ณ์ธต 0์ ๋ค์ํ ๊ตญ๊ฐ ์๊ฐ ์๋น์ค์ ์ง์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๊ณ์ธต 0 ์๊ฐ ์๋น์ค๋ ์์ ์๊ณ, ์์ ์๊ณ๊ฐ ์ ์กํ๋ ์ ํธ์ ๋ง์ถฐ์ง ๋ผ๋์ค ์์ ๊ธฐ ๋๋ GPS ์์ฑ์ด ์ ์กํ๋ ๋งค์ฐ ์ ํํ ์๊ณ ์ ํธ๋ฅผ ์ฌ์ฉํ๋ GPS ์์ ๊ธฐ๊ฐ ๋ ์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ์ฐธ์กฐ ์๋ฒ์๋ ์์ฒ ๊ฐ์ ๊ณต์ฉ NTP ๊ณ์ธต 2 ์๋ฒ๊ฐ ๊ณต๊ฐ๋์ด ์์ต๋๋ค. NTP ์๋ฒ๊ฐ ํ์ํ ๋ง์ ํธ์คํธ๊ฐ ์๋ ๋ง์ ์กฐ์ง๊ณผ ์ฌ์ฉ์(์ ํฌํจ)๋ ์์ ์ ์๊ฐ ์๋ฒ๋ฅผ ์ค์ ํ์ฌ ํ๋์ ๋ก์ปฌ ํธ์คํธ๋ง ๊ณ์ธต 2 ๋๋ 3์ ์ก์ธ์คํ๋๋ก ์ ํํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ก์ปฌ ํธ์คํธ๋ฅผ ์ฌ์ฉํ๋๋ก ๋คํธ์ํฌ์ ๋๋จธ์ง ๋ ธ๋๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์๊ฐ ์๋ฒ . ๋ด ํ ๋คํธ์ํฌ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ๊ณ์ธต 3 ์๋ฒ์ ๋๋ค.
NTP์ ๋ค์ํ ๊ตฌํ
NTP์ ์๋ ๊ตฌํ์ ntpd์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ chronyd์ systemd-timesyncd๋ผ๋ ๋ ๊ฐ์ ์๋ก์ด ํญ๋ชฉ์ด ํฉ๋ฅํ์ต๋๋ค. ์ธ ๊ฐ์ง ๋ชจ๋ ๋ก์ปฌ ํธ์คํธ ์๊ฐ์ NTP ์๊ฐ ์๋ฒ์ ๋๊ธฐํํฉ๋๋ค. systemd-timesyncd ์๋น์ค๋ chronyd๋งํผ ์์ ์ ์ด์ง๋ ์์ง๋ง ๋๋ถ๋ถ์ ๋ชฉ์ ์ ์ถฉ๋ถํฉ๋๋ค. RTC๊ฐ ๋๊ธฐํ๋์ง ์์ ๊ฒฝ์ฐ ๋ก์ปฌ ์์คํ ์๊ฐ์ด ์ฝ๊ฐ ๋ณ๋๋ ๋ NTP ์๋ฒ์ ๋๊ธฐํํ๋๋ก ์์คํ ์๊ฐ์ ์ ์ง์ ์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค. systemd-timesync ์๋น์ค๋ ์๊ฐ ์๋ฒ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- Chrony๋ ์ด์ ntpd ์๋น์ค๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ฒ ์๊ฐ ์๋ฒ์ ๋๊ธฐํํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ํญ์ ์๋ํ์ง ์๋ ๋ฉํ์ด๋ ๋ฐ์คํฌํ์ ์ข์ต๋๋ค.
- ํธ์คํธ๊ฐ ์ ์ ๋ชจ๋๋ก ์ ํ๋๊ฑฐ๋ ์ ์ ๋ชจ๋๋ก ์ ํ๋๋ ๊ฒฝ์ฐ ๋๋ ์ฃผํ์ ํธํ์ผ๋ก ์ธํด ํด๋ญ์ด ๋ณ๊ฒฝ๋์ด ๋ฎ์ ๋ถํ์์ ํด๋ญ ์๋๊ฐ ๋๋ ค์ง๋ ๊ฒฝ์ฐ์ ๊ฐ์ ํด๋ญ ๋ณ๋์ ๋ณด์ํ ์ ์์ต๋๋ค.
- ๋ถ์์ ํ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋๋ ๋คํธ์ํฌ ์ ์ฒด์ ๊ด๋ จ๋ ์๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ๋คํธ์ํฌ ์ง์ฐ์ ๊ท์ ํฉ๋๋ค.
- ์ด๊ธฐ ์๊ฐ ๋๊ธฐํ ํ Chrony๋ ์๊ณ๋ฅผ ๋ฉ์ถ์ง ์์ต๋๋ค. ์ด๋ ๋ง์ ์์คํ ์๋น์ค ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด ์์ ์ ์ด๊ณ ์ผ๊ด๋ ์๊ฐ ์ฌ๋กฏ์ ์ ๊ณตํฉ๋๋ค.
- Chrony๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์์ด๋ ์๋ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ก์ปฌ ํธ์คํธ ๋๋ ์๋ฒ๋ฅผ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- Chrony๋ NTP ์๋ฒ ์ญํ ์ ํ ์ ์์ต๋๋ค.
๋ค์ ํ ๋ฒ NTP๋ Chrony ๋๋ systemd-timesyncd๋ฅผ ์ฌ์ฉํ์ฌ Linux ํธ์คํธ์์ ๊ตฌํํ ์ ์๋ ํ๋กํ ์ฝ์ ๋๋ค.
NTP, Chrony ๋ฐ systemd-timesyncd RPM์ ํ์ค Fedora ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. systemd-udev RPM์ Fedora์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋์ง๋ง ์ ํ ์ฌํญ์ธ ์ปค๋ ์ด๋ฒคํธ ๊ด๋ฆฌ์์ ๋๋ค.
XNUMX๊ฐ๋ฅผ ๋ชจ๋ ์ค์นํ๊ณ ์ ํํ ์ ์์ง๋ง ์ด ๊ฒฝ์ฐ ์ถ๊ฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋์ ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Fedora, CentOS ๋ฐ RHEL์ ์ต์ ๋ฆด๋ฆฌ์ค๋ ๊ธฐ๋ณธ ๊ตฌํ์ผ๋ก Chrony๋ก ์ด๋ํ์ผ๋ฉฐ systemd-timesyncd๋ ์์ต๋๋ค. ์ ๋ Chrony๊ฐ ์ ์๋ํ๊ณ NTP ์๋น์ค๋ณด๋ค ๋ ๋์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฉฐ ์์คํ ๊ด๋ฆฌ์๊ฐ ํ์คํ ์ฆ๊ธธ ์ ์๋ ํจ์ฌ ๋ ๋ง์ ์ ๋ณด์ ์ ์ด๋ฅผ ์ ๊ณตํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
NTP ์๋น์ค ๋นํ์ฑํ
NTP ์๋น์ค๊ฐ ํธ์คํธ์์ ์ด๋ฏธ ์คํ ์ค์ผ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ ํํ๊ธฐ ์ ์ ๋นํ์ฑํํด์ผ ํฉ๋๋ค. ๋๋ chronyd๋ฅผ ์คํ ์ค์ด๋ฏ๋ก ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ค์งํ๊ณ ๋นํ์ฑํํ์ต๋๋ค. ํธ์คํธ์์ ์คํ ์ค์ธ NTP ๋ฐ๋ชฌ์ ๋ํด ์ ์ ํ ๋ช ๋ น์ ์คํํฉ๋๋ค.
[root@testvm1 ~]# systemctl disable chronyd ; systemctl stop chronyd
Removed /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@testvm1 ~]#
์๋น์ค๊ฐ ์ค์ง๋๊ณ ๋นํ์ฑํ๋์๋์ง ํ์ธํฉ๋๋ค.
[root@testvm1 ~]# systemctl status chronyd
โ chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:chronyd(8)
man:chrony.conf(5)
[root@testvm1 ~]#
์ถ์ ์ ์ํ ํ์ธ
์์คํ ์๊ณ ๋๊ธฐํ ์ํ๋ฅผ ํตํด NTP ์๋น์ค๊ฐ ์คํ ์ค์ธ์ง ํ์ธํ ์ ์์ต๋๋ค. ์์ง NTP๋ฅผ ์์ํ์ง ์์์ผ๋ฏ๋ก timesync-status ๋ช ๋ น์ ๋ค์์ ์์ํฉ๋๋ค.
[root@testvm1 ~]# timedatectl timesync-status
Failed to query server: Could not activate remote peer.
์ง์ ์ ์ธ ์ํ ์์ฒญ์ ์ค์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธ์๋ ์ต์ ์ด ์๋ timedatectl ๋ช ๋ น์ ๊ธฐ๋ณธ์ ์ผ๋ก status ํ์ ๋ช ๋ น์ ์คํํฉ๋๋ค.
[root@testvm1 ~]# timedatectl status
Local time: Fri 2020-05-15 08:43:10 EDT
Universal time: Fri 2020-05-15 12:43:10 UTC
RTC time: Fri 2020-05-15 08:43:08
Time zone: America/New_York (EDT, -0400)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: yes
Warning: The system is configured to read the RTC time in the local time zone.
This mode cannot be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments. The RTC
time is never updated, it relies on external facilities to maintain it.
If at all possible, use RTC in UTC by calling
'timedatectl set-local-rtc 0'.
[root@testvm1 ~]#
๊ทธ๋ฌ๋ฉด ํธ์คํธ์ ํ์ง ์๊ฐ, UTC ์๊ฐ ๋ฐ RTC ์๊ฐ์ด ์ ๊ณต๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ์์คํ ์๊ฐ์ America/New_York(TZ) ์๊ฐ๋๋ก ์ค์ ๋๊ณ RTC๋ ํ์ง ์๊ฐ๋๋ก ์ค์ ๋๋ฉฐ NTP ์๋น์ค๋ ํ์ฑํ๋์ง ์์ต๋๋ค. RTC ์๊ฐ์ด ์์คํ ์๊ฐ์์ ์ฝ๊ฐ ๋ฒ์ด๋๊ธฐ ์์ํ์ต๋๋ค. ์ด๋ ์๊ณ๊ฐ ๋๊ธฐํ๋์ง ์์ ์์คํ ์ ๊ฒฝ์ฐ ์ ์์ ๋๋ค. ํธ์คํธ์ ์คํ์ ์์ ์์คํ ์ด ๋ง์ง๋ง์ผ๋ก ๋๊ธฐํ๋ ์ดํ ๊ฒฝ๊ณผ๋ ์๊ฐ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
๋ํ RTC์ ํ์ง ์๊ฐ์ ์ฌ์ฉํ๋ค๋ ๊ฒฝ๊ณ ๋ ๋ฐ์์ต๋๋ค. ์ด๋ ์๊ฐ๋ ๋ณ๊ฒฝ ๋ฐ DST ์ค์ ์ ์ ์ฉ๋ฉ๋๋ค. ๋ณ๊ฒฝํด์ผ ํ ๋ ์ปดํจํฐ๋ฅผ ๋๋ฉด RTC๊ฐ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ XNUMX์๊ฐ ๋ด๋ด ์คํ๋๋ ์๋ฒ๋ ๋ค๋ฅธ ํธ์คํธ์ ๊ฒฝ์ฐ ์ด๋ ์ ํ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๋ํ NTP ์๊ฐ ๋๊ธฐํ๋ฅผ ์ ๊ณตํ๋ ๋ชจ๋ ์๋น์ค๋ ์ด๊ธฐ ์์ ๋จ๊ณ์์ ํธ์คํธ์ ์๊ฐ์ ์กฐ์ ํ๋ฏ๋ก ์์์ด ์๋ฃ๋ ํ ์๊ฐ์ด ๋ค์ ์ ํํด์ง๋๋ค.
์๊ฐ๋ ์ค์
์ผ๋ฐ์ ์ผ๋ก ์ค์น ์ ์ฐจ ์ค์ ์๊ฐ๋๋ฅผ ์ง์ ํ๊ณ ๋์ค์ ๋ณ๊ฒฝํ ์์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๋์์ด ๋ ์ ์๋ ๋ช ๊ฐ์ง ๋๊ตฌ๊ฐ ์์ต๋๋ค. Linux๋ ์๊ฐ๋ ํ์ผ์ ์ฌ์ฉํ์ฌ ํธ์คํธ์ ํ์ง ์๊ฐ๋๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ์ด ํ์ผ๋ค์ ๋๋ ํ ๋ฆฌ์ ์์ต๋๋ค. /usr/share/zoneinfo. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด ์๊ฐ๋์ ๋ํด ์์คํ ์ ๋ค์์ ๊ท์ ํฉ๋๋ค. /etc/localtime -> ../usr/share/zoneinfo/America/New_York. ๊ทธ๋ฌ๋ ์๊ฐ๋๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ๊ทธ๋ฌํ ๋ฏธ๋ฌํจ์ ์ ํ์๋ ์์ต๋๋ค.
๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํด๋น ์์น์ ๊ณต์ ์๊ฐ๋ ์ด๋ฆ๊ณผ ํด๋น ๋ช ๋ น์ ์๋ ๊ฒ์ ๋๋ค. ํ์ค ์๊ฐ๋๋ฅผ ๋ก์ค์ค์ ค๋ ์ค๋ก ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
[root@testvm2 ~]# timedatectl list-timezones | column
<SNIP>
America/La_Paz Europe/Budapest
America/Lima Europe/Chisinau
America/Los_Angeles Europe/Copenhagen
America/Maceio Europe/Dublin
America/Managua Europe/Gibraltar
America/Manaus Europe/Helsinki
<SNIP>
์ด์ ์๊ฐ๋๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ๊ธฐ ์ํด date ๋ช ๋ น์ ์ฌ์ฉํ์ง๋ง timedatectl์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
[root@testvm2 ~]# date
Tue 19 May 2020 04:47:49 PM EDT
[root@testvm2 ~]# timedatectl set-timezone America/Los_Angeles
[root@testvm2 ~]# date
Tue 19 May 2020 01:48:23 PM PDT
[root@testvm2 ~]#
์ด์ ํธ์คํธ์ ์๊ฐ๋๋ฅผ ๋ค์ ํ์ง ์๊ฐ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
systemd-timesyncd
systemd timesync ๋ฐ๋ชฌ์ systemd ์ปจํ ์คํธ์์ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด NTP ๊ตฌํ์ ์ ๊ณตํฉ๋๋ค. Fedora ๋ฐ Ubuntu์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก Ubuntu์์๋ง ์์๋ฉ๋๋ค. ๋ค๋ฅธ ๋ฐฐํฌํ์ ๋ํด์๋ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ง์ ํ์ธํ ์ ์์ต๋๋ค.
[root@testvm1 ~]# systemctl status systemd-timesyncd
systemd-timesyncd ๊ตฌ์ฑ
systemd-timesyncd์ ๊ตฌ์ฑ ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. /etc/systemd/timesyncd.conf. ์ด๊ฒ์ ์ด์ NTP ๋ฐ chronyd ์๋น์ค๋ณด๋ค ํ์ฑํ๋ ์ต์ ์ด ์ ์ ๋จ์ํ ํ์ผ์ ๋๋ค. ๋ด Fedora VM์ ์๋ ์ด ํ์ผ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(์ถ๊ฐ ์์ ์์).
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.
[Time]
#NTP=
#FallbackNTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org 2.fedora.pool.ntp.org 3.fedora.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
์ฃผ์ ์ธ์ ํฌํจ๋ ์ ์ผํ ์น์ ์ [์๊ฐ]์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ํ์ ์ฃผ์ ์ฒ๋ฆฌ๋ฉ๋๋ค. ์ด๋ ๊ธฐ๋ณธ๊ฐ์ด๋ฉฐ ๋ณ๊ฒฝํ ์ด์ ๊ฐ ์๋ ํ ๋ณ๊ฒฝํ๋ฉด ์ ๋ฉ๋๋ค. NTP= ์ค์ ์ ์๋ NTP ์๊ฐ ์๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ Fedora๋ ๋์ฒด Fedora ์๊ฐ ์๋ฒ๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค. ๋๋ ๋ณดํต ์๊ฐ ์๋ฒ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
NTP=myntpserver
ํ์์ฑํฌ ์คํ
๋ค์๊ณผ ๊ฐ์ด systemd-timesyncd๋ฅผ ์์ํ๊ณ ํ์ฑํํ ์ ์์ต๋๋ค.
[root@testvm2 ~]# systemctl enable systemd-timesyncd.service
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service โ /usr/lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service โ /usr/lib/systemd/system/systemd-timesyncd.service.
[root@testvm2 ~]# systemctl start systemd-timesyncd.service
[root@testvm2 ~]#
ํ๋์จ์ด ์๊ณ ์ค์
timesyncd๋ฅผ ์คํํ ํ์ ์ํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[root@testvm2 systemd]# timedatectl
Local time: Sat 2020-05-16 14:34:54 EDT
Universal time: Sat 2020-05-16 18:34:54 UTC
RTC time: Sat 2020-05-16 14:34:53
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
์ฒ์์๋ RTC์ ํ์ง ์๊ฐ(EDT)์ ์ฐจ์ด๊ฐ XNUMX์ด ๋ฏธ๋ง์ด๊ณ ๋ค์ ๋ฉฐ์น ๋์ ๋ถ์ผ์น๊ฐ ๋ช ์ด ๋ ์ฆ๊ฐํฉ๋๋ค. RTC์๋ ์๊ฐ๋ ๊ฐ๋ ์ด ์๊ธฐ ๋๋ฌธ์ timedatectl ๋ช ๋ น์ ์ฌ๋ฐ๋ฅธ ์๊ฐ๋๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋น๊ต๋ฅผ ์ํํด์ผ ํฉ๋๋ค. RTC ์๊ฐ์ด ํ์ง ์๊ฐ๊ณผ ์ ํํ ์ผ์นํ์ง ์์ผ๋ฉด ํ์ง ์๊ฐ๋๋ ์ผ์นํ์ง ์์ต๋๋ค.
๋ ๋ง์ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ ์ํด systemd-timesync์ ์ํ๋ฅผ ํ์ธํ๊ณ ๋ค์์ ์ฐพ์์ต๋๋ค.
[root@testvm2 systemd]# systemctl status systemd-timesyncd.service
โ systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-05-16 13:56:53 EDT; 18h ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 822 (systemd-timesyn)
Status: "Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org)."
Tasks: 2 (limit: 10365)
Memory: 2.8M
CPU: 476ms
CGroup: /system.slice/systemd-timesyncd.service
โโ822 /usr/lib/systemd/systemd-timesyncd
May 16 09:57:24 testvm2.both.org systemd[1]: Starting Network Time Synchronization...
May 16 09:57:24 testvm2.both.org systemd-timesyncd[822]: System clock time unset or jumped backwards, restoring from recorded timestamp: Sat 2020-05-16 13:56:53 EDT
May 16 13:56:53 testvm2.both.org systemd[1]: Started Network Time Synchronization.
May 16 13:57:56 testvm2.both.org systemd-timesyncd[822]: Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org).
[root@testvm2 systemd]#
์์คํ ์๊ฐ์ด ์ค์ ๋์ง ์์๊ฑฐ๋ ์ฌ์ค์ ๋์๋ค๋ ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ํ์ธํ์ญ์์ค. Timesync ์๋น์ค๋ ํ์์คํฌํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์คํ ์๊ฐ์ ์ค์ ํฉ๋๋ค. ํ์์คํฌํ๋ timesync ๋ฐ๋ชฌ์ ์ํด ์ ์ง ๊ด๋ฆฌ๋๋ฉฐ ๋๊ธฐํ๊ฐ ์ฑ๊ณตํ ๋๋ง๋ค ์์ฑ๋ฉ๋๋ค.
timedatectl ๋ช ๋ น์ ์์คํ ์๊ณ์์ ํ๋์จ์ด ์๊ณ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ช ๋ น์ค์ ์ ๋ ฅํ ๊ฐ์ผ๋ก๋ง โโ์๊ฐ๊ณผ ๋ ์ง๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. hwclock ๋ช ๋ น์ ์ฌ์ฉํ์ฌ RTC๋ฅผ ์์คํ ์๊ฐ๊ณผ ๋์ผํ ๊ฐ์ผ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
[root@testvm2 ~]# /sbin/hwclock --systohc --localtime
[root@testvm2 ~]# timedatectl
Local time: Mon 2020-05-18 13:56:46 EDT
Universal time: Mon 2020-05-18 17:56:46 UTC
RTC time: Mon 2020-05-18 13:56:46
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
--localtime ์ต์ ์ ํ๋์จ์ด ์๊ณ์ UTC๊ฐ ์๋ ํ์ง ์๊ฐ์ ํ์ํ๋๋ก ์ง์ํฉ๋๋ค.
RTC๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
NTP ๊ตฌํ์ ์์ ์๊ฐ์ ์์คํ ์๊ณ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ RTC์ธ๊ฐ? ์ด๊ฒ์ ์ ์ ์ผ๋ก ์ฌ์ค์ด ์๋๋๋ค. ์ด๊ฒ์ ์๊ฐ ์๋ฒ์ ๋ํ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์์คํ ์ด ํญ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ก์ธ์คํ ์ ์๋ ๊ฒ์ ์๋๋ฏ๋ก ํ๋์จ์ด ์๊ณ๋ Linux์์ ์์คํ ์๊ฐ์ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์ค์๊ฐ๊ณผ ๋ค๋ฅผ ์ ์์ง๋ง ์๋์ผ๋ก ์๊ฐ์ ์ค์ ํ๋ ๊ฒ๋ณด๋ค ๋ซ์ต๋๋ค.
๊ฒฐ๋ก
์ด ๋ฌธ์์์๋ ๋ ์ง, ์๊ฐ ๋ฐ ์๊ฐ๋๋ฅผ ์กฐ์ํ๊ธฐ ์ํ ๋ช ๊ฐ์ง ๋๊ตฌ๋ฅผ ๊ฒํ ํ์ต๋๋ค. systemd-timesyncd ๋๊ตฌ๋ ๋ก์ปฌ ํธ์คํธ์ ์๊ฐ์ NTP ์๋ฒ์ ๋๊ธฐํํ ์ ์๋ NTP ํด๋ผ์ด์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ systemd-timesyncd๋ ์๋ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ์ง ์์ผ๋ฏ๋ก ๋คํธ์ํฌ์ NTP ์๋ฒ๊ฐ ํ์ํ ๊ฒฝ์ฐ Chrony์ ๊ฐ์ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ์ฌ ์๋ฒ ์ญํ ์ ํด์ผ ํฉ๋๋ค.
๋ด ๋คํธ์ํฌ์ ๋ชจ๋ ์๋น์ค์ ๋ํด ๋จ์ผ ๊ตฌํ์ ์ ํธํ๋ฏ๋ก Chrony๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ก์ปฌ NTP ์๋ฒ๊ฐ ํ์ํ์ง ์๊ฑฐ๋ Chrony๋ฅผ ์๋ฒ๋ก ์ฌ์ฉํ๊ณ systemd-timesyncd๋ฅผ SNTP ํด๋ผ์ด์ธํธ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๋ง์์ ๋ค์ง ์๋ ๊ฒฝ์ฐ. ๊ฒฐ๊ตญ systemd-timesyncd์ ๊ธฐ๋ฅ์ ๋ง์กฑํ๋ค๋ฉด Chrony์ ์ถ๊ฐ ๊ธฐ๋ฅ์ ํด๋ผ์ด์ธํธ๋ก ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ฐธ๊ณ ์ฌํญ: NTP๋ฅผ ๊ตฌํํ๊ธฐ ์ํด systemd ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ํ์๋ ์์ต๋๋ค. ์ด์ ๋ฒ์ ์ ntpd, Chrony ๋๋ ๋ค๋ฅธ NTP ๊ตฌํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฒฐ๊ตญ systemd๋ ์๋ง์ ์๋น์ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ์ ํ ์ฌํญ์ด๋ฏ๋ก ๋๊ณ ๋์ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๊ฑฐ๋ํ ๋ชจ ๋๋ฆฌ ์ ๊ดด๋ฌผ์ด ์๋๋๋ค. systemd๋ ๊ทธ ์ผ๋ถ๊ฐ ๋ง์์ ๋ค์ง ์์ ์๋ ์์ง๋ง ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํฉ๋๋ค.
๋๋ systemd์ NTP ๊ตฌํ์ ์ข์ํ์ง๋ง ๋ด ์๊ตฌ ์ฌํญ์ ๋ ์ ํฉํ๊ธฐ ๋๋ฌธ์ Chrony๋ฅผ ์ ํธํฉ๋๋ค. ๋ฆฌ๋ ์ค์ผ, ๋ฒ ์ด๋น -)
๊ด๊ณ ์ ๊ถ๋ฆฌ์
VDSina ์ ๊ณต
์ถ์ฒ : habr.com