...
Architecture and Design description
DB Changes
There are no db changes for the feature.
Registering zone wide primary storage
- CreateStoragePool api issued with scope as 'zone' and hypervisor type as 'Hyperv'
- Storage pool entry is persisted in the database.
- A ModifyStoragePoolCommand is send to all up and enabled Hyper-V hosts in the zone.
- The host makes a note and persists the zone wide primary storage path in its configuration file.
- On success, the zone wide storage pool state is marked as 'Up' in the database.
- Whenever a new host is added to the zone, ModifyStoragePoolCommand is send to the new host too.
Storage allocation
- When a volume is created, cloudstack queries all the storage allocators for a suitable pool for the volume. It checks with the allocator storage allocators for a suitable pool for the volume in the following order; local, cluster and finally zone wide storage allocator.
- If a suitable pool is found by any of the allocators; then that pool the volume is placed on that pool.
- If a volume is created with a 'Shared' disk offering and a cluster wide and a zone wide pool, both a re are available; the volume may get placed in either of the pools.
- To guarantee placement of a volume on a zone wide primary storage; storage tags may be used.
...