解决 Windows instance 时间不同步问题 - 每天5分钟玩转 OpenStack(153)

这是 OpenStack 实施经验分享系列的第 3 篇。

问题描述

通过上一节部署出来的 Windows instance 有时候会发现操作系统时间总是慢 8 个小时,即使手工调整好时间和时区,下次 instance 重启后又会差 8 个小时。

原因

KVM 对 Linux 和 Windows 虚拟机在系统时间上处理有所不同,Windows 需要额外一些设置。

解决办法一

给 Windows 镜像添加 os_type 属性。

glance image-update --property os_type="windows" <IMAGE-ID>

明确指定这就是一个 windows 镜像。通过此镜像部署 instance 的时候,KVM 会在其 XML 描述文件中设置相应参数,保证时间的同步。

解决办法二

对于之前部署的 Windows instance,用第一种方法就没有效果了,只能采取一点非常规手段:Hack Database!

假设要 hack 的 instance 的名字是 win-test,用下面的 MySQL 命令:

$ use nova;

$ update instances set os_type='windows' where hostname='win-test';

$ select hostname,os_type from instances where hostname='win-test';

+------------+----------+

| hostname  | os_type  |

+------------+----------+

| win-test     | windows |

+------------+----------+

需要重启 win-test,KVM 会获取修改后的数据库信息,更新 XML 配置,保证时间同步。

下一节继续讨论镜像使用上的经验和技巧。

解决 Windows instance 时间不同步问题 - 每天5分钟玩转 OpenStack(153)

上一篇:支付宝AR实景红包上线不久即遭破解,官方已提高技术门槛


下一篇:开发过程遇到的bug