Berapa batas menjalankan server NTP di mesin virtual?

15

Saya ingin mengatur beberapa server waktu Stratum 2 di jaringan lokal saya. Mesin virtual tentu akan menjadi cara yang lebih murah untuk melakukan ini daripada membeli tiga server 1U. Keterbatasan apa yang akan diterapkan? Artinya, sampai sejauh mana akurasi akan berdampak buruk?

Selain itu, naluri saya adalah bahwa server waktu lokal ini harus berada pada mesin fisik yang berbeda untuk mengurangi penyimpangan perangkat keras. Apakah intuisi ini benar?

Sunting Saya harus mengatakan itu dengan "mesin virtual" Saya tidak secara khusus mengartikan VMware . Sebaliknya, yang saya maksud adalah konsep umum dari contoh tervirtualisasi.

James A. Rosen
sumber

Jawaban:

19

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.

sysadmin1138
sumber
1
Saya cukup yakin bahwa saya ingin setidaknya tiga , bukan hanya dua server NTP lokal. Bagaimana seorang klien membuat perbedaan antara hanya dua?
James A. Rosen
Anda memerlukan minimal empat untuk beberapa alasan misterius. Yang mengatakan, kami hanya memiliki dua server internal yang disinkronkan ke setengah lusin server eksternal (dan jam lokal mereka sebagai cadangan). Bekerja cukup baik untuk kita.
James
James A Rosen - Itulah kegembiraan dari konfigurasi peer-group. Selama setidaknya satu anggota grup peer memiliki koneksi luar dan tidak sinkron, seluruh peer-group tidak sinkron. Klien dapat menurunkan strata, tetapi setidaknya mereka tidak keluar dari sinkronisasi. Punya tiga di peer group? Tidak masalah.
sysadmin1138
1
Mengenai jumlah server yang Anda butuhkan, semuanya ada di sini: support.ntp.org . Jika Anda hanya daftar satu, tidak ada pertanyaan yang akan dianggap "benar" atau "salah". [...] Dengan dua, tidak mungkin mengatakan mana yang lebih baik [...]. Ini sebenarnya konfigurasi terburuk yang mungkin [...]. Dengan tiga server, Anda memiliki jumlah sumber waktu minimum [...] Konfigurasi ini tidak memberikan redundansi. Dengan setidaknya empat server upstream, [...] ntpd akan memiliki cukup banyak sumber untuk dipilih.
Mathieu
11

Lihat dokumen ketepatan waktu vmware . Menjalankan daemon NTP di VM mungkin bukan ide yang baik, terutama jika Anda membutuhkan waktu yang dapat diandalkan.

Sakit kepala
sumber
2
Haha - "terutama jika Anda membutuhkan waktu yang dapat diandalkan"
squillman
1
Saya tidak bisa lebih setuju dengan Anda, bahkan saya tidak bisa memikirkan satu server yang kurang tepat untuk dijalankan dalam VM :)
Chopper3
6

sayangnya ntp dan virtualisasi tidak berjalan dengan sangat baik. klien ok dalam banyak kasus, namun server ntp (esp str2 dan di atas) umumnya tidak akan berfungsi dengan baik pada server virtual.

Saya berkomentar dari perspektif xen dan xen perusahaan, tetapi saya percaya vmware / kvm akan sama.

kembali server yang berbeda, ya, Anda benar, idealnya mereka harus berada di lingkungan yang berbeda juga, sehingga suhu / kelembaban tidak mempengaruhi akurasi juga, tetapi setidaknya saya tidak repot-repot dengan itu. juga jangan lupa bahwa apa pun yang Anda lakukan masih belum seakurat jam atom yang tepat, jadi terima saja penyimpangan ini (sangat sedikit).

rytis
sumber
1

Menjalankan NTP dalam lingkungan tervirtualisasi, Anda akan beruntung untuk mencapai akurasi 20 ms (itulah yang kami lakukan dengan menggunakan VMware). Kemiringan jam tervirtualisasi buruk, khususnya di lingkungan tervirtualisasi dengan pertentangan sumber daya.

Itu tergantung pada seberapa akurat Anda perlu. Jika Anda hanya peduli pada yang kedua (EG untuk server web) Anda mungkin akan baik-baik saja, selama Anda tidak memiliki pertentangan sumber daya. Jika Anda ingin akurasi milidetik (seperti database yang sibuk, server log, proyek penelitian) maka lupakan server waktu yang divirtualisasi.

Server NTP harus selalu berada di host fisik. Anda harus memiliki setidaknya 3 dari mereka yang mengintip di pool (sehingga satu server nakal akan dikalahkan oleh pool); dan jika mungkin, dapatkan waktu mereka dari GPS atau sumber tingkat-lokal lainnya daripada melalui Internet.

Steve Shipway
sumber