背景:
生产环境下,发现windows虚机每次重启,时间都会倒退到虚机的格林威治时间(+8小时才是北京时间),也就是比当前时间晚8小时。测试发现,windows虚机所用的镜像,缺少了一个os_type参数。
制作镜像时,必须加入os_distro、image.os_type、os_type这三个参数。三个参数的作用如下:
os_distro:os_dstro是镜像的发行版名称,也就是帮助识别它具体是什么操作系统的,这个参数可以填centos、debian、ubuntu等等具体的名字;
image.os_type:image.os_type是调度层面的,给nova-scheduler识别的;
os_type:os_type是给libvirt识别的,就是为了区分是windows还是linux,时间的问题,应该就是通过这个去识别的,所以它的值只能选windows或者linux二选一
解决方案如下:
1:对于还未创建的虚机,更新镜像信息,加入os_type选项
glance image-list # 先查找镜像id
glance image-update --property os_type="windows" 镜像id # 更新镜像
glance image-show 镜像id # 查看镜像,看看是否多了一项os_type
然后就可以创建虚拟机了
2:对于已经创建的windows镜像,可以在数据库中更新os_type字段信息,然后重启虚机(测试发现,只有进行硬重启,才能生效)
1)修改数据库
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> use nova
Database changed
2)重启虚机(需要选择硬重启,才能生效)
Nova reboot --hard 虚机id
3)查看验证
在相应计算节点,查看虚拟机配置文件,可以看到clock以及从utc变成localtime
]# virsh edit instance-000007e0