Die Zeitreferenz auf Ihrer EC2 Instance so einstellen, dass der lokale Amazon Time Sync Service verwendet wird - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die Zeitreferenz auf Ihrer EC2 Instance so einstellen, dass der lokale Amazon Time Sync Service verwendet wird

Der lokale Amazon Time Sync Service verwendet entweder das Network Time Protocol (NTP) oder stellt in unterstützten Instances eine lokale Precision Time Protocol (PTP)-Hardware-Uhr bereit. Die PTP-Hardware-Uhr unterstützt entweder eine NTP-Verbindung (Linux- und Windows-Instances) oder eine direkte PTP-Verbindung (nur Linux-Instances). Die NTP-Verbindung und die direkte PTP-Verbindung verwenden zwar die gleiche hochpräzise Zeitquelle, die direkte PTP-Verbindung ist jedoch genauer als die NTP-Verbindung. Die NTP-Verbindung mit dem Amazon Time Sync Service unterstützt „Leap Smearing“ (Aufteilung von Schaltsekunden). Bei der PTP-Verbindung mit der PTP-Hardware-Uhr gibt es dagegen keine zeitliche Verwischung. Weitere Informationen finden Sie unter Schaltsekunden.

Ihre Instances können wie folgt auf den lokalen Amazon Time Sync Service zugreifen:

  • Über NTP an folgenden IP-Adressendpunkten:

  • (Nur Linux) Über eine direkte PTP-Verbindung, um eine Verbindung mit einer lokalen PTP-Hardware-Uhr herzustellen:

    • PHC0

Amazon-Linux-AMIs, Windows-AMIs und die meisten Partner-AMIs konfigurieren Ihre Instance so, dass sie standardmäßig den NTP-IPv4-Endpunkt verwendet. Dies ist die empfohlene Einstellung für die meisten Kunden-Workloads. Für Instances, die von diesen AMIs aus gestartet werden, ist keine weitere Konfiguration erforderlich, es sei denn, Sie möchten den IPv6-Endpunkt verwenden oder eine direkte Verbindung mit der PTP-Hardware-Uhr herstellen.

Für NTP- und PTP-Verbindungen müssen keine VPC-Konfigurationsänderungen vorgenommen werden und Ihre Instance benötigt keinen Zugriff auf das Internet.

Überlegungen

Eine Verbindung mit dem IPv4-Endpunkt des Amazon Time Sync Service herstellen

Ihr AMI hat den Amazon Time Sync Service möglicherweise bereits standardmäßig konfiguriert. Andernfalls verwenden Sie die folgenden Verfahren, um Ihre Instance für die Verwendung des lokalen Amazon Time Sync Service über den IPv4-Endpunkt zu konfigurieren.

Hilfe zur Behebung von Problemen finden Sie unter Fehlerbehebung bei NTP-Synchronisierungsproblemen auf Linux-Instances oder Fehlerbehebung bei Zeitproblemen auf Windows-Instances.

Amazon Linux

AL2023 und die neuesten Versionen von Amazon Linux 2 sind so konfiguriert, dass sie standardmäßig den IPv4-Endpunkt des Amazon Time Sync Service verwenden. Wenn Sie bestätigen, dass Ihre Instance bereits konfiguriert ist, können Sie das folgende Verfahren überspringen.

So überprüfen Sie, ob chrony für die Verwendung des IPv4-Endpunkts konfiguriert ist

Führen Sie den folgenden Befehl aus. In der Ausgabe, zeigt die Zeile, die mit ^* beginnt, die bevorzugte Zeitquelle.

chronyc sources -v | grep -F ^* ^* 169.254.169.123 3 4 377 14 +12us[+9653ns] +/- 290us
So konfigurieren Sie chrony für die Verbindung mit dem IPv4-Endpunkt auf älteren Versionen von Amazon Linux 2
  1. Stellen Sie eine Verbindung mit Ihrer Instance her und deinstallieren Sie den NTP-Service.

    [ec2-user ~]$ sudo yum erase 'ntp*'
  2. Installieren Sie das Paket chrony.

    [ec2-user ~]$ sudo yum install chrony
  3. Öffnen Sie die Datei /etc/chrony.conf mit einem Texteditor Ihrer Wahl, z. B. vim oder nano. Fügen Sie die folgende Zeile vor beliebigen anderen server- oder pool-Anweisungen ein, die bereits in der Datei vorhanden sind, und speichern Sie Ihre Änderungen:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  4. Starten Sie den chrony-Daemon (chronyd) neu.

    [ec2-user ~]$ sudo service chronyd restart
    Starting chronyd: [ OK ]
    Anmerkung

    Auf RHEL und CentOS (bis zu Version 6) lautet der Servicename chrony anstatt chronyd.

  5. Mithilfe des Befehls chkconfig können Sie konfigurieren, dass chronyd bei jedem Systemstart gestartet werden soll.

    [ec2-user ~]$ sudo chkconfig chronyd on
  6. Vergewissern Sie sich, dass chrony den IPv4-Endpunkt 169.254.169.123 für die Zeitsynchronisierung verwendet.

    [ec2-user ~]$ chronyc sources -v | grep -F ^*

    In der Ausgabe gibt ^* die bevorzugte Zeitquelle an.

    ^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us
  7. Überprüfen Sie die von gemeldeten Zeitsynchronisierungsmetrike chrony.

    [ec2-user ~]$ chronyc tracking
    Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 22 13:18:34 2017 System time : 0.000000626 seconds slow of NTP time Last offset : +0.002852759 seconds RMS offset : 0.002852759 seconds Frequency : 1.187 ppm fast Residual freq : +0.020 ppm Skew : 24.388 ppm Root delay : 0.000504752 seconds Root dispersion : 0.001112565 seconds Update interval : 64.4 seconds Leap status : Normal
Ubuntu
So konfigurieren Sie chrony für die Verbindung mit dem IPv4-Endpunkt unter Ubuntu
  1. Stellen Sie eine Verbindung mit Ihrer Instance her und installieren Sie mit apt das chrony-Paket.

    ubuntu:~$ sudo apt install chrony
    Anmerkung

    Sofern erforderlich, aktualisieren Sie Ihre Instance, indem Sie zuerst ausführe sudo apt update.

  2. Öffnen Sie die Datei /etc/chrony/chrony.conf mit einem Texteditor Ihrer Wahl, z. B. vim oder nano. Fügen Sie die folgende Zeile vor beliebigen anderen server- oder pool-Anweisungen ein, die bereits in der Datei vorhanden sind. Speichern Sie dann Ihre Änderungen:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  3. Den Service chrony neu starten.

    ubuntu:~$ sudo /etc/init.d/chrony restart
    Restarting chrony (via systemctl): chrony.service.
  4. Vergewissern Sie sich, dass chrony den IPv4-Endpunkt 169.254.169.123 für die Zeitsynchronisierung verwendet.

    ubuntu:~$ chronyc sources -v | grep -F ^*

    In der Ausgabe, zeigt die Zeile, die mit ^* beginnt, die bevorzugte Zeitquelle.

    ^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us
  5. Überprüfen Sie die von gemeldeten Zeitsynchronisierungsmetrike chrony.

    ubuntu:~$ chronyc tracking
    Reference ID : 169.254.169.123 (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 29 07:41:57 2017 System time : 0.000000011 seconds slow of NTP time Last offset : +0.000041659 seconds RMS offset : 0.000041659 seconds Frequency : 10.141 ppm slow Residual freq : +7.557 ppm Skew : 2.329 ppm Root delay : 0.000544 seconds Root dispersion : 0.000631 seconds Update interval : 2.0 seconds Leap status : Normal
SUSE Linux

Ab SUSE Linux Enterprise Server 15 ist chrony die Standardimplementierung von NTP.

So konfigurieren Sie chrony für die Verbindung mit dem IPv4-Endpunkt unter SUSE Linux
  1. Öffnen Sie die Datei /etc/chrony.conf mit einem Texteditor Ihrer Wahl, z. B. vim oder nano.

  2. Überprüfen Sie, ob die Datei die folgende Zeile enthält:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

    Wenn diese Zeile nicht vorhanden ist, fügen Sie sie hinzu.

  3. Kommentieren Sie alle anderen Server- oder Pool-Zeilen aus.

  4. Öffnen Sie YaST und aktivieren Sie den chrony-Service.

Windows

Aber der Version von August 2018 nutzen Windows-AMIs den Amazon Time Sync Service standardmäßig. Für Instances, die von diesen AMIs aus gestartet werden, ist keine weitere Konfiguration erforderlich und Sie können die folgenden Verfahren überspringen.

Überprüfen Sie zunächst Ihre aktuelle NTP-Konfiguration, wenn Sie eine AMI verwenden, für die der Amazon Time Sync Service nicht standardmäßig konfiguriert ist. Wenn Ihre Instance bereits den IPv4-Endpunkt des Amazon Time Sync Service verwendet, ist keine weitere Konfiguration erforderlich. Wenn Ihre Instance den Amazon Time Sync Service nicht verwendet, schließen Sie das Verfahren ab, um den NTP-Server so zu ändern, dass er den Amazon Time Sync Service verwendet.

So überprüfen Sie die NTP-Konfiguration
  1. Öffnen Sie in Ihrer Instance ein Eingabeaufforderungsfenster.

  2. Mit folgendem Befehl zeigen Sie die derzeitige NTP-Konfiguration an:

    w32tm /query /configuration

    Dieser Befehl gibt die aktuellen Konfigurationseinstellungen für die Windows-Instance zurück und zeigt, ob eine Verbindung mit dem Amazon Time Sync Service besteht.

  3. Mit folgendem Befehl wird der Status der derzeitigen Konfiguration angezeigt (optional):

    w32tm /query /status

    Dieser Befehl gibt Informationen wie den Zeitpunkt der letzten Synchronisierung der Instance mit dem NTP-Server und das Abrufintervall zurück.

So stellen Sie den NTP-Server auf die Verwendung des Amazon Time Sync Service ein
  1. Führen Sie über das Eingabeaufforderungsfenster den folgenden Befehl aus:

    w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update
  2. Mit folgendem Befehl überprüfen Sie Ihre neuen Einstellungen:

    w32tm /query /configuration

    Vergewissern Sie sich in der zurückgegebenen Ausgabe, dass für NtpServer der IPv4-Endpunkt 169.254.169.123 angezeigt wird.

Standardmäßige NTP-Einstellungen für Amazon-Windows-AMIs

Amazon Machine Images (AMIs) entsprechen in der Regel den werksseitigen Standards, es sei denn, Änderungen an der Funktion der EC2-Infrastruktur sind erforderlich. Die folgenden Einstellungen funktionieren in einer virtualisierten Umgebung erwiesenermaßen gut. Zudem weicht die Uhrzeit nie um mehr als eine Sekunde ab:

  • Aktualisierungsintervall: regelt, wie häufig der Zeit-Service die Genauigkeit der Systemzeit anpasst. AWS konfiguriert das Aktualisierungsintervall so, dass es alle zwei Minuten eintritt.

  • NTP-Server: Ab dem Release vom August 2018 verwenden AMIs standardmäßig den Amazon Time Sync Service. Dieser Zeit-Service ist in jeder AWS-Region am IPv4-Endpunkt 169.254.169.123 verfügbar. Zudem gibt das Flag 0x9 an, dass der Zeitdienst als Client fungiert und dass SpecialPollInterval verwendet werden soll, um zu ermitteln, wie häufig der Abgleich mit dem konfigurierten Zeitserver erfolgen soll.

  • Typ – „NTP“ bedeutet, dass der Service als eigenständiger NTP-Client und nicht als Teil einer Domain fungiert.

  • Aktiviert und InputProvider – Der Zeit-Service ist aktiviert und stellt dem Betriebssystem die Uhrzeit bereit.

  • Spezielles Abrufintervall – Fragt den konfigurierten NTP-Server alle 900 Sekunden (15 Minuten) ab.

Registry-Pfad Tastenname Daten

HKLM:\System\CurrentControlSet\services\w32time\Config

UpdateInterval

120

HKLM:\System\CurrentControlSet\services\w32time\Parameters

NtpServer

169.254.169.123,0x9

HKLM:\System\CurrentControlSet\services\w32time\Parameters

Typ

NTP

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

Enabled

1

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

InputProvider

1

HKLM:\System\CurrentControlSet\services\w32time\TimeProviders\NtpClient

SpecialPollInterval

900

Herstellen einer Verbindung mit dem IPv6-Endpunkt des Amazon Time Sync Service

In diesem Abschnitt erfahren Sie, inwiefern sich die unter Eine Verbindung mit dem IPv4-Endpunkt des Amazon Time Sync Service herstellen beschriebenen Schritte unterscheiden, wenn Sie Ihre Instance für die Verwendung des lokalen Amazon Time Sync Service über den IPv6-Endpunkt konfigurieren. Es wird nicht der gesamte Konfigurationsprozess des Amazon Time Sync Service erklärt.

Auf den IPv6-Endpunkt kann nur in Nitro-basierten Instances zugegriffen werden.

Es wird nicht empfohlen, die IPv4- und IPv6-Endpunkteinträge zusammen zu verwenden. Die IPv4- und IPv6-NTP-Pakete stammen von demselben lokalen Server für Ihre Instance. Das gleichzeitige Konfigurieren von IPv4- und IPv6-Endpunkten ist unnötig und führt nicht zu einer höheren Zeitgenauigkeit in Ihrer Instance.

Linux

Je nach der Linux-Distribution verwenden Sie, wenn Sie den Schritt zum Bearbeiten der chrony.conf-Datei erreichen, den IPv6-Endpunkt des Amazon Time Sync Service (fd00:ec2::123) anstelle des IPv4-Endpunkts (169.254.169.123):

server fd00:ec2::123 prefer iburst minpoll 4 maxpoll 4

Speichern Sie die Datei und vergewissern Sie sich, dass chrony den IPv6-Endpunkt fd00:ec2::123 für die Zeitsynchronisierung verwendet:

[ec2-user ~]$ chronyc sources -v

Wenn die Ausgabe den IPv6-Endpunkt fd00:ec2::123 enthält, ist die Konfiguration abgeschlossen.

Windows

Wenn Sie den Schritt erreichen, den NTP-Server für die Verwendung des Amazon Time Sync Service zu ändern, verwenden Sie den IPv6-Endpunkt des Amazon Time Sync Service (fd00:ec2::123) anstelle des IPv4-Endpunkts (169.254.169.123):

w32tm /config /manualpeerlist:fd00:ec2::123 /syncfromflags:manual /update

Stellen Sie sicher, dass Ihre neuen Einstellungen den fd00:ec2::123-IPv6-Endpunkt zur Zeitsynchronisierung verwenden:

w32tm /query /configuration

Vergewissern Sie sich in der Ausgabe, dass NtpServer den fd00:ec2::123-IPv6-Endpunkt anzeigt.

Herstellen einer Verbindung mit der PTP-Hardware-Uhr

Die PTP-Hardware-Uhr ist Teil von AWS Nitro System. Daher kann in unterstützten Bare-Metal- und virtualisierten EC2-Instances direkt darauf zugegriffen werden, ohne Kundenressourcen zu beanspruchen.

Die NTP-Endpunkte für die PTP-Hardware-Uhr sind die gleichen wie für den regulären Amazon Time Sync Service. Wenn Ihre Instance über eine PTP-Hardware-Uhr verfügt und Sie die NTP-Verbindung (entweder mit dem IPv4- oder mit dem IPv6-Endpunkt) konfiguriert haben, wird Ihre Instance-Zeit automatisch von der PTP-Hardware-Uhr über NTP abgerufen.

Für Linux-Instances können Sie eine direkte PTP-Verbindung konfigurieren, um eine präzisere Uhrzeit zu erhalten als bei der NTP-Verbindung. Windows-Instances unterstützen nur eine NTP-Verbindung zur PTP-Hardware-Uhr.

Voraussetzungen

Die PTP-Hardware-Uhr ist in einer Instance verfügbar, wenn die folgenden Anforderungen erfüllt sind:

  • Unterstützte AWS-Regionen: USA Ost (Nord-Virginia), USA Ost (Ohio), Asien-Pazifik (Malaysia), Asien-Pazifik (Thailand), Asien-Pazifik (Tokio) und Europa (Stockholm)

  • Unterstützte Local Zones: USA Ost (New York City)

  • Unterstützte Instance-Familien:

    • Allzweck: M7a, M7g, M7i

    • Arbeitsspeicheroptimiert: R7a, R7g, R7i

    • Speicheroptimiert: I8g, I8ge

  • (Nur Linux) Installation der ENA-Treiberversion 2.10.0 oder höher für ein unterstütztes Betriebssystem. Weitere Informationen zu unterstützten Betriebssystemen finden Sie auf GitHub in den treiberspezifischen Voraussetzungen.

In diesem Abschnitt erfahren Sie, wie Sie Ihre Linux-Instance für die Verwendung des lokalen Amazon Time Sync Service über die PTP-Hardware-Uhr konfigurieren und dabei eine direkte PTP-Verbindung verwenden. Dafär muss der chrony-Konfigurationsdatei ein Servereintrag für die PTP-Hardware-Uhr hinzugefügt werden.

Eine direkte PTP-Verbindung mit der PTP-Hardware-Uhr konfigurieren (nur Linux-Instances)
  1. Voraussetzungen für die Installation

    Stellen Sie eine Verbindung zur Ihrer Linux-Instance her und führen Sie die folgenden Schritte aus:

    1. Installieren Sie den Linux-Kernel-Treiber für die Elastic Network Adapter (ENA)-Version 2.10.0 oder höher.

    2. Aktivieren Sie die PTP-Hardware-Uhr.

    Die Installationsanleitung finden Sie auf GitHub unter Linux-Kernel-Treiber für die Elastic Network Adapter (ENA)-Familie.

  2. ENA-PTP-Gerät überprüfen

    Vergewissern Sie sich, dass das ENA-PTP-Hardware-Uhr-Gerät in Ihrer Instance angezeigt wird.

    [ec2-user ~]$ for file in /sys/class/ptp/*; do echo -n "$file: "; cat "$file/clock_name"; done

    Erwartete Ausgabe

    /sys/class/ptp/ptp<index>: ena-ptp-<PCI slot>

    Wobei Folgendes gilt:

    • index ist der im Kernel registrierte Index für die PTP-Hardware-Uhr.

    • PCI slot ist der PCI-Steckplatz des ENA-Ethernet-Controllers. Dies ist derselbe Steckplatz wie unter lspci | grep ENA gezeigt.

    Beispielausgabe

    /sys/class/ptp/ptp0: ena-ptp-05

    Sollte ena-ptp-<PCI slot> nicht in der Ausgabe enthalten sein, wurde der ENA-Treiber nicht korrekt installiert. Informationen zum Installieren des Treibers finden Sie in Schritt 1 dieses Verfahrens.

  3. PTP-Symlink konfigurieren

    PTP-Geräte werden normalerweise /dev/ptp0, /dev/ptp1 usw. benannt, wobei ihr Index von der Reihenfolge der Hardware-Initialisierung abhängt. Durch das Erstellen eines Symlinks wird sichergestellt, dass Anwendungen wie chrony unabhängig von Indexänderungen konsistent auf das richtige Gerät verweisen.

    Die neuesten AMIs von Amazon Linux 2023 enthalten eine udev-Regel, die den Symlink /dev/ptp_ena erstellt und auf den richtigen /dev/ptp-Eintrag verweist, der dem ENA-Host zugeordnet ist.

    Überprüfen Sie zunächst, ob der Symlink vorhanden ist, indem Sie den folgenden Befehl ausführen.

    [ec2-user ~]$ ls -l /dev/ptp*

    Beispielausgabe

    crw------- 1 root root 245, 0 Jan 31 2025 /dev/ptp0 lrwxrwxrwx 1 root root 4 Jan 31 2025 /dev/ptp_ena -> ptp0

    Wobei Folgendes gilt:

    • /dev/ptp<index> ist der Pfad zum PTP-Gerät.

    • /dev/ptp_ena ist der konstante Symlink, der auf dasselbe PTP-Gerät zeigt.

     

    Wenn der Symlink /dev/ptp_ena vorhanden ist, fahren Sie mit Schritt 4 dieses Verfahrens fort. Falls es fehlt, gehen Sie wie folgt vor:

    1. Fügen Sie die folgende udev-Regel hinzu.

      [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
    2. Laden Sie die udev-Regel neu, indem Sie entweder die Instance neu starten oder den folgenden Befehl ausführen.

      [ec2-user ~]$ sudo udevadm control --reload-rules && udevadm trigger
  4. Chrony konfigurieren

    Chrony muss so konfiguriert werden, dass der Symlink /dev/ptp_ena verwendet wird, anstatt direkt auf /dev/ptp<index> zu verweisen.

    1. Bearbeiten Sie /etc/chrony.conf mithilfe eines Text-Editors und fügen Sie an einer beliebigen Stelle in der Datei die folgende Zeile hinzu.

      refclock PHC /dev/ptp_ena poll 0 delay 0.000010 prefer
    2. Starten Sie chrony erneut.

      [ec2-user ~]$ sudo systemctl restart chronyd
  5. Chrony-Konfiguration überprüfen

    Vergewissern Sie sich, dass chrony die PTP-Hardware-Uhr für die Zeitsynchronisierung in dieser Instance verwendet.

    [ec2-user ~]$ chronyc sources

    Erwartete Ausgabe

    MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* PHC0 0 0 377 1 +2ns[ +1ns] +/- 5031ns

    In der zurückgegebenen Ausgabe gibt * die bevorzugte Zeitquelle an. PHC0 entspricht der PTP-Hardware-Uhr. Nach dem Neustart von chrony dauert es möglicherweise einige Sekunden, bis das Sternchen angezeigt wird.