W idealnym świecie goście maszyny wirtualnej zachowaliby idealny czas, a przynajmniej tak doskonały, jak zapewnia gospodarz. Niestety nie żyjemy w idealnym świecie.
Opierając się na moim doświadczeniu z praktycznie każdym hiperwizorem znanym człowiekowi, zawsze uruchamiam klienta NTP na maszynach wirtualnych, bez wyjątku. Moją zwykłą konfiguracją jest ntpd z opcją -g lub ntpdate rozpoczynający się tuż przed nim dla starych systemów, aby skrócić czas (który może być bardzo niezsynchronizowany podczas uruchamiania systemu).
KVM ma prawie idealną konfigurację z parawirtualizowanym zegarem czasu rzeczywistego ; goście z odpowiednim sterownikiem (przynajmniej najnowszym Linuksem) utrzymają czas, a także host. Ale nadal coś idzie nie tak: na przykład, host może nie działać z NTP, host może mieć niepoprawną strefę czasową, zegar hosta może być po prostu zły, itp.
VMware i Hyper-V znajdują się pośrodku. Każde z nich ma narzędzie przeznaczone do uruchamiania na gościu, które okresowo synchronizuje zegar z hostem, ale znowu jest to podatne na wszelkie istniejące problemy z zegarem hosta.
Goście na moim testowym serwerze Hyper-V również wykazywali dziwne zachowanie: nawet w przypadku usług integracyjnych zegar gościa dryfowałby szybciej niż 500 ppm, uniemożliwiając działanie ntpd ( uważa, że zegar jest szalony, jeśli płynie szybciej niż ten ). Musiałem zmienić tych gości na chroniczne , co pozwala na dostosowanie tej wartości .
Xen jest najgorszy pod tym względem; nie ma absolutnie żadnej synchronizacji, a uruchomienie NTP u gości jest prawie wymagane. (Powiedziano mi, że bardzo najnowsze wersje Xen mają jakąś synchronizację, ale osobiście jeszcze z nią nie pracowałem).
Gorzej jest, gdy hiperwizor hosta nie jest pod twoją kontrolą, na przykład chmura publiczna. Jesteś na łasce dostawcy w odniesieniu do zegara hosta, a jeśli nie starają się go zsynchronizować, przegrywasz.
Mając to na uwadze, uruchamianie klientów NTP na maszynach wirtualnych jest prawie wymagane, jeśli potrzebujesz nawet pół-dokładnego zegara. Uwaga: Jeśli korzystasz z maszyn wirtualnych z systemem Windows, uzyskaj zewnętrznego klienta NTP, który stale dostosowuje zegar; niska wymówka dla klienta dostarczanego z systemem Windows dostosowuje zegar tylko raz w tygodniu , co jest całkowicie absurdalne.