VM Best Practices
This page is to provide some guidance based on user experiences with Compute Canada's cloud instances. Your mileage may vary.
Volumes
Data volumes
It is very difficult to expand a root volume, so for any VM which does not have bounded storage requirements, consider creating a second volume for data. If more space is needed, and your allocation has enough remaining volume storage, it is fairly straightforward to expand the data volume using OpenStack and then expanding the logical volume, if any, and filesystem within your VM.
Maximum volumes per VM
Avoid attaching more than three volumes to a VM. This has been observed to lead to kernel timeouts which can affect any disk operations on those volumes and may have a cascading effect, and can render the VM effectively inoperative. While using a data volume is advisable (see above), use only one and you can carve it up into multiple filesystems inside your VM, and expand it as necessary.
This has been observed on Arbutus (west.cloud.computecanada.ca) by multiple users, although it may be somewhat dependent on volume size. In one case, 3 x 100GB volumes attached to a p4-6gb VM caused kernel timeouts whenever disk operations of any magnitude were attempted. It was very difficult to copy more than 500MB of data between two filesystems, for example.
As of 27 November 2017 it is being tested on East Cloud (east.cloud.computecanada.ca).