vSphere-Datastore-Cluster

Apache CloudStack 4.15 introduced several new capabilities for vSphere, including support for datastore clusters. Following production use of the new features and feedback from users, an opportunity for improvement was noticed. If a storage pool is added or removed from the datastore cluster in vCenter, to see those changes in CloudStack it is necessary to remove and re-add the primary storage. An improvement to this behaviour ensures that these changes made in vCenter are ‘synchronised’ with CloudStack’s database without removing and re-adding the primary storage.

Datastore cluster state synchronisation is triggered in the following three scenarios:

1. New API syncStoragePool is called on datastore cluster with the new parameter ‘Id’ (UUID of the storage pool (mandatory parameter))
2. Primary storage enabled, or maintenance operations cancelled
3. Host connects to datastore cluster

When a new child datastore is added to datastore cluster in vCenter, then a new storage pool entry is created in CloudStack’s database and the datastore cluster is marked as parent to the new storage pool. If the child datastore already exists as a storage pool then the storage pool entry will be updated with datastore cluster as its parent in the database instead of creating a new storage pool entry. Any tags on the datastore cluster will be appended to the new child storage pool. Existing tags on the child storage pool will still exist.

When an existing child datastore is removed from the datastore cluster in vCenter, then the existing child storage pool in CloudStack will be removed from the datastore cluster and created as an independent storage pool. CloudStack will then treat it as a normal storage pool. Before the independent storage pool is created, volume paths on all the volumes in the child storage pool in CloudStack are synchronised with volume paths on vCenter. This checks if storage DRS on the datastore cluster made any disk migrations.

A new action icon is added in UI for syncStoragePool API on the primary storage page. This icon is visible only for the primary storages of type datastore cluster.

vSphere Datastore cluster state synchronisation

These changes will be introduced in CloudStack 4.15.1 LTS.