Fakta sederhananya adalah bahwa akurasi jam dalam VM masih sangat buruk. Ini berasal dari beberapa titik, tetapi yang paling mematikan adalah waktu yang melayang tidak konstan; faktor pergeseran berubah dari waktu ke waktu. NTP adalah protokol yang memiliki kompensasi clock yang dibangun di dalamnya, tetapi ia dirancang dengan faktor penyimpangan statis bawaan. Misalnya, jika mesin fisik kehilangan 12 detik setiap 30 hari, NTP dapat mengkompensasi itu dan melakukannya dengan sangat baik. Tetapi jika mesin itu dapat kehilangan 4 hingga 70 detik setiap 30 hari, NTP tidak begitu baik melacak tingkat perubahan itu.
Apa yang membuatnya sangat sulit bagi NTP untuk mengikuti lingkungan VM adalah jam lokal yang dilihatnya dapat mengubah faktor penyimpangannya selama satu menit. Bergantung pada frekuensinya memeriksa sumber waktu induknya, ia dapat menyebabkan perubahan faktor drift utama dan menyebabkannya lebih tidak sinkron. Kaskade waktu tidak sinkron di seluruh organisasi Anda.
NTP untuk jaringan lokal adalah protokol dampak yang relatif rendah dengan jejak memori yang sangat kecil, dan dapat dengan senang hati mendukung server infrastruktur jaringan Anda yang lain seperti DNS dan server DHCP Anda. Beberapa router juga dapat menyediakan fungsionalitas NTP, jadi Anda mungkin ingin melihatnya.
Idealnya Anda menginginkan dua server terpisah di lokasi terpisah yang masing-masing disinkronkan dengan set server strata yang lebih tinggi. Ini juga akan menjadi ide yang sangat baik dari kedua server waktu dikonfigurasikan untuk menggunakan server lain sebagai 'rekan', yang akan meminimalkan dampak terhadap layanan waktu jika salah satu sumber waktu hulu menjadi serba salah; akan ada perubahan strata tetapi setidaknya tidak akan melaporkan tidak sinkron. Dan akhirnya, bersikap baik kepada penyedia waktu hulu Anda dan konfigurasikan server Anda untuk menjadi waktu yang sangat lama di antara jajak pendapat begitu waktu telah ditetapkan. Ini adalah parameter 'maxpoll' pada baris 'server', dan merupakan kekuatan dua detik antara upaya sinkronisasi.
Jika Anda benar-benar harus menggunakan VM untuk ini, saya akan menyiapkan tidak kurang dari tiga server NTP tersebut. Masing-masing harus di host yang berbeda, dan jika mungkin di pusat data yang berbeda. Seperti yang saya sarankan, mereka membutuhkan sumber waktu yang berbeda dan harus saling mengintip. Kemudian konfigurasikan semua klien NTP Anda untuk menggunakan ketiganya sebagai sumber Induk. Pastikan nilai maxpoll Anda cukup rendah untuk tidak pernah lebih dari satu setengah jam antara paket sinkronisasi di luar jaringan, dan 30 menit di jaringan. Peluangnya bagus setidaknya salah satu dari ketiganya akan di-sync pada waktu tertentu. Untuk klien yang hanya dapat berbicara dengan satu host waktu, mereka hanya perlu mengikuti acara yang kadang tidak sinkron. Secara keseluruhan, kualitas waktu dalam skenario ini tidak akan setepat seperti pada server fisik.
Jika saya harus ball-park, saya akan mengatakan waktu konsensus Anda di lingkungan murni-VM mungkin akan berada dalam, oh, 30 hingga 100 ms benar. Dalam lingkungan fisik murni, waktu konsensus Anda mungkin berada dalam 10 ms begitu server waktu telah cukup lama untuk menyelesaikannya.