Ich habe auf einigen (Hardware-) Servern ein seltsames Verhalten bei der Änderung der Systemzeit festgestellt: In / var / logs / syslog ändert sich die Datums- und Uhrzeitangabe vor jeder Protokollnachricht manchmal in eine zufällige und wird in der nächsten Nachricht wieder normal, wie folgt:
22. Februar 2018 09:09:30 ... 22. Februar 2018 09:09:32 ... 13. Januar 2610 15:37:42 ... 22. Februar 2018 09:09:33 ... 22. Februar 2018 09:09:34 ...
Wie im Beispiel kann die plötzliche Änderung der Datums- und Uhrzeit bis zu Hunderten von Jahren entfernt sein.
Ich kann bestätigen, dass die Protokollnachrichten mit den seltsamen Zeitstempeln nicht aus einem bestimmten Prozess stammen - sie können nur zufällig für jeden einzelnen auftreten.
Die Dauer zwischen zwei abnormalen Zeitänderungen variiert zwischen einigen Minuten und einigen Stunden (ich vermute jedoch, dass die abnormalen Zeitänderungen häufiger auftreten könnten, aber viele davon werden nicht im Syslog angezeigt, da nicht jede Sekunde Protokolle geschrieben werden).
Da dies auf mehr als einem Server geschieht, gehe ich davon aus, dass es sich nicht um ein Hardwareproblem handelt.
Weitere Informationen zu den Servern: Es handelt sich um eine Openstack-Installation mit einem Controller und einigen Rechenknoten. Auf jedem Server wird ein NTP-Dienst ausgeführt. Der Controller ist so konfiguriert, dass er Zeit von seiner eigenen Hardware-Uhr benötigt, und die Rechenknotenserver synchronisieren die Zeit vom Controller. Beachten Sie, dass jeder Server ungewöhnliche Zeitänderungen in seinem eigenen Tempo aufweist. Es sieht so aus, als ob die "falsche Zeit" nicht über ntp vom Controller synchronisiert wird.
Ich hatte den Verdacht, dass die Gastsysteme (virtuelle Maschinen) auf Rechenknoten die Zeit ihres Hostsystems beeinflussen könnten. Dies kann jedoch nicht erklären, warum der Controller das gleiche Problem hat, wenn keine virtuelle Maschine ausgeführt wird.
Ich brauche eine Methode, um zu erkennen: Wer hat die Systemzeit geändert und wie geschieht dies?
hwclock
Schleife anzeigen? Etwas wie:while true; do hwclock; sleep 5; done