เวลาเป็นสิ่งสำคัญไม่ใช่แค่มนุษย์เท่านั้น เครื่องคอมพิวเตอร์โดยเฉพาะที่ทำหน้าที่เป็นเซิร์ฟเวอร์ เวลาในเครื่องสมควรเป็นเวลามาตรฐาน ตรงกับเครื่องอื่นๆ ที่ทำงานร่วมกัน
วิธีหนึ่งที่นิยมคือ ใช้โปรแกรมที่รองรับโปรโตคอล NTP ในการปรับเวลาของเครื่องให้ตรงกับ NTP Server ที่ใช้เป็นเวลามาตรฐานโลก ซึ่งเปิดบริการให้เราสามารถคอนฟิกเครื่องเราให้ไปเทียบเวลาได้
ใน CentOS 7 หรือ Red Hat 7 Enterprise ทาง Red Hat แนะนำให้ใช้ chronyd เพราะมีคุณสมบัติหลายอย่างที่ดีกว่า ntpd โดยเฉพาะการปรับเวลาให้ตรงได้เร็วกว่า
ในที่นี้ขออธิบายการติดตั้งและคอนฟิก chrony เพื่อให้เครื่องของเรา sync เวลากับ NTP Server เพื่อให้มีเวลามาตรฐานสากลได้
ตั้งค่า Timezone ให้ถูกต้อง
ก่อนที่จะคอนฟิก ntp เพื่อให้เครื่องมีเวลาตรงกับมาตรฐาน ต้องตั้งค่า timezone ของเครื่องให้ถูกต้องก่อน
บน CentOS 7 สามารถใช้คำสั่ง timedatectl เพื่อดูวันเวลา ค่า timezone ที่เลือกไว้
[alice@cent7 ~]$ timedatectl
Local time: Sat 2015-06-27 22:30:08 SGT
Universal time: Sat 2015-06-27 14:30:08 UTC
Timezone: Asia/Singapore (SGT, +0800)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
หากตอนติดตั้ง CentOS 7 เลือก Timezone ไว้ไม่ถูกต้อง เช่นเลือกไว้เป็น Asia/Singapore ซึ่งเวลาจะเร็วกว่าประเทศไทย 1 ชั่วโมง
หากต้องการเปลี่ยนให้เป็นเวลาไทย ซึ่งใช้ชื่อ Timezone: Asia/Bangkok สามารถใช้คำสั่ง timedatectl ระบุออปชัน set-timezone ตามด้วยชื่อ Timezone ที่ต้องการ
การเปลี่ยนค่าต้องใช้ root หรือ sudo เพื่อใช้สิทธิเป็น root
[root@cent7 ~]# timedatectl set-timezone Asia/Bangkok
ลองใช้คำสั่ง timedatectl อีกครั้ง เพื่อดูค่าคอนฟิก Timezone ที่เปลี่ยนไป
[alice@cent7 ~]$ timedatectl
Local time: Sat 2015-06-27 21:35:35 ICT
Universal time: Sat 2015-06-27 14:35:35 UTC
Timezone: Asia/Bangkok (ICT, +0700)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
ติดตั้งและคอนฟิก chrony
ในหน้าจอติดตั้ง CentOS 7 Installation จะมีหน้าจอให้เลือกคอนฟิก NTP ได้ (ภายใต้หัวข้อ DATE & TIME) แต่ต้องคอนฟิกค่าในส่วน NETWORK & HOSTNAME ให้ถูกต้องก่อนเพื่อให้เครื่องสามารถเชื่อมต่อกับ NTP Server ได้
ตัวอย่างหน้าจอคอนฟิก NTP ตอนติดตั้ง CentOS 7 คลิกปุ่มข้างคำว่า Network Time ให้เป็นค่า ON
กดปุ่มรูปเครื่องมือ เพื่อดูรายชื่อ NTP Servers
หรือหากไม่ได้เลือกคอนฟิก NTP ตอนติดตั้ง CentOS 7 ไว้ สามารถติดตั้งเองภายหลังได้
ใช้คำสั่ง yum เพื่อติดตั้ง chrony
[root@cent7 ~]# yum install chrony
ไฟล์คอนฟิกของ chrony คือ /etc/chrony.conf ดีฟอลต์จากการติดตั้ง จะมีรายชื่อเซิร์ฟเวอร์ NTP Server ที่เปิดบริการสาธารณะ ให้เราไปเทียบเวลาได้
[root@cent7 ~]# cat /etc/chrony.conf # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst ...
คอนฟิกดีฟอลต์สามารถใช้งานได้เลย แต่เครื่องเราต้องต่ออินเทอร์เน็ต เพื่อติดต่อกับเซิร์ฟเวอร์เหล่านี้ได้
ใช้คำสั่ง systemctl ระบุออปชัน start เพื่อรัน chronyd
[root@cent7 ~]# systemctl start chronyd
ใช้คำสั่ง systemctl ระบุออปชัน status เพื่อดูสถานะการรัน chronyd
[root@cent7 ~]# systemctl status chronyd chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled) Active: active (running) since Sat 2015-06-27 21:46:31 ICT; 1min 48s ago Process: 2583 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers (code=exited, status=0/SUCCESS) Process: 2580 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 2582 (chronyd) CGroup: /system.slice/chronyd.service └─2582 /usr/sbin/chronyd -u chrony Jun 27 21:46:31 cent7.example.com systemd[1]: Starting NTP client/server... Jun 27 21:46:31 cent7.example.com chronyd[2582]: chronyd version 1.29.1 starting Jun 27 21:46:31 cent7.example.com chronyd[2582]: Linux kernel major=3 minor=10 patch=0 Jun 27 21:46:31 cent7.example.com chronyd[2582]: hz=100 shift_hz=7 freq_scale=1.00000000 nominal_tick=10000...ll=2 Jun 27 21:46:31 cent7.example.com chronyd[2582]: Generated key 1 Jun 27 21:46:31 cent7.example.com systemd[1]: Started NTP client/server. Jun 27 21:46:37 cent7.example.com chronyd[2582]: Selected source 203.158.118.8 Jun 27 21:46:37 cent7.example.com chronyd[2582]: System clock wrong by 52.475834 seconds, adjustment started Jun 27 21:47:29 cent7.example.com chronyd[2582]: System clock was stepped by 52.476 seconds
เราสามารถใช้คำสั่ง chronyc ระบุออปชัน tracking เพื่อดูรายละเอียดการตั้งค่าเวลา
[alice@cent7 ~]$ chronyc tracking Reference ID : 203.158.118.8 (x220.ip13.me) Stratum : 3 Ref time (UTC) : Sat Jun 27 14:49:40 2015 System time : 0.000608020 seconds slow of NTP time Last offset : -0.000914266 seconds RMS offset : 1.721436381 seconds Frequency : 27888.445 ppm slow Residual freq : 0.022 ppm Skew : 13.183 ppm Root delay : 0.029936 seconds Root dispersion : 0.019448 seconds Update interval : 64.2 seconds Leap status : Normal
จากตัวอย่างด้านบน เครื่องของเราจะใช้เครื่องเซิร์ฟเวอร์ 203.158.118.8 (x220.ip13.me) เป็นมาตรฐาน (Reference) ในการปรับเวลาให้ตรง โดยขณะที่รันคำสั่ง เวลาของเครื่องเรา (System time) จะช้ากว่า (slow of NTP time) 0.000608020 วินาที