這是 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 配置,保證時間同步。
下一節繼續討論鏡像使用上的經驗和技巧。