... 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.

  1. Install 'nova' on your management system; e.g. use 'yum' or 'apt-get' to install the 'python-novaclient' package
  2. Set up the OpenStack credentials for your Project in the normal way.
  3. Run "nova list" to list the instances and get the instance id for the one you want to resize.
  4. Run "nova flavor-list" list to find out the flavor id.
  5. Run "nova resize --poll <instance id> <flavor id>".  (Or you can use names rather than ids.)
  6. Assuming that works, use "nova resize-confirm <instance id>" to make the change stick.

Reference: http://docs.openstack.org/user-guide/content/nova_cli_resize.html

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".

Alternatives

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.