Hướng dẫn cấu hình NTP trên VMware ESXi và vCenter: Trị dứt điểm lỗi SSO và chứng chỉ SSL

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

Bối cảnh: Cơn ác mộng từ 7 phút lệch giờ

Vận hành cụm VMware production cho ngân hàng hay fintech, điều khiến anh em kỹ sư đau đầu nhất nhiều khi không phải hỏng ổ cứng hay đứt cáp quang. Nó đến từ một thứ ngỡ như vô hại: lệch giờ hệ thống.

Sáng thứ Hai, toàn bộ admin không thể đăng nhập vCenter. Giao diện vSphere Client trơ trơ báo “Invalid credentials” dù gõ mật khẩu root chuẩn từng ký tự. Trình duyệt đồng loạt chặn truy cập với lỗi “Signing certificate is not valid yet”. Toàn bộ backup định kỳ qua Veeam dừng đột ngột. Tác vụ vMotion giữa các host cũng fail sạch.

Khi kiểm tra log, nguyên nhân lộ diện: ESXi host chứa máy ảo vCenter Server Appliance (VCSA) chạy nhanh hơn Domain Controller đúng 7 phút 12 giây. Trong kiến trúc VMware, cơ chế xác thực Kerberos và SAML Token của STS (Security Token Service) chỉ chấp nhận mức chênh lệch tối đa 300 giây (5 phút). Lệch quá ngưỡng này, toàn bộ ticket trao đổi giữa các service lập tức bị hủy.

Hạ tầng ảo hóa không có NTP chuẩn xác sẽ kéo theo hàng loạt rủi ro dây chuyền:

  • Xác thực vCenter SSO, Active Directory và các giải pháp Identity Provider (IdP) gãy hoàn toàn.
  • Chứng chỉ SSL/TLS bị vô hiệu hóa vì hệ thống tưởng nhầm chứng chỉ chưa đến kỳ hiệu lực hoặc đã hết hạn.
  • Log giữa các ESXi host và vCenter lệch mốc thời gian (timestamp). Khi cần truy vết sự cố hay audit bảo mật, việc khớp nối log gần như bất khả thi.
  • Tính năng vSphere HA và DRS đưa ra quyết định sai lệch do nhận diện sai nhịp heartbeat giữa các node.

Chuẩn bị trước khi triển khai

Trước khi gõ lệnh, bạn cần xác định rõ nguồn thời gian và thông luồng mạng.

1. Mô hình nguồn thời gian (NTP Topology)

  • Môi trường Domain: Trỏ toàn bộ ESXi và vCenter về trực tiếp PDC Emulator (Domain Controller nắm role PDC). PDC này sẽ đồng bộ ra nguồn ngoài.
  • Môi trường Standalone: Khai báo ít nhất 3 nguồn NTP Server độc lập để chống split-brain. Ưu tiên Core Switch/Router nội bộ Lớp 3, kết hợp public pool như time.google.com, time.cloudflare.com hoặc vn.pool.ntp.org.

2. Thông luồng Firewall

NTP chạy trên cổng UDP 123. Hãy kiểm tra các Access Control List (ACL) và tường lửa giữa dải Management Network của VMware tới NTP Server. Chiều traffic đi và về đều phải thông suốt.

Test nhanh kết nối UDP 123 từ máy trạm quản trị:

nc -zvu 192.168.10.1 123

Cấu hình chi tiết

1. Cấu hình NTP trên VMware ESXi Host qua SSH

Thao tác trên giao diện ESXi Host Client khá đơn giản. Tuy nhiên, khi quản lý cluster hàng chục host, dùng CLI sẽ nhanh và chuẩn hóa hơn nhiều.

Bước 1: SSH vào ESXi host

ssh [email protected]

Bước 2: Kiểm tra thời gian và cấu hình hiện tại

# ESXi luôn hiển thị giờ hệ thống theo chuẩn UTC
esxcli system time get

# Xem danh sách NTP server đang cấu hình
esxcli system ntp get

Bước 3: Mở rule firewall cho NTP Client

esxcli network firewall ruleset set --ruleset-id=ntpClient --enabled=true
esxcli network firewall ruleset list | grep ntpClient

Bước 4: Khai báo NTP server và bật service

# Thêm danh sách server (ngăn cách bằng dấu phẩy)
esxcli system ntp set --servers="192.168.10.1,time.google.com,vn.pool.ntp.org"

# Đặt policy khởi động cùng host và bật service
esxcli system ntp set --enabled=true
/etc/init.d/ntpd restart

2. Cấu hình NTP trên vCenter Server Appliance (VCSA)

Trên vCenter 7.x và 8.x, bạn không chỉnh giờ trong vSphere Client. Việc này phải thực hiện qua giao diện quản trị VAMI hoặc Appliance Shell.

Cách 1: Thao tác qua Web VAMI (Khuyên dùng)

  1. Mở trình duyệt, vào port 5480: https://<vcenter-ip>:5480.
  2. Đăng nhập tài khoản root của appliance.
  3. Chọn mục Time ở menu trái.
  4. Tại khung Time synchronization, bấm Edit.
  5. Đổi Mode từ Host sang NTP. Điền IP hoặc FQDN của NTP server: 192.168.10.1, time.google.com.
  6. Bấm Save.

Lưu ý thực chiến: Tuyệt đối không chọn mode Host (đồng bộ qua VMware Tools từ ESXi) nếu cả ESXi và VCSA đều đang tự trỏ ra NTP ngoài. Việc sync chồng chéo này sẽ tạo vòng lặp bù trừ thời gian, làm đồng hồ của vCenter giật lùi liên tục.

Cách 2: Cấu hình qua Appliance Shell

SSH trực tiếp vào VCSA bằng tài khoản root. Tại dấu nhắc Command>, chạy lệnh:

# Kiểm tra mode hiện tại
timesync.get

# Chuyển mode sang NTP và khai báo server
timesync.set --mode NTP
timesync.set --servers "192.168.10.1,time.google.com"

# Xác nhận lại cấu hình
timesync.get

Kiểm tra & Giám sát sau cấu hình

Cấu hình xong chưa phải là hết. Hãy dành 3 phút kiểm tra xem tiến trình đồng bộ có thực sự nhận dữ liệu hay không.

1. Đo đạc độ lệch trên ESXi host

Chạy lệnh kiểm tra bảng peer trên ESXi:

[root@esx-node01:~] ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.10.1    10.0.0.1         2 u   18   64  377    0.412   -0.035   0.021
+time.google.com 216.239.35.4     1 u   42   64  377   22.180    0.104   0.318
+vn.pool.ntp.org 133.243.3.8      2 u   11   64  377   14.650   -0.180   0.245

Ý nghĩa các thông số quan trọng cần nhìn:

  • Dấu *: NTP server chính đang được hệ thống lấy mốc chuẩn.
  • Dấu +: Server phụ tin cậy, tự động thế chỗ nếu nguồn chính mất kết nối.
  • Cột reach = 377: Mã bát phân (octal) chứng tỏ 8 lần truy vấn gần nhất đều nhận được phản hồi. Nếu giá trị là 0, cổng UDP 123 đang tắc.
  • Cột offset: Độ lệch thực tế tính bằng mili-giây (ms). Con số này dưới 10ms là hoàn toàn yên tâm chạy production.

2. Kiểm tra trên vCenter

Vào Bash shell của VCSA và kiểm tra daemon hệ thống:

timedatectl status

Đảm bảo hai tham số hiển thị đúng: System clock synchronized: yes và NTP service: active.

3. Thiết lập cảnh báo chủ động

Đừng để sự cố xảy ra mới đi dò tìm:

  • Tạo một Alarm Definition trên vCenter theo dõi sự kiện Host time out of sync. Cài đặt ngưỡng bắn cảnh báo qua Telegram/Email ngay khi host lệch trên 5 giây.
  • Nếu phát hiện một host thường xuyên trôi giờ nhanh dù NTP vẫn chạy, hãy kiểm tra lại pin CMOS trên mainboard server vật lý hoặc update BIOS/firmware mới nhất từ hãng.
Share: