Hi all,
The Juju vSphere cloud provider does not support disk thin provisioning. This means that when deploying VM(s) the virtual machine disks are always thick-provisioned, which takes up a lot of disk space.
It would be good to allow thin-provisioning as some kind of flag or constraint for each machine in the cluster, this would save a lot of disk space for customers.
If a hypervisor runs out of disk space, you will see errors like this:
Machine State DNS Inst id Series AZ Message
0 pending juju-fcc43f-0 bionic poweredOn
1 pending juju-fcc43f-1 bionic poweredOn
2 pending juju-fcc43f-2 bionic poweredOn
3 pending juju-fcc43f-3 bionic poweredOn
3/lxd/0 pending pending bionic
4 down pending bionic Insufficient disk space on datastore ''.
5 down pending bionic Insufficient disk space on datastore ''.
6 down pending bionic Insufficient disk space on datastore ''.
7 down pending bionic Insufficient disk space on datastore ''.
8 down pending bionic Insufficient disk space on datastore ''.
9 pending juju-fcc43f-9 bionic poweredOn
10 down pending bionic Insufficient disk space on datastore ''.
11 down pending bionic Insufficient disk space on datastore ''.
https://gist.githubusercontent.com/CalvinHartwell/1c19f2956629cbb68840731ccce8bb5c/raw/797ff5f890b0c2cea4d8a3e6cb5a0a435b100292/vmware-out-of-space.log
vSphere versions tested: 6.5 and 6.7.
Cheers,
- Calvin
I've looked into this to a small degree. It doesn't appear to be a simple change.
Thin/thick provisioning appears to be a property set from within a .vmdk file and we stream ours directly from cloud-images. ubuntu. com. It is possible to change the disk properties with VMware's vmkfstools utility, but I haven't seen how to access that functionality from within the API.
Thin provisioning is not supported on all ESXi backends, which means that Juju needs to be sensitive to the substrate that it's running on rather than simply trusting the user.