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.
These changes will be introduced in CloudStack 4.15.1 LTS.
Harikrishna works at ShapeBlue as a Software Engineer, and is also engaged with active development of new features and capabilities for the Apache CloudStack project. He has been working on CloudStack since 2012 and is a committer in this project. Before joining ShapeBlue, Harikrishna worked for Citrix Systems and Accelerite. He holds an M.Tech in Computer Science and Engineering from IIT-Madras.
You can learn more about Harikrishna and his background by reading his Meet The Team blog.