Banyak sistem software yang bergantung pada pengurutan peristiwa yang cermat mengandalkan jam sistem yang stabil dan konsisten. Sistem ini sering menggunakan log sistem dengan stempel waktu untuk memastikan sinkronisasi waktu dan men-debug masalah saat terjadi. Untuk membantu menjaga agar jam sistem tetap sinkron, instance Compute Engine telah dikonfigurasi untuk menggunakan protokol waktu jaringan (NTP), yaitu solusi gabungan hardware dan software sinkronisasi waktu.
NTP juga berguna dalam kasus yang jarang terjadi seperti detik kabisat, yaitu penyesuaian satu detik yang dilakukan pada waktu UTC untuk memperhitungkan perubahan rotasi bumi. Detik kabisat tidak terjadi dengan interval rutin, karena kecepatan rotasi Bumi bervariasi tidak teratur sebagai respons terhadap peristiwa iklim dan geologi. Detik kabisat sebelumnya telah memengaruhi berbagai layanan dan aplikasi di web secara jelas. Server NTP membantu memastikan bahwa semua server melaporkan waktu yang sama saat terjadi detik kabisat.
Dokumen ini menjelaskan cara mengonfigurasi server NTP di instance komputasi Anda, termasuk penanganan detik kabisat yang tepat.
Ringkasan server NTP Google dan leap smearing
Detik kabisat untuk sistem operasi Unix biasanya diterapkan dengan mengulangi detik terakhir hari itu. Hal ini dapat menyebabkan masalah pada software yang mengharapkan stempel waktu untuk selalu bertambah. Untuk mengatasi masalah ini, server waktu di Google Cloud "smear" detik tambahan selama 24 jam—12 sebelum dan 12 setelah peristiwa detik kabisat —sehingga komputer tidak melihat detik tambahan sekaligus sebagai stempel waktu yang berulang. Tindakan ini mengurangi risiko dalam sistem yang bergantung pada stempel waktu yang konsisten. Sebaiknya konfigurasi semua instance komputasi Anda untuk menggunakan layanan NTP Google internal.
Rekomendasi untuk tidak menggunakan layanan NTP eksternal
Google Cloud Google tidak dapat memprediksi cara layanan NTP eksternal, seperti pool.ntp.org, menangani detik kabisat. Sebaiknya jangan gunakan sumber NTP eksternal dengan instance komputasi Anda. Jika Anda menggunakan layanan NTP Google dan layanan eksternal, Anda dapat menyebabkan perubahan yang tidak dapat diprediksi dalam waktu sistem. Lebih baik menggunakan hanya satu sumber NTP eksternal daripada menggunakan campuran, tetapi layanan NTP eksternal, seperti pool.ntp.org, sering menggunakan lompatan untuk menangani detik kabisat. Akibatnya, instance Anda mungkin akan melihat stempel waktu yang berulang.
Pendekatan paling aman adalah mengonfigurasi instance komputasi Anda untuk menggunakan server NTP tunggal, yaitu server NTP internal yang disediakan oleh Google. Untuk mengetahui informasi selengkapnya tentang server NTP internal yang disediakan oleh Google, lihat FAQ NTP Publik Google.
Menggunakan leap smearing dengan sistem eksternal ke Google Cloud
Fitur leap smearing di server NTP Google adalah cara mudah untuk mengelola risiko mengenai pemutaran ulang sistem yang sensitif terhadap waktu selama satu detik. Layanan NTP lainnya mungkin memberikan hasil pengerjaan yang dapat diterima sebagian besar sistem perangkat lunak. Namun, penting untuk tidak menggabungkan layanan NTP leap smearing Google dengan layanan NTP lompatan publik.
Untuk menyinkronkan perangkat di luar Google Cloud ke waktu yang dikurangi, Anda dapat menggunakan NTP Publik Google untuk perangkat tersebut. NTP Publik Google menggunakan leap second smearing yang sama yang disediakan untuk instance Compute Engine.
Mengonfigurasi NTP untuk instance
Untuk memastikan bahwa instance komputasi Anda dikonfigurasi dengan benar, ikuti petunjuk berikut:
Linux (chrony)
Secara default, sebagian besar rilis Linux menggunakan
chrony untuk mengelola setelan NTP dan
sinkronisasi waktu. Untuk memastikan bahwa chrony hanya menggunakan layanan NTP internal, periksa konfigurasi chrony dan hapus server NTP eksternal.
Gunakan
sshuntuk terhubung ke instance komputasi Anda.Konsol
Untuk menggunakan konsol untuk terhubung ke instance komputasi menggunakan SSH, ikuti langkah-langkah berikut:
Buka halaman VM instances di Google Cloud konsol.
Klik tombol SSH untuk instance yang ingin Anda konfigurasi.
gcloud
Untuk menggunakan Google Cloud CLI untuk terhubung ke instance komputasi menggunakan SSH, jalankan perintah berikut:
gcloud compute instances ssh INSTANCE_NAME
Ganti
INSTANCE_NAMEdengan nama instance yang Anda hubungkan.Pada instance Anda, jalankan
chronyc sourcesuntuk memeriksa status konfigurasi NTP Anda saat ini:$ chronyc sourcesOutputnya akan terlihat mirip seperti berikut:
210 Number of sources = 2 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* metadata.google.internal 2 6 377 4 -14us[ -28us] +/- 257us ^- 38.229.53.9 2 6 37 4 -283us[ -297us] +/- 28ms
Jika Anda melihat satu data yang mengarah ke
metadata.googleataumetadata.google.internal, Anda tidak perlu melakukan perubahan apa pun. Jika Anda melihat beberapa sumber yang tercampur antarametadata.googledan sumber publik sepertipool.ntp.org, update sumber Anda untuk menghapus server NTP eksternal.Dalam contoh output, terdapat dua kumpulan data, satu mengarah ke
metadata.google.internaldan satu lagi mengarah ke alamat eksternal. Karena ada beberapa sumber, Anda perlu mengupdate server NTP Anda untuk menghapus alamat38.229.53.9, seperti yang dijelaskan pada langkah berikutnya.Konfigurasikan server NTP Anda untuk menghapus server NTP eksternal.
Untuk menghapus server NTP tambahan dari daftar, edit file
/etc/chrony/chrony.confmenggunakan editor teks pilihan Anda. Temukan semua baris yang dimulai denganserver external_source_ip_or_namedan hapus.Setelah mengedit file
/etc/chrony/chrony.conf, mulai ulang layananchrony. Perintah untuk memulai ulang mungkin berbeda bergantung pada distribusi Linux, seperti yang ditunjukkan dalam contoh berikut:sudo service chrony restart
sudo systemctl restart chrony
Verifikasi konfigurasi Anda dengan menjalankan kembali perintah
chronyc sources:$ chronyc sourcesOutput-nya akan terlihat seperti berikut:
210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* metadata.google.internal 2 7 377 98 -1343ns[-1588ns] +/- 396us
Linux (ntpd)
Distribusi Linux lama yang tidak mendukung chrony menggunakan
ntpd untuk mengelola setelan NTP
dan sinkronisasi waktunya. Untuk memastikan bahwa ntpd hanya menggunakan layanan NTP internal, periksa konfigurasi ntpd dan hapus server NTP eksternal.
Gunakan
sshuntuk terhubung ke instance komputasi Anda.Konsol
Untuk menggunakan konsol untuk terhubung ke instance komputasi menggunakan SSH, ikuti langkah-langkah berikut:
Buka halaman VM instances di Google Cloud konsol.
Klik tombol SSH untuk instance yang ingin Anda konfigurasi.
gcloud
Untuk menggunakan Google Cloud CLI untuk terhubung ke instance komputasi menggunakan SSH, jalankan perintah berikut:
gcloud compute instances ssh INSTANCE_NAME
Ganti
INSTANCE_NAMEdengan nama instance yang Anda hubungkan.Pada instance Anda, jalankan
ntpq -puntuk memeriksa status konfigurasi NTP Anda saat ini:$ ntpq -pOutputnya terlihat mirip dengan ini:
remote refid st t when poll reach delay offset jitter ============================================================================== *metadata.google 255.28.23.83 2 u 27 64 1 0.634 -2.537 2.285 *217.162.232.173 130.149.17.8 2 u 191 1024 176 79.245 3.589 27.454
Jika Anda melihat satu data yang mengarah ke
metadata.googleataumetadata.google.internal, Anda tidak perlu melakukan perubahan apa pun. Jika Anda melihat beberapa sumber yang tercampur antarametadata.googledan sumber publik sepertipool.ntp.org, Anda harus mengupdate sumber untuk menghapus server NTP eksternal.Dalam contoh output, terdapat dua kumpulan data, satu mengarah ke
metadata.googledan satu lagi mengarah ke alamat eksternal. Karena ada beberapa sumber, Anda perlu mengupdate server NTP Anda untuk menghapus alamat*217.162.232.173, seperti yang dijelaskan pada langkah berikutnya.Konfigurasikan server NTP Anda untuk menghapus sumber eksternal.
Untuk mengonfigurasi server NTP Anda, edit file
/etc/ntp.confmenggunakan editor teks pilihan Anda. Temukan bagianserverskonfigurasi, dan hapus semua sumber NTP non-Google, misalnya:vim /etc/ntp.conf# You do need to talk to an NTP server or two (or three). #server ntp.your-provider.example ... server metadata.google.internal iburstSetelah mengedit file
/etc/ntp.conf, mulai ulang layanan NTP. Perintah untuk memulai ulang mungkin berbeda dari contoh berikut, berdasarkan distribusi Linux Anda:sudo service ntp reloadVerifikasi konfigurasi Anda dengan menjalankan kembali perintah
ntpq -p:ntpq -premote refid st t when poll reach delay offset jitter ============================================================================== *metadata.google 255.28.23.83 2 u 27 64 1 0.634 -2.537 2.285
Windows
Buka halaman VM instances di Google Cloud konsol.
Klik tombol RDP di samping instance Windows yang ingin Anda hubungkan.
Setelah login, klik kanan ikon PowerShell dan pilih Run as administrator.
Setelah command prompt dimuat, jalankan perintah berikut untuk melihat konfigurasi NTP saat ini:
w32tm /query /configuration[Configuration] ... Type: NTP (Local) NtpServer: metadata.google.internal, ...
Jika Anda melihat satu data yang mengarah ke
metadata.googleataumetadata.google.internal, Anda tidak perlu melakukan perubahan apa pun. Jika Anda melihat beberapa sumber yang tercampur antarametadata.googledan sumber publik, Anda perlu menghapus server eksternalnya. Ikuti panduan Windows untuk mengonfigurasi server NTP Anda.Untuk memastikan kompatibilitas software yang paling luas di VM Windows, sebaiknya gunakan driver gVNIC untuk memastikan akurasi NTP sub-milidetik dengan
metadata.google.Jika Anda harus menggunakan VirtIO dengan VM Windows, untuk mendapatkan akurasi sub-milidetik dengan server NTP, sebaiknya jangan gunakan Windows Time Service (hentikan dan batalkan pendaftaran
w32tm).Hentikan Windows Time Service:
net stop w32timeHapus Windows Time Service dari registry:
w32tm /unregisterSetelah Windows Time Service dihentikan dan dihapus dari registry, instal klien Meinberg NTP.
Ikuti petunjuk konfigurasi seperti yang diberikan dalam dokumentasi Meinberg.
Konfigurasikan server NTP untuk klien Meinberg NTP sebagai
metadata.google.internal.Setelah selesai mengonfigurasi NTP, tunggu antara lima dan 15 menit agar jam sistem di instance komputasi stabil dengan server NTP.
Untuk mengetahui informasi tentang alasan kami tidak merekomendasikan penggunaan
w32tm, lihat dokumentasi Masalah Umum.
Langkah berikutnya
- Pelajari lebih lanjut tentang kepatuhan Standar Keamanan Data PCI.
- Tinjau FAQ NTP Publik Google.