You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Josh Harshman (JIRA)" <ji...@apache.org> on 2015/10/26 21:35:27 UTC
[jira] [Commented] (CLOUDSTACK-8978) Make use of Hyper-V clock on
KVM node
[ https://issues.apache.org/jira/browse/CLOUDSTACK-8978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14974986#comment-14974986 ]
Josh Harshman commented on CLOUDSTACK-8978:
-------------------------------------------
Just a rough outline,
Looks like to solve this we can make use of LibvirtVMDef.HyperVEnlightenmentFeatureDef.
This will make it simpler to set the following Libvirt XML
<hyperv>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
</hyperv>
After that is set, we can simply detect on windows server 2008 and set the clock to the hyperV clock
> Make use of Hyper-V clock on KVM node
> -------------------------------------
>
> Key: CLOUDSTACK-8978
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8978
> Project: CloudStack
> Issue Type: Improvement
> Security Level: Public(Anyone can view this level - this is the default.)
> Components: KVM
> Affects Versions: 4.5.2
> Environment: Ubuntu 14.04 LTS
> Reporter: Josh Harshman
> Priority: Minor
> Labels: patch, performance, windows
>
> Currently, for any windows guest OS, we set RTC for the clock source. This seems to contribute to clock-drift issues leading to BSODs on Windows Server 2008 R2 Guests.
> I believe a possible improvement would be to set Windows guests to use the hyper-v clock. To do this we will need CloudStack to generate the appropriate Libvirt XML which would look somewhat like the following:
> <features>
> <hyperv>
> <relaxed state='on'/>
> <vapic state='on'/>
> <spinlocks state='on' retries='8191'/>
> </hyperv>
> <features/>
> <clock ...>
> <timer name='hypervclock' present='yes'/>
> </clock>
> I believe the following code snippet from LibvirtComputingResource.java could be a starting place to implement this.
> if (vmTO.getOs().startsWith("Windows")) {
> clock.setClockOffset(ClockDef.ClockOffset.LOCALTIME);
> clock.setTimer("rtc", "catchup", null);
> Let me know what you all think about this change.
> Is there a better place / way to implement this?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)