在使用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去強制重啓實例,不然不會生效。