10 votes

La machine Hyper-V dérive l'heure partout, même avec NTP

Résolu Le problème était Hyper-V sur cette machine. J'ai supprimé Hyper-V, installé VMware Server, exécuté la même VM. Les problèmes de synchronisation du temps ont disparu (< 100 ms de différence après un jour).


Ma configuration est la suivante :

HYV1 - HyperV machine (non domain) - sync irrelevant
AD1  - VM AD server on HYV1, sync'd to time.nist.gov. HyperV time sync off.
S1   - Physical machine, sync'd to domain. 
S2   - Physical machine running HyperV, sync'd to domain.
V1   - Linux VM machine on S2, sync'd to AD1. No HyperV integration.

AD1 et S1 sont bien synchronisés - le graphique montre moins de 100ms de différence.

Le S2 dérive comme un fou. Voici un extrait du graphique en bande contre AD1 :

18:33:22 d:+00.0010138s o:+05.4101899s 
18:33:24 d:+00.0010138s o:+05.4319765s 
18:33:26 d:+00.0000000s o:+05.4788429s 
18:33:28 d:+00.0000000s o:+05.6089942s 
18:33:30 d:+00.0010138s o:+05.7240269s 
18:33:32 d:+00.0000000s o:+06.0421911s 
18:33:34 d:+00.0081104s o:+06.5613708s 
18:33:37 d:+00.0000000s o:+06.9096594s 
18:33:39 d:+00.0000000s o:+06.8867838s 
18:33:41 d:+00.0010127s o:+06.8936401s 

En 20 secondes, il a dérivé d'une seconde. Si je le réinitialise manuellement à 1s près, au bout de quelques minutes, il dérive à nouveau d'environ 2 secondes. Pendant la nuit, elle est passée de ~2s à ~5s. La VM Linux dans S2 est parfaitement synchronisée avec AD1.

Voici la configuration :

C:\Users\mgg>w32tm /dumpreg /subkey:Parameters

Value Name                 Value Type          Value Data
------------------------------------------------------------

ServiceDll                 REG_EXPAND_SZ       %systemroot%\system32\w32time.dll
ServiceMain                REG_SZ              SvchostEntry_W32Time
ServiceDllUnloadOnStop     REG_DWORD           1
Type                       REG_SZ              NT5DS
NtpServer                  REG_SZ              ad01.mydomain ad02.mydomain

C:\Users\mgg>w32tm /dumpreg /subkey:Config

Value Name                Value Type          Value Data
-----------------------------------------------------------

FrequencyCorrectRate      REG_DWORD           4
PollAdjustFactor          REG_DWORD           5
LargePhaseOffset          REG_DWORD           50000000
SpikeWatchPeriod          REG_DWORD           900
LocalClockDispersion      REG_DWORD           9
HoldPeriod                REG_DWORD           5
PhaseCorrectRate          REG_DWORD           1
UpdateInterval            REG_DWORD           30000
EventLogFlags             REG_DWORD           2
AnnounceFlags             REG_DWORD           5
TimeJumpAuditOffset       REG_DWORD           28800
MinPollInterval           REG_DWORD           2
MaxPollInterval           REG_DWORD           8
MaxNegPhaseCorrection     REG_DWORD           -1
MaxPosPhaseCorrection     REG_DWORD           -1
MaxAllowedPhaseOffset     REG_DWORD           300

J'ai regardé le journal des événements, et à part les avertissements concernant la synchronisation (après qu'elle soit très désynchronisée), il n'y a pas d'autres avertissements.

Comment puis-je résoudre ce problème ? C'est la seule machine qui a ce problème. Toutes les autres machines (physiques et virtuelles) fonctionnent bien.

Edit : Pour clarifier : La VM (AD1) a l'intégration désactivée et se synchronise avec time.nist.gov. AD1 fonctionne bien. C'est la machine physique S1 qui ne peut pas se synchroniser avec AD1 et dérive partout. Tous les autres serveurs physiques sont capables de se synchroniser avec AD1 sans problème.

Mise à jour Il semble donc qu'il s'agisse d'un problème d'exécution de la VM. L'horloge glisse lentement avec la VM éteinte. Lorsqu'elle est allumée, elle commence immédiatement à perdre des secondes. J'ai modifié la VM pour qu'elle n'utilise que la moitié des ressources, et cela semble avoir légèrement atténué le problème, pour le moment. Merci.

1voto

Jeff Thomas Points 183

Cela peut paraître drôle, mais je parie que vous utilisez une configuration multiprocesseur ? Il y a des problèmes connus de dérive d'horloge avec certains fabricants. toux AMD toux qui se produisent avec les cartes mères multi-core/multi-socket. Une forte activité d'interruption - comme l'exécution d'une ou deux machines virtuelles - aggrave la dérive. La dérive que vous rencontrez semble de façon très suspecte comme ça.

Pour ce que ça vaut, je préfère les offres d'AMD à celles d'Intel, donc ne prenez pas cela comme une attaque contre eux.

0 votes

La machine utilise un Pentium D930, il s'agit donc d'une configuration multicœur. Je vais désactiver les VM et voir ce qui se passe.

2 votes

Tuer un noyau sur la VM a aidé la synchronisation sur l'hôte.

1voto

Skyhawk Points 14029

En supposant que AD1 était un contrôleur de domaine, je pense que le problème ici peut avoir été lié à votre serveur Hyper-V réglant son heure à partir d'une de ses propres VM invitées. C'est pourquoi le problème a disparu lorsque vous êtes passé à VMware : le serveur VMware ne se sent pas obligé de synchroniser son horloge avec un contrôleur de domaine Windows.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X