Resizing a NeCTAR virtual
... is not currently possible.
It doesn't work!
Currently, it is not possible for a NeCTAR user to resize an Instance.
In theory ...
In theory, you should be able to use the "nova" client to resize an instance.
- Install 'nova' on your management system; e.g. use 'yum' or 'apt-get' to install the 'python-novaclient' package
- Set up the OpenStack credentials for your Project in the normal way.
- Run "nova list" to list the instances and get the instance id for the one you want to resize.
- Run "nova flavor-list" list to find out the flavor id.
- Run "nova resize --poll <instance id> <flavor id>". (Or you can use names rather than ids.)
- Assuming that works, use "nova resize-confirm <instance id>" to make the change stick.
In practice ...
In practice, the procedure fails for NeCTAR instances. When I tried it:
- Step #5 failed, without an intelligible error message.
- My Instance was left in "Error" state. I was able to clear that by restarting the instance, but the instance had reverted to the flavor it was when I started.
- My project usage numbers were wrong, showing the resource usage that would have been if the resize had worked. This had to be reset by NeCTAR support.
When I contacted NeCTAR support about this, they said:
"Sorry, but it doesn't work at the moment. We will make a temporary change to nova to prevent users doing this accidentally. You can track progress on a long-term fix here: https://support.rc.nectar.org.au/redmine/issues/2999".
Warning: I have not tried this out ...
According to this NeCTAR support forum thread, there are a couple of alternatives to resizing an instance:
- Snapshot the instance you want to resize then launch a new instance from the snapshot with the desired flavor. The instructions on (safely) migrating instances can be applied to this problem too.
- Live bundle the existing instance to create an bootable image, then launch a new instance from the new image.
There are a couple of caveats with these approaches:
- The snapshot / image might not boot properly; e.g. if you didn't understand / follow the procedures correctly.
- When you make the transition from a small instance to a large instance, you may need to release the resources used by your existing small instance; i.e. by terminating it. When you do this, you may find that NeCTAR has reallocated the physical resources to another project.
- AFAIK, this won't deal with the case where you use multiple ephemeral volumes. A snapshot / image will only deal with the primary ephemeral volume.
So it is advisable to test that you can boot your snapshot / image with a small flavor before you "commit". Then try to do the "terminate old" / "launch new" steps quickly to avoid losing the resources.