In my OpenStack setup (RDO, Victoria) there is 2 availability zones - every AZ is a separate datacenter. In every availability zone I have a storage-node with FC-backend. Part of cinder config:
AZ1:
[3par]
volume_backend_name=FC
volume_driver=cinder.volume.drivers.hpe.hpe_3par_fc.HPE3PARFCDriver
...
AZ2:
[huawei]
volume_backend_name=FC
volume_driver=cinder.volume.drivers.huawei.huawei_driver.HuaweiFCDriver
...
I can migrate detached volumes between my AZs by cinder because every cinder-volume (storage nodes) are connected to boths hardware storages. But I definitively cannot migrate attached volumes because of nova client error in cinder-volume log when I try to migrate:
openstack volume migrate --host %storage_host%@%storate_backend% %volume_id%
novaclient.exceptions.BadRequest: Invalid volume: Instance %instance_id% and volume %volume_id% are not in the same availability_zone. Instance is in AZ1. Volume is in AZ2 (HTTP 400)
Attached volumes not migrating when instance running, stopped, shelved or being in any other state giving some similar errors. I found that if instance is shelved I can try unshelve it in different availability zone, but it didn't work anyway.
I try to detach volumes and migrate them, but bad thing is that I can't detach root volume even if instance shelved.
I found this blueprint but not find any implementations
Is there a way to migrate instance (or even attached volumes) to different AZ? Any help or advices appreciated.