在使用nova resize去修改虚拟机的配置的时候,实际调用的是migrate的代码。
在默认情况下,执行resize的时候,首先会进行磁盘disk镜像和后端镜像进行一个合并成raw,然后转换成qcow2的过程。而且会进行迁移的动作。整个过程会相当的消耗时间,而且我们一般只需要修改cpu和mem的大小,并不需要去合并镜像,更不需要去做迁移。
总之,在单台宿主机上去进行nova resize是一件很让人蛋碎的事情。
事实上,在reboot一个instance的时候,这个instance的libvirt.xml(只考虑kvm环境)会重新从数据库中生成。所以只需要修改数据库就行了。
修改脚本中size_info里的对应openstack中flavor的id号,还有mysql_obejcet对象中的mysql相关信息
使用方式:python update_size.py instance_name flavor
修改完成后必须使用nova reboot --hard instance_id 去重启,必须带上--hard去强制重启实例,不然不会生效。