Her VM'de bir NTP sunucusu çalıştırmam gerekir mi?


18

Misafirler bir şekilde ev sahibinin sistem saatini devralamadı mı?

Aynı sonuçları aynı makinede birden çok kez almak için aynı arka plan programını çalıştırmak anlamsız görünüyor ama KVM veya Xen makalelerini okurken zamanla ilgili bir şey bulamadım. Benim anlayış konuk önyükleme üzerinde ana bilgisayar zaman alır ama sonra ayrı drift olabilir olmasıdır. Bu doğru mu ?



1
Sanırım bir NTP istemcisi mi demek istiyorsun?
Michael Hampton

1
@MichaelHampton: Evet, ntp paketi her zaman her ikisini de sağladığından, bir NTP istemcisi ve sunucusu arasındaki ayrım benim için gerçekten net değildi.
zimbatm

2
Bu soru ile ilgili: Debian ve türevleri üzerinde, openntppaket, paketten çok daha hafiftir ntp. Varsayılan olarak bağlanmaz ve bu yüzden burada tam olarak ihtiyacımız olan bir müşteri gibi davranır.
zimbatm

Yanıtlar:


13

Doğru. O zaman sadece sürüklenip "olabilir", ancak unutulmamalıdır olacak dolayı (genellikle dayanmaktadır OS üzerinde zaman tutma) zamanlayıcı kesmeleri arasındaki aralıklar gerilmiş ve hiper yönetici uyum göreceği gibi sıkıştırılmış olmasından sürüklenip.

Çoğu sanallaştırma platformunda (Hyper-V entegrasyon hizmetleri, VMWare araçları) yaygın olarak alınan bir geçici çözüm, konukları saatleri VM ana bilgisayarıyla periyodik olarak eşitleyen bir arka plan programı çalıştırıyor. Hauke ​​tarafından sorunuzun bir yorumunda belirtildiği gibi, KVM ek olarak çalışmak için konuk işletim sisteminde yüklü olan ilgili sürücüye ihtiyaç duyacak paravirtualized bir saat sağlar.

Daha fazla okuma:

VMWare Sanal Makinelerinde Zaman İşleyişi (vmware.com)
KVM misafir saat senkronizasyonu (s19n.net)


Çok teşekkürler. cat /sys/devices/system/clocksource/clocksource0/current_clocksource
EC2'de

Ana makine ile sunucu olarak VM ve istemci olarak VM olsa bile kronyd önerilir.
akostadinov

21

Mükemmel bir dünyada, VM misafirleriniz mükemmel zaman ya da en azından ev sahibinin sağladığı kadar mükemmel kalırlar. Ne yazık ki mükemmel bir dünyada yaşamıyoruz.

İnsanoğlunun bildiği hemen hemen her hipervizörle olan deneyimlerime dayanarak, istisnasız olarak sanal makinelerde her zaman bir NTP istemcisi çalıştırıyorum. Her zamanki kurulumum -g seçeneği ile ntpd veya eski sistemler için hemen önündeki ntpdate, saati adım adım (sistem önyüklemesinde senkronizasyondan uzak olabilir).

KVM, sanallaştırılmış gerçek zamanlı saati ile neredeyse mükemmel bir kuruluma sahiptir ; uygun sürücüye sahip konuklar (en azından son Linux) ev sahibinin yanı sıra zamanı da tutacaktır. Ancak yine de işler burada yanlış gidiyor: Örneğin, ana makine NTP çalıştırmıyor olabilir, ana makine yanlış bir saat dilimi ayarlanmış olabilir, ana bilgisayarın saati basit bir şekilde yanlış olabilir, vb.

VMware ve Hyper-V ortaya çıkıyor. Her biri, konuk üzerinde saatin ana bilgisayarla periyodik olarak senkronize edilmesi gereken bir araca sahiptir, ancak yine de bu, ana bilgisayar saatiyle ilgili mevcut sorunlara karşı savunmasızdır.

Testim Hyper-V sunucumdaki konuklar da garip bir davranış sergiledi: entegrasyon hizmetlerinde bile, konuk saati 500 ppm'den daha hızlı sürüklenecek ve ntpd'nin çalışmasını önleyecekti (saatin bundan daha hızlı kayması durumunda deli olduğunu düşünüyor ). Bu konuklar bu değerin ayarlanmasına izin veren chrony geçmek zorunda kaldı .

Xen bu açıdan en kötüsü; sahip olduğu kesinlikle hiçbir senkronizasyon ve misafirler NTP çalıştıran hemen hemen gereklidir. (Xen'in son sürümlerinin bir çeşit senkronizasyona sahip olduğu, ancak henüz kişisel olarak çalışmadığı söylendi.)

Ev sahibi hipervizör, genel bir bulut gibi kontrolünüz altında değilse işler daha da kötüleşir. Sunucu saatine göre sağlayıcının merhametindesiniz ve senkronize olma konusunda gayretli değilse kaybedersiniz.

Tüm bunlara rağmen, yarı hassas bir saate bile ihtiyacınız varsa, sanal makinelerinizde NTP istemcilerini çalıştırmak oldukça gereklidir. Not: Windows sanal makineleri çalıştırıyorsanız, saati sürekli ayarlayan bir üçüncü taraf NTP istemcisi edinin; Windows ile gelen bir istemcinin mazereti, saati yalnızca haftada bir kez ayarlar ve bu da tamamen saçmadır.


Çalışan mı ntpdategünlük cron işi, yeterli uzunlukta veya bunun ntp cini olmak zorunda?
AngerClown

4
Saati sürekli olarak senkronize etmek için bir şeye ihtiyacınız var, çünkü bir gün içinde size senkronize etmek için yeterince senkronize olmayabilir. Ve bazı programlar saatin adım atmasını sevmez.
Michael Hampton

Ntp arka plan programı ile ilgili sorun, öncelikle başkalarına zaman sağlamayı amaçladığı ve böylece zamanın çok fazla ayrılması durumunda çalışmayı durduracağıdır. Gerçekten sürekli çalışan ve herhangi bir bağlantı noktası bağlamak değil ntpdate gibi bir şey olsaydı.
zimbatm

1
@JonasPfenniger Eğer ntpd sizin için çalışmıyorsa, bunun yerine chrony kullanmayı deneyin (yukarıda önerildiği gibi). Sanal makinelerle gördüğümüz garip senaryoları barındırmak için ntpd'den biraz daha ayarlanabilir.
Michael Hampton

3
Söylediklerinizin% 95'ine katılırken, NTP kullanan bir Windows istemcisinin haftada bir saat değişikliği ile sınırlı olmadığını belirtmek istedim. Aşağıdaki reg tuşu, güncelleme aralığını etkili bir şekilde tanımlamanızı sağlar: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\UpdateIntervalDeğer saniye olarak tanımlanır ve genellikle 360000 (100 saat) olarak ayarlanır, ancak uygulamalarınız özellikle zaman duyarlıysa 15 dakikada bir senkronize etmek için 900'e ayarlayabilirsiniz. Daha sonra W32Time hizmetini yeniden başlatmayı unutmayın.
kayjay

3

İyi bilinen ve uzun zamandır olduğu için NTP kullanmanızı tavsiye ederim. Saati ayarlamak önemsiz değildir. NTP bu sorunu çözdü.

VMware'in resmi çizgisi NTP tercih ile, bir mekanizmayı kullanmak daha ince taneli ve saati ayarlamak için küçük adımlar atmak çünkü. Dahili VMware çözümü daha büyük adımlar atıyor. İkisini de koştuğunuzda birbirleriyle savaşabilirlerdi. Dahili VMware çözümü büyük bir adım atıyor ve ardından NTP bunu ayarlıyor ve biraz geri alıyor.

Ancak pratikte ikisini de aynı anda çalıştırıyoruz ve henüz bir sorun görmedim.

$ ntpq   
ntpq> peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
something.org  172.2.1.5          2 u   57   64  377    1.597   -2.409   5.952


$  vmware-toolbox-cmd  timesync status
Enabled


$ vmware-toolbox-cmd help timesync
timesync: functions for controlling time synchronization on the guest OS
Usage: vmware-toolbox-cmd timesync <subcommand>

Subcommands:
  enable: enable time synchronization
  disable: disable time synchronization
  status: print the time synchronization status
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.