Hi everyone, recently, I observed some time drifts within a couple of virtual CentOS 7 VMs running on oVirt 3.6.
All the VMs have NTP and the qemu guest agent running and use the kvm-clock as their clock source. The drifts vary over the VMs, a few of them were drifting even so high, that NTP would panic and terminate itself. After some log analyzing, I found out, that some of the VMs experienced some I/O issues lately and were paused automatically (and resumed later on), others were migrated a couple of time. The root cause seems to be the pause/resume cycle which the guest doesn't notice and hence must rely solely on NTP to correct the time. Which, of course is the purpose of NTP but can take relatively long, even if it detects a spike and performs a clock_step. vdsm provides the _syncGuestTime() method [1], which should help in this case and set the time using the qemu guest agent. However, it seems that this method only gets called during a restore [2] and not after a migration [3]. Some peeking at the master branch, reveals that the idea of setting the time after resuming a VM won't be implemented anymore [4]. Although, the first argument within the above referenced comment might be valid for some systems, most of it probably still prefer to get the time corrected as quickly as possible - but of course this depends on the use case and should ideally be configurable by the user. I couldn't find a reference or comment about the situation during the continuation of a VM [5]. As some simple vdsClient pause/continue cycles have shown, the clock won't be set on continuation and it took NTP around 20 minutes before it performed a hard clock_step. This finally leads me to my questions: Is there a simple way to let ovirt/vdsm/libvirt set the time after a migration or the continuation of paused VM? How are others dealing with this situation? Many thanks, Chris [1] https://github.com/oVirt/vdsm/blob/ovirt-3.6.3/vdsm/virt/vm.py#L1199-L1208 [2] https://github.com/oVirt/vdsm/blob/ovirt-3.6.3/vdsm/virt/vm.py#L2838 [3] https://github.com/oVirt/vdsm/blob/ovirt-3.6.3/vdsm/virt/vm.py#L2862-L2866 [4] https://github.com/oVirt/vdsm/blob/master/vdsm/virt/vm.py#L3106-L3116 [5] https://github.com/oVirt/vdsm/blob/master/vdsm/virt/vm.py#L1011 _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users