本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 EC2 執行個體的時間參考以使用本機 Amazon Time Sync Service
Amazon Time Sync Service 提供數種方法,讓您的 Amazon EC2 執行個體同步至本機時間來源。首先,任何 Amazon EC2 執行個體都可以透過網路時間通訊協定 (NTP) 連線到本機時間來源。此外,增強型 Amazon Time Sync Service 為支援的 Amazon EC2 執行個體提供更精確的本機時間來源。在具有 precision-time策略的置放群組中啟動支援的執行個體,以達到更精確的 NTP 來源。最後,在精確時間置放群組中啟動的 Linux 執行個體可存取 PTP 硬體時鐘 (PHC) 裝置,並能夠擷取硬體封包時間戳記。
任何 Amazon EC2 執行個體都可以存取本機 NTP 來源。您可以透過連結本機 IP 地址到達 NTP 來源,這會將此流量限制在您的 VPC 內,而不需要特定的 VPC 組態變更。您的 AMI 可能已將時鐘同步常駐程式設定為預設使用本機 NTP 來源。此 NTP 來源可透過下列 IP 地址使用:
-
IPv4:
169.254.169.123 -
IPv6:
fd00:ec2::123(僅在 Nitro 型執行個體上存取。)
支援的 Amazon EC2 執行個體可存取增強型 Amazon Time Sync Service。若要存取增強型 Amazon Time Sync Service,請使用 precision-time策略在置放群組中啟動支援的執行個體。如果您使用 NTP 連結本機 IP 地址,則不需要將執行個體設定為受益於此改進。任何作業系統都可以使用此增強功能。您可以使用您選擇的 NTP 用戶端,驗證您是否受益於增強型 NTP 來源。
在支援的執行個體系列上執行的 Linux 型 AMIs 具有從 PHC 裝置取得時間的額外選項。ENA 驅動程式讓此裝置可供使用。增強版 NTP 來源和 PHC 裝置都使用相同的高度準確時間來源。對 PHC 時間來源的存取已最佳化,因此可更準確地同步 Amazon EC2 執行個體。
考量事項
NTP 時間來源提供 UTC 時間範圍的閏點貼圖檢視,而 PHC 不會貼圖時間。如需詳細資訊,請參閱閏秒。
只有 Linux 執行個體可以存取本機 PTP 硬體時鐘。Windows 執行個體必須使用 NTP 來存取增強型 Amazon Time Sync Service。
使用連結本機位址的服務有每秒 1024 個封包 (PPS) 限制。此限制包括 Route 53 Resolver DNS 查詢、執行個體中繼資料服務 (IMDS) 請求、Amazon Time Sync Service Network Time Protocol (NTP) 請求和 Windows Licensing Service (適用於 Microsoft Windows 型執行個體)
請求的彙總。
目錄
存取 Amazon Time Sync Service 的 IPv4 端點
您的 AMI 可能依預設已設定 Amazon Time Sync Service。否則,請使用下列程序,將您的執行個體設定為透過 IPv4 端點使用本機 Amazon Time Sync Service。
如需對問題進行故障診斷的協助,請參閱針對 Linux 執行個體上的 NTP 同步問題進行故障診斷
存取 Amazon Time Sync Service 的 IPv6 端點
本節說明如要設定執行個體以透過 IPv6 端點使用本機 Amazon Time Sync Service,步驟與 存取 Amazon Time Sync Service 的 IPv4 端點 所述有何不同。它不會說明整個 Amazon Time Sync Service 組態程序。
IPv6 端點僅在 Nitro 型執行個體上可供存取。
我們不建議同時使用 IPv4 和 IPv6 端點項目。IPv4 和 IPv6 NTP 封包來自您的執行個體的相同本機伺服器。同時設定 IPv4 和 IPv6 端點是不必要的做法,而且不會改善執行個體的時間準確性。
存取增強型 Amazon Time Sync Service
增強型 Amazon Time Sync Service 為支援的 Amazon EC2 執行個體提供更準確的本機時間來源。在具有precision-time策略的置放群組中啟動的執行個體可以存取這些本機來源。對於需要更準確時間的應用程式,我們建議從連結本機 NTP 來源或 Linux 執行個體上的 PTP 硬體時鐘 (PHC) 裝置進行精確的時間置放群組。當您在精確時間置放群組中啟動執行個體時, 會將執行個體 AWS 放在支援硬體上,並直接存取 AWS 基礎設施中的高精確時間來源。
主要優點
-
預設已改善 NTP 來源 — 如果您使用如上節所述的 NTP 連結本機 IP 地址,您的執行個體可以立即存取增強型本機 NTP 時間來源。
-
微秒準確時鐘同步 — 將您的 Amazon EC2 Linux 執行個體設定為使用 PTP 硬體時鐘裝置,並實現微秒準確時鐘同步。
-
簡化部署:單一置放策略可確保所有執行個體都具有精確的時間功能。
-
硬體封包時間戳記 — 存取網路測量的低階封包時間戳記。
-
無需額外費用 — 無需額外費用即可使用精確時間置放群組。
規則與限制
-
精確時間置放群組適用於所有 AWS 商業區域。
-
精確時間置放群組支援下列 Gen7 和更新版本的 Amazon EC2 執行個體系列:
-
一般用途:M7a、M7g、M7g-flex、M7gd、M7i、M7i-flex、M8a、M8g、M8g-flex
-
運算最佳化:C7a、C7gd、C7i、C7i-flex、C8g、C8g-flex、C8gd
-
記憶體最佳化:R7a、R7g、R7i、R7id、R8g、X8adez、X8adz-3tb、X8adz-6tb、X8adzs、X8aedez、X8aedz-3tb、X8aedz-6tb、X8aez、X8az、X8g、X8ge
-
儲存最佳化:I8g、I8ge
-
-
如果您在精確時間置放群組中啟動或啟動執行個體,且硬體不足,無法存取增強型 Amazon Time Sync Service,則請求會失敗。
-
如果您在精確的時間置放群組中停止執行個體,然後再次啟動它,它仍會在置放群組中執行。不過,如果沒有足夠的硬體來提供增強型 Amazon Time Sync Service 的存取權,則啟動可能會失敗。
-
Amazon EC2 會持續新增支援增強型 Amazon Time Sync Service 的硬體。如果您的請求因容量不足而失敗,請稍後重試或嘗試不同的可用區域。如需詳細資訊,請參閱對 Amazon EC2 執行個體啟動問題進行疑難排解。
-
適用置放群組的規則和限制。如需詳細資訊,請參閱Amazon EC2 執行個體的置放群組
建立精確的時間置放群組
您可以使用 AWS CLI、 AWS 管理主控台或 AWS SDKs,透過指定 precision-time策略來建立精確的時間置放群組。
使用 AWS CLI
執行以下命令:
aws ec2 create-placement-group \ --group-namemy-precision-time-pg\ --strategy precision-time
命令會傳回您在建立容量保留時使用的置放群組 ARN,以及您在啟動執行個體和連結置放群組時使用的群組名稱或群組 ID。
啟動執行個體
建立精確時間置放群組之後,請在啟動執行個體以存取增強型 Amazon Time Sync Service 時指定該群組:
aws ec2 run-instances \ --image-idami-0abcdef1234567890\ --instance-typer7g.2xlarge\ --placement GroupId=pg-0aaa1111111111111
驗證對增強型 Amazon Time Sync Service 的存取
在精確的時間置放群組中啟動執行個體後,您會受益於增強的 NTP 時間來源。
例如,如果您在執行個體上使用 chronyd 協助程式,您可以驗證 NTP 時間來源現在稱為 Stratum 1,並已改善時鐘準確度指標:
[ec2-user ~]$chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 169.254.169.123 1 4 377 3 +3477ns[+4689ns] +/- 91us
確認時間同步指標是否由 chrony 回報。
[ec2-user ~]$chronyc tracking
Reference ID : A9FEA97B (169.254.169.123)
Stratum : 2
Ref time (UTC) : Wed May 06 01:33:43 2026
System time : 0.000000276 seconds fast of NTP time
Last offset : +0.000000331 seconds
RMS offset : 0.000001929 seconds
Frequency : 2.870 ppm fast
Residual freq : +0.000 ppm
Skew : 0.031 ppm
Root delay : 0.000107584 seconds
Root dispersion : 0.000036476 seconds
Update interval : 16.2 seconds
Leap status : Normal
存取 PTP 硬體時鐘 (PHC)
PTP 硬體時鐘 (PHC) 是 AWS Nitro 系統的一部分。其可在支援在精確時間置放群組中啟動的裸機和虛擬化 Amazon EC2 執行個體上直接存取。PHC 裝置目前只能在 Linux 執行個體上存取。下列各節說明如何在 Linux 執行個體上設定和驗證 PHC 裝置。
要求
-
在支援的作業系統上安裝 ENA 驅動程式 2.10.0 版或更新版本。
-
執行 Linux 的 Amazon EC2 執行個體。如需支援作業系統的詳細資訊,請參閱 GitHub 上的驅動程式先決條件
。 -
在精確時間置放群組中啟動的 Amazon EC2 執行個體 (請參閱 存取增強型 Amazon Time Sync Service)。
注意
在以下區域和特定執行個體系列中,增強型 Amazon Time Sync Service 和 PHC 裝置無需精確的時間置放群組即可存取。為了獲得最佳體驗,建議您改為在精確置放群組中啟動 Amazon EC2 執行個體。
-
支援傳統存取 AWS 區域:美國東部 (維吉尼亞北部)、美國東部 (俄亥俄)、亞太區域 (馬來西亞)、亞太區域 (泰國)、亞太區域 (東京) 和歐洲 (斯德哥爾摩)
-
舊版存取支援的本地區域:美國東部 (紐約市)
-
舊版存取支援的執行個體系列:
-
一般用途:M7a、M7g、M7i
-
記憶體最佳化:R7a、R7g、R7i
-
儲存最佳化:I8g、I8ge
-
使用 PHC 支援編譯和啟用 ENA 驅動程式
請一律檢閱 GitHub 上 ENA 驅動程式文件中
開始之前,請確定您的執行個體符合 要求。
使用 PHC 支援編譯和啟用 ENA 驅動程式
-
安裝先決條件。
[ec2-user ~]$sudo yum update[ec2-user ~]$sudo yum install kernel-devel-$(uname -r) git[ec2-user ~]$sudo reboot -
載入所需的 ptp 模組。
[ec2-user ~]$sudo modprobe ptp -
擷取最新的 ENA 驅動程式版本 (2.10.0 版或更新版本)。
[ec2-user ~]$git clone https://github.com/amzn/amzn-drivers.git /tmp/amzn-drivers -
ena.ko使用 PHC 支援建置 ENA 驅動程式。[ec2-user ~]$cd /tmp/amzn-drivers/kernel/linux/ena[ec2-user ~]$ENA_PHC_INCLUDE=1 make -
重新載入 ENA 驅動程式並啟用 PHC 裝置。
[ec2-user ~]$sudo rmmod ena && sudo insmod ena.ko phc_enable=1 -
驗證載入的 ENA 驅動程式具有 PHC 支援。
[ec2-user ~]$modinfo ena | grep -E "phc_enable"parm: phc_enable:Enable PHC. -
驗證是否已使用 ENA 驅動程式啟用 PHC 支援。
[ec2-user ~]$cat /sys/module/ena/parameters/phc_enable1
如需在重新啟動時安裝驅動程式和啟用 phc_enable 選項的說明,請參閱 GitHub 上的 ENA 驅動程式 README
驗證 PTP 裝置組態
確認 ENA PTP 硬體時鐘裝置顯示在執行個體上。
[ec2-user ~]$for file in /sys/class/ptp/*; do echo -n "$file: "; cat "$file/clock_name"; done
預期的輸出結果
/sys/class/ptp/ptp<index>: ena-ptp-<PCI slot>
其中:
-
為核心註冊的 PTP 硬體時鐘索引。index -
為 ENA 乙太網路控制器 PCI 插槽。此插槽與PCI slotlspci | grep ENA中顯示的插槽相同。
範例輸出
/sys/class/ptp/ptp0: ena-ptp-05
如果 ena-ptp- 不在輸出中,表示 ENA 驅動程式未正確安裝。檢閱 中的步驟使用 PHC 支援編譯和啟用 ENA 驅動程式。<PCI slot>
設定 PTP 符號連結
PTP 裝置通常命名為 /dev/ptp0、/dev/ptp1 等,其索引取決於硬體初始化順序。建立符號連結可確保 chrony 等應用程式能一致參考正確的裝置,不受索引變更影響。
最新的 Amazon Linux 2023 AMI 包含建立 /dev/ptp_ena 符號連結的 udev 規則,指向與 ENA 主機相關聯的正確 /dev/ptp 項目。
首先,執行下列命令,檢查符號連結是否存在。
[ec2-user ~]$ls -l /dev/ptp*
範例輸出
crw------- 1 root root 245, 0 Jan 31 2025 /dev/ptp0
lrwxrwxrwx 1 root root 4 Jan 31 2025 /dev/ptp_ena -> ptp0
其中:
-
/dev/ptp為 PTP 裝置的路徑。<index> -
/dev/ptp_ena為固定的符號連結,指向同一個 PTP 裝置。
如果/dev/ptp_ena符號連結存在,請跳至 設定 chronyd 協助程式以使用 PHC 裝置。若遺失,請執行下列動作:
建立 PTP 符號連結
-
新增下列
udev規則。[ec2-user ~]$echo "SUBSYSTEM==\"ptp\", ATTR{clock_name}==\"ena-ptp-*\", SYMLINK += \"ptp_ena\"" | sudo tee -a /etc/udev/rules.d/53-ec2-network-interfaces.rules -
透過重新啟動執行個體或執行下列命令,重新載入
udev規則。[ec2-user ~]$sudo udevadm control --reload-rules && sudo udevadm trigger
設定 chronyd 協助程式以使用 PHC 裝置
計時時鐘同步協助程式必須設定為使用 PHC 裝置作為額外的時間來源,並使用/dev/ptp_ena符號連結來識別裝置。
設定 chronyd 協助程式以使用 PHC 裝置
-
/etc/chrony.conf使用文字編輯器編輯 ,並新增以下行:refclock PHC /dev/ptp_ena poll 0 delay 0.000010 prefer -
重新啟動 chrony。
[ec2-user ~]$sudo systemctl restart chronyd -
驗證 chrony 是否使用 PTP 硬體時鐘。PHC0 裝置必須是具有 Stratum 0 值的偏好時間來源。本機 NTP 時間來源 (如果已設定) 必須具有 Stratum 1 值。
[ec2-user ~]$chronyc sourcesMS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 0 377 0 +184ns[ +198ns] +/- 5032ns ^- 169.254.169.123 1 4 377 8 -18us[ -18us] +/- 115us
驗證硬體封包時間戳記
載入 PHC 支援的 ENA 驅動程式可讓您存取硬體封包時間戳記。您可以使用 ethtool -T 命令來驗證對此功能的支援。interface
如需使用硬體封包時間戳記的詳細資訊,請參閱封包時間戳記 Linux 文件
[ec2-user ~]$sudo ethtool -Tens5
Time stamping parameters for ens5:
Capabilities:
software-transmit
hardware-receive
software-receive
software-system-clock
PTP Hardware Clock: 0
Hardware Transmit Timestamp Modes: none
Hardware Receive Filter Modes:
none
all
如果輸出hardware-receive顯示在功能清單中,則您的執行個體可以使用硬體封包時間戳記。