web-dev-qa-db-ja.com

CentosLinuxが間に合わなかった

Linuxの時間が止まっているのを見た人はいますか?.

# date
Thu Apr  2 16:35:04 UTC 2020
# date
Thu Apr  2 16:35:04 UTC 2020
# date
Thu Apr  2 16:35:04 UTC 2020
# date
Thu Apr  2 16:35:04 UTC 2020

Servfaultにログインしている間、約3分の休憩がありました。

# date
Thu Apr  2 16:35:05 UTC 2020

RTCはカチカチ音をたてるようです、これは約10千離れています:

# timedatectl
      Local time: Thu 2020-04-02 16:35:06 UTC
  Universal time: Thu 2020-04-02 16:35:06 UTC
        RTC time: Thu 2020-04-02 16:42:36
       Time zone: America/New_York (UTC, +0000)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

# timedatectl
      Local time: Thu 2020-04-02 16:35:06 UTC
  Universal time: Thu 2020-04-02 16:35:06 UTC
        RTC time: Thu 2020-04-02 16:42:46
       Time zone: America/New_York (UTC, +0000)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

# hwclock --show
Thu 02 Apr 2020 04:43:56 PM UTC  -0.001834 seconds
# hwclock --show
Thu 02 Apr 2020 04:44:04 PM UTC  -0.000916 seconds

これらも約10秒離れています。

# hwclock --hctosys
# date
Thu Apr  2 16:44:24 UTC 2020
# date
Thu Apr  2 16:44:24 UTC 2020

NTPdを試す

# systemctl start ntpd
# date
Thu Apr  2 16:44:24 UTC 2020
# date
Thu Apr  2 16:44:24 UTC 2020
# date
Thu Apr  2 16:44:24 UTC 2020
# date
Thu Apr  2 16:44:24 UTC 2020

# systemctl status ntpd
● ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-04-02 16:44:24 UTC; 27ms ago
  Process: 18008 ExecStart=/usr/sbin/ntpd -u ntp:ntp $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 18009 (ntpd)
   CGroup: /system.slice/ntpd.service
           └─18009 /usr/sbin/ntpd -u ntp:ntp -g



# ntpq
ntpq> lpeers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 time.cloudflare .INIT.          16 u    -   64    0    0.000    0.000   0.977
 clock.sjc.he.ne .INIT.          16 u    -   64    0    0.000    0.000   0.977
 ntp4.doctor.com .INIT.          16 u    -   64    0    0.000    0.000   0.977
 tock.usshc.com  .INIT.          16 u    -   64    0    0.000    0.000   0.977

.INITのままです。ピアは到達可能ですが

# ping tock.usshc.com
PING tock.usshc.com (199.102.46.72) 56(84) bytes of data.
64 bytes from tock.usshc.com (199.102.46.72): icmp_seq=1 ttl=54 time=1.00 ms

編集#1

# grep . /sys/devices/system/clocksource/clocksource*/[ac]*_clocksource
/sys/devices/system/clocksource/clocksource0/available_clocksource:tsc hpet acpi_pm refined-jiffies jiffies
/sys/devices/system/clocksource/clocksource0/current_clocksource:jiffies

# dmesg | grep clocksource
[    0.000000] Command line: vmlinuz nomodeset rw selinux=0 enforcing=0 raid=noautodetect nmi_watchdog=0 LAUNCH_INIT=/tmp/SUTup rdshell console=tty0 console=ttyS0,9600n1 HOMEBASE=192.168.1.1 biosdevname=0 clocksource=jiffies nmi_watchdog=0 consoleblank=0 vga=791 ramdisk_size=4000000 initrd=initramfs
[    0.000000] Kernel command line: vmlinuz nomodeset rw selinux=0 enforcing=0 raid=noautodetect nmi_watchdog=0 LAUNCH_INIT=/tmp/SUTup rdshell console=tty0 console=ttyS0,9600n1 HOMEBASE=192.168.1.1 biosdevname=0 clocksource=jiffies nmi_watchdog=0 consoleblank=0 vga=791 ramdisk_size=4000000 initrd=initramfs
[   51.409031] tsc: Refined TSC clocksource calibration: 2394.374 MHz

このサーバーは本当に迷惑になっています。実行中のOSは、PXEを介して提供されるCentOSライブイメージです。 FakeTimeはありません。

これをチェックしてください:これには約2秒かかりますが、その10倍かかります(SSH経由で実行しているため、外部の「時間」を取得します)

# time ssh 192.168.100.115 'for i in {0..1}; do date; sleep 1 ; done'
Thu Apr  2 23:39:22 UTC 2020
Thu Apr  2 23:39:23 UTC 2020
real    0m20.869s
user    0m0.026s
sys     0m0.007s

NTPをブロックするファイアウォールはありません。それは小さなネットワークです。これは物理的なIntelサーバーであり、VMではありません。

編集#2

Paulは私のクロックソースをチェックすることを提案しました。それはjiffiesで、hpetに切り替えられ、物事が機能し始めました。なぜ昨日まで機能したのかわからないので(初めて時間が止まったことに気づきました)、このイメージをあらゆる種類のハードウェアで何年も使用してきました。

Clocksource: https://access.redhat.com/solutions/18627

1
Christian

ピアはpingで到達可能かもしれませんが、クロック同期にとって重要なNTPでは到達できません。ローカル、ネットワーク、またはISPレベルのファイアウォールがアクセスをブロックしている可能性があります。

ただし、それはシステムクロックのフリーズを説明するものではありません。 John Mahowaldの提案以外に、ハイパーバイザーまたはファームウェアの問題がある可能性があります-これはVMまたはある種のエキゾチックなハードウェアですか?

次のコマンドは何を示していますか?

grep . /sys/devices/system/clocksource/clocksource*/[ac]*_clocksource
dmesg | grep clocksource
4
Paul Gear