Giới thiệu
Giao thức NTP (Network Time Protocol – Giao thức đồng bộ thời gian mạng) là một giao thức để đồng bộ đồng hồ của các hệ thống máy tính thông qua mạng dữ liệu chuyển mạch gói với độ trễ biến đổi. Giao thức này được thiết kế để tránh ảnh hưởng của độ trễ biến đổi bằng cách sử dụng bộ đệm jitter. NTP cũng là tên gọi của phần mềm được triển khai trong dự án Dịch vụ NTP Công cộng (NTP Public Services Project). Xuất phát từ nhu cầu thời gian sử dụng cho Document, email, log file… Tất cả mọi thứ trên máy chủ đều dựa vào việc duy trì thời gian hệ thống chính xác và đó là mục đích của NTP
Cài đặt
Để cài đặt NTP bạn cần đăng nhập vào server với quyền root và có kết nối internet để cài đặt một số gói cần thiết. Ở đây mình sử dụng CentOS 7
Trong bài viết này mình sẽ sử dụng chronyd để quản lý và đồng bộ hóa thời gian hệ thống. Mặc định chronyd không được cài đặt trên bản CentOS Minimal
1. Login vào server với quyền root, cài đặt chronyd
yum install -y chronyd
Khởi động chronyd
systemctl start chronyd
Kiểm tra trạng thái chronyd
systemctl status chronyd
Khởi động chronyd cùng hệt thống
systemctl enabled chronyd
2. Kiểm tra hệ thống đã sử dụng NTP để đồng bộ thời gian
timedatectl | grep "NTP synchronized"
Sau khi kiểm tra nếu NTP synchronized: no, ta cần bật NTP bằng lệnh
timedatectl set-ntp yes
3. Cấu hình chronyd
Mặc định chronyd sẽ sử dụng máy chủ public để có thể truy cập vào thời gian hệ thống. Để tối ưu hóa thời gian hệ thống chúng ta cần thay đổi một vài thông số, để cấu hình ta cần chỉnh sửa file chrony.conf
nano /etc/chrony.conf
Trong nội dung file, ta cần thay thế một số thông số sau
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
Lưu ý: Bạn có thể truy cập website http://www.pool.ntp.org/ để kiểm tra các máy chủ theo khu vực địa lý hiện tại. Sử dụng nhiều máy chủ sẽ tăng độ chính xác khi đồng bộ thời gian
Ở đây mình sử dụng máy chủ khu vực châu á
server 0.asia.pool.ntp.org server 1.asia.pool.ntp.org server 2.asia.pool.ntp.org server 3.asia.pool.ntp.org
Sau khi chỉnh sửa, ta cần khởi động lại chronyd
systemctl restart chronyd
Để kiểm tra nguồn thời gian mà chrony sử dụng để đồng bộ thời gian dùng lệnh
chronyc sources
Thông thường thời gian được sử dụng là UTC hoặc giờ thế giới, tức là thời gian chuẩn được sử dụng trên toàn thế giới. Từ đó ta cần tính được local time sử dụng múi giờ (time zone). Để tìm đúng múi giờ ta sử dụng lệnh sau
timedatectl list-timezones
Sau khi đã tìm thấy múi giờ, sử dụng lệnh sau để đặt, trong ví dụ này là TPHCM
timedatectl set-timezone Asia/Ho_Chi_Minh
Kiểm tra lại local time bằng lệnh
timedatectl | grep "Local time"
Sau cùng nếu mọi thứ đã chính xác, chúng ta có thể đồng bộ thời gian của phần cứng bằng lệnh
hwclock --systohc