自从公司部署了Hyper-V 3.0后,Fox将域控部署在虚拟机服务器场之中,又淘汰了原来比较老旧的物理机DC。前几周发现公司域中电脑和Lync电话的时间与标准时间相差10几分钟。于是登录域控和物理Host将时间改回。想不到这两天域控的时间再次与标准时间相差半小时。

造成这个问题的原因是,唯一的域控服务器部署在虚拟机服务器场内,并且使用物理机的时间作为时间源。而域控上启用了时间服务器,使得域内的物理机的时间源指向虚拟机的域控服务器。这样的设置会造成虚拟机的时间漂移(Time Skew)。

我们在域控上以管理员权限打开命令提示符。输入命令:w32tm /query /source        
p_w_picpath

可以看到域控的时间同步源是通过虚拟机管理工具的物理机时间。

在DHCP服务器上启用了域控作为时间服务器。    
p_w_picpath

在物理机的Host上输入以上命令,查看时间同步源。发现物理机的时间源指向的虚拟机中的域控。    
p_w_picpath

为了解决虚拟机的时间漂移,我们首先要断开虚拟机域控与物理主机之间的时间同步。我们可以简单的通过虚拟机管理工具禁用Hyper-V和物理Host之间的时间同步,但这不是推荐的做法,如果这样对于虚拟机的启动和恢复将造成影响。我们可以通过在虚拟机域控中输入以下的命令在保持不禁用服务的情况下断开虚拟机和物理机之间的时间同步:    
reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0        
p_w_picpath

接下来输入以下命令,让域控在域中寻找最适合的时间源(可能是其他域控)来进行同步:w32tm /config /syncfromflags:DOMHIER /update  如果只有一台域控想与外部的时间源进行同步,请参阅以下文档:http://technet.microsoft.com/en-us/library/cc784553(WS.10).aspx
p_w_picpath

之后重启时间服务,输入命令:net stop w32time & net start w32time        
p_w_picpath

强制与新时间源进行时间同步,输入命令:w32tm /resync /force        
p_w_picpath

最后再输入命令检查域控的同步时间源是否正确,输入命令:w32tm /query /source        
p_w_picpath

可以看到,域控的时间同步源,已经由物理主机变成了另一台域控,这样我们就解决了在虚拟机域控的时间漂移问题。