创建要扩容的实例类型,也就是flavor
获取要扩容的server id
根据命令 nova list
获取刚才创建好的实例类型id
根据命令 nova flavor-list
执行扩容的命令
nova resize <server-id> <flavor-id>
举例:
nova resize 06be1c3d-bcfb-4038-ae28-f8e7ac0a2c21 1562cf91-961f-4e05-977c-127feafccaca
执行完成之后,查看服务的状态,如果服务处于VERIFY_RESIZE 这种状态就可以执行确认的命令了。
执行确认命令
nova resize-confirm <server-id>
举例
nova resize-confirm 06be1c3d-bcfb-4038-ae28-f8e7ac0a2c21
执行完成之后,在次执行 nova list 查看状态,服务状态已经处于ACTIVE
6.进入到虚拟机查看资源是否被扩容,扩容成功
注意事项:
resize 撤销的命令nova resize-revert <server_id>
我的测试方案属于冷迁移,也就是本地迁移,因为resize默认情况下在执行resize后,通过nova-schdule重新调度,并将虚拟机调度到其它节点,所以本地迁移还需要在nova-conf中将属性allow_resize_to_same_host 设置为True
如果本地迁移不满足要求,需要nova-schdule重新调度,那么执行过程还是一样的,但是可能会出现执行完resize后,实例的状态不发生改变,可能一直是ACTIVE,这种情况就需要到bios中看cpu的配置属性信息是否一样了,要保证每台物理机的cpu配置属性一样,才能正常迁移。
如果需要调用OpenStack的扩容API进行扩容,请参考下面的官方文档。
resize:https://docs.openstack.org/api-ref/compute/?expanded=resize-server-resize-action-detail
resize-confirm:https://docs.openstack.org/api-ref/compute/?expanded=confirm-resized-server-confirmresize-action-detail
resize-revert:https://docs.openstack.org/api-ref/compute/?expanded=revert-resized-server-revertresize-action-detail
调用上面的链接需要用 compute api 的方式 也就是url是 nova-compute的 可以通过 openstack endpoint list 命令查看