Windows - Décalage horaire
Comment résoudre la dérive de l’heure dans les VM Windows sur VergeOS en configurant le paramètre RTC Base et la clé de registre RealTimeIsUniversal pour une gestion correcte de l’heure UTC.
Description du problème
Les machines virtuelles (VM) VergeOS exécutant Windows peuvent rencontrer un « décalage temporel », où le système d'exploitation invité ajustera périodiquement l'heure à une valeur incorrecte.
Comprendre la cause racine
Ce problème de décalage de l'heure découle d'un décalage fondamental entre les attentes de Windows et le comportement des hyperviseurs modernes. Plus précisément, ce décalage provient de :
Horloge matérielle virtuelle (RTC) - Lors du démarrage de la VM, Windows lit l'heure à partir de l'horloge temps réel émulée, que KVM/QEMU règle en fonction de l'heure de l'hôte
Synchronisation initiale de l'horloge - Cela se produit au démarrage de la VM lorsque Windows lit l'horloge virtuelle BIOS/CMOS, et non via un agent
Le problème est que Windows s'attend à ce que l'heure matérielle soit en heure locale, mais les hyperviseurs modernes (y compris KVM/QEMU) fournissent l'heure UTC. Cela est dû au système d'exploitation Windows, qui s'attend à ce que l'heure provenant de la carte mère physique soit en heure locale (RTC) plutôt qu'en temps universel coordonné (UTC).
VergeOS fournit l'heure en UTC, qui est devenue la norme du secteur car elle compense les changements d'heure d'été (DST). Le système d'exploitation invité ajustera automatiquement l'heure en comparant la valeur de son horloge à une source de temps faisant autorité, car il suppose que l'heure fournie par le matériel est locale et non UTC. Cette comparaison provoque des écarts périodiques, car le système d'exploitation invité n'est pas en mesure d'ajuster l'horloge du nœud physique pour qu'elle corresponde à ce qu'il perçoit comme étant l'heure correcte.
Option de configuration de VergeOS : base RTC
RTC Base est un paramètre individuel de VM qui permet aux administrateurs VergeOS de définir l'heure fournie au système d'exploitation comme locale ou UTC. La valeur peut être trouvée lors de la modification de n'importe quelle VM.

Avec ce paramètre de configuration, les administrateurs peuvent contrôler chaque machine de manière granulaire, bien qu'il soit important de comprendre le comportement attendu de chaque option.
Heure locale
Définir RTC Base sur Heure locale transmettra l'heure des nœuds physiques au système d'exploitation invité virtuel. Cela émule le comportement hérité attendu par Windows. Lorsque Windows compare l'horloge de l'heure locale à un service de temps faisant autorité, Windows ajustera l'heure au sein du système d'exploitation invité en fonction du fuseau horaire défini dans la configuration Windows. Cela peut entraîner un comportement inattendu.
Les éléments à prendre en compte avec l'heure locale sont :
Le fuseau horaire du nœud physique sera présenté de la même manière à tout système d'exploitation invité. Si VergeOS héberge des VM pour différents fuseaux horaires, chaque VM Windows percevra l'heure locale comme ayant la même valeur.
L'heure du nœud physique et le système d'exploitation invité nécessiteront une configuration correcte afin d'éviter des problèmes lorsque l'heure d'été (DST) commence ou se termine chaque année. Les horloges RTC devront être ajustées par logiciel. Historiquement, des problèmes sont apparus lorsque les directives relatives au DST ont changé.
Heure UTC
Définir RTC Base sur UTC transmettra l'heure des nœuds physiques aux VM invitées comme temps universel coordonné. C'est la norme du secteur pour les applications logicielles modernes qui gèrent le temps.
Lors de l'utilisation du paramètre UTC dans VergeOS, les VM Windows doivent être configurées pour reconnaître que l'heure est présentée comme universelle. Pour la plupart des systèmes d'exploitation Windows, l'ajustement se fait dans le Registre Windows en ajoutant une valeur pour reconnaître « RealTimeIsUniversal ».
Le correctif du registre RealTimeIsUniversal=1 est la solution la plus élégante car elle :
indique explicitement à Windows la vérité sur le format horaire qu'il reçoit
élimine le conflit permanent entre l'hyperviseur et le service de temps de Windows
fonctionne avec les contrôleurs de domaine et la synchronisation NTP
Pour les systèmes d'exploitation 64 bits
Sous la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation, il doit y avoir une REG_QWORD entrée avec les valeurs suivantes :
Nom : RealTimeIsUniversal
Données de valeur : 1
Après avoir ajusté ce paramètre, les administrateurs devront éteindre complètement la VM, puis la remettre sous tension avant que la modification ne prenne effet.
Lectures complémentaires sur ce sujet
https://www.meinbergglobal.com/english/sw/ntp.htm peut être installé et configuré pour obtenir l'heure à partir de l'un des serveurs répertoriés sur https://tf.nist.gov/tf-cgi/servers.cgi. Le logiciel Meinberg NTP peut être configuré pour corriger l'heure toutes les heures, tous les jours, toutes les semaines, etc. Cela vous permettra de le « configurer et l'oublier ».
Des informations supplémentaires sur l'historique de ce problème, y compris la chronologie des changements dans Windows, sont disponibles ici : https://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html
Mis à jour
Ce contenu vous a-t-il été utile ?