ntpd vs systemd-timesyncd - Bagaimana cara mencapai sinkronisasi NTP yang andal?


31

Ketika saya menanyakan status daemon NTP dengan ntpdc -c sysinfosaya mendapatkan output berikut:

system peer:          0.0.0.0
system peer mode:     unspec
leap indicator:       11
stratum:              16
precision:            -20
root distance:        0.00000 s
root dispersion:      12.77106 s
reference ID:         [73.78.73.84]
reference time:       00000000.00000000  Thu, Feb  7 2036  7:28:16.000
system flags:         auth monitor ntp kernel stats
jitter:               0.000000 s
stability:            0.000 ppm
broadcastdelay:       0.000000 s
authdelay:            0.000000 s

Ini menunjukkan bahwa sinkronisasi NTP gagal. Namun waktu sistem akurat dalam presisi 1 detik. Ketika saya menjalankan sistem saya tanpa koneksi jaringan untuk periode yang sama seperti yang saya lakukan sekarang waktu sistem akan menyimpang ~ 10s.

Perilaku ini menunjukkan bahwa sistem memiliki cara lain untuk menyinkronkan waktu. Saya menyadari bahwa ada juga systemd-timesyncd.service(dengan file konfigurasi di /etc/systemd/timesyncd.conf) dan timedatectl statusmemberi saya waktu yang tepat:

      Local time: Thu 2016-08-25 10:55:23 CEST
  Universal time: Thu 2016-08-25 08:55:23 UTC
        RTC time: Thu 2016-08-25 08:55:22
       Time zone: Europe/Berlin (CEST, +0200)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2016-03-27 01:59:59 CET
                  Sun 2016-03-27 03:00:00 CEST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2016-10-30 02:59:59 CEST
                  Sun 2016-10-30 02:00:00 CET

Jadi pertanyaan saya adalah apa perbedaan antara kedua mekanisme tersebut? Apakah salah satunya sudah usang? Bisakah mereka digunakan secara paralel? Mana yang harus saya percayai ketika saya ingin menanyakan status sinkronisasi NTP?

(Perhatikan bahwa saya memiliki sistem yang berbeda (dalam jaringan yang berbeda) yang kedua metode menunjukkan keberhasilan dan menghasilkan waktu yang tepat.)


2
Saya telah menemukan bahwa Fedora benar-benar menggunakan chrony : Mengkonfigurasi NTP Menggunakan Suite chrony
David Tonhofer

Jawaban:


19

systemd-timesyncd pada dasarnya adalah implementasi NTP khusus klien kecil yang kurang lebih dibundel dengan rilis systemd yang lebih baru. Ini lebih ringan daripada ntpd penuh tetapi hanya mendukung sinkronisasi waktu - yaitu tidak dapat bertindak sebagai server NTP untuk mesin lain. Ini dimaksudkan untuk mengganti ntpd untuk klien.

Anda sebaiknya tidak menggunakan keduanya secara paralel, karena secara teori mereka dapat memilih server waktu yang berbeda yang memiliki sedikit keterlambatan di antara mereka, yang menyebabkan jam sistem Anda secara berkala "gelisah".

Untuk mendapatkan status, Anda sayangnya perlu menggunakan ntpdcjika Anda menggunakan ntpd dan timedatectljika Anda menggunakan timesyncd, saya tahu tidak ada utilitas yang bisa membaca keduanya.


Bagaimana mungkin maka pada satu sistem sinkronisasi ntpd gagal sedangkan yang lain berhasil (keduanya menjalankan systemd-timesyncd secara paralel). Saya cukup yakin bahwa ini tidak berhubungan dengan masalah firewall karena saya sudah memeriksa pengaturan yang sesuai. Saat ini saya dibiarkan dengan dua hasil dan saya tergoda untuk memercayai yang berhasil namun saya ragu karena kedua klien mengimplementasikan protokol NTP yang sama tetapi satu gagal. Sebenarnya saya berharap keduanya bekerja.
a_guest

1
ntpd dan timesyncd menggunakan pengaturan yang berbeda. Apakah Anda menetapkan penghemat waktu yang sama untuk keduanya?
maks.

dapatkah Anda menggunakan timesyncd untuk menyinkronkan waktu dengan GPS seperti dengan ntp?
akanolo

Systemd-timesyncd adalah klien SNTP yang kurang akurat daripada NTP. Pembaca tidak boleh disesatkan ke berpikir systemd-timesyncd adalah klien NTP ringan.
Philip Couling

14

systemd-timesyncd tidak memiliki disiplin jam: jam tidak terlatih atau kompensasi, dan jam internal melayang dari waktu ke waktu tidak berkurang. Ini memiliki logika dasar untuk menyesuaikan interval jajak pendapat, tetapi tanpa mendisiplinkan tuan rumah akan berakhir dengan waktu yang tidak merata selamanya karena systemd-timesyncd mendorong atau menarik pada interval apa pun yang menurutnya memerlukan penyimpangan jangka pendek. Itu juga tidak dapat menilai kualitas sumber waktu jauh. Anda tidak mungkin mendapatkan akurasi lebih dari 100 ms. Ini cukup untuk perangkat pengguna akhir yang sederhana seperti laptop, tetapi pasti dapat menyebabkan masalah untuk sistem terdistribusi yang menginginkan ketepatan waktu yang lebih besar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.