[openstack-dev] [nova][cinder][neutron] Cross-cell cold migration

Matt Riedemann mriedemos at gmail.com
Fri Aug 24 21:10:07 UTC 2018


+operators

On 8/24/2018 4:08 PM, Matt Riedemann wrote:
> On 8/23/2018 10:22 AM, Sean McGinnis wrote:
>> I haven't gone through the workflow, but I thought shelve/unshelve 
>> could detach
>> the volume on shelving and reattach it on unshelve. In that workflow, 
>> assuming
>> the networking is in place to provide the connectivity, the nova 
>> compute host
>> would be connecting to the volume just like any other attach and 
>> should work
>> fine. The unknown or tricky part is making sure that there is the network
>> connectivity or routing in place for the compute host to be able to 
>> log in to
>> the storage target.
> 
> Yeah that's also why I like shelve/unshelve as a start since it's doing 
> volume detach from the source host in the source cell and volume attach 
> to the target host in the target cell.
> 
> Host aggregates in Nova, as a grouping concept, are not restricted to 
> cells at all, so you could have hosts in the same aggregate which span 
> cells, so I'd think that's what operators would be doing if they have 
> network/storage spanning multiple cells. Having said that, host 
> aggregates are not exposed to non-admin end users, so again, if we rely 
> on a normal user to do this move operation via resize, the only way we 
> can restrict the instance to another host in the same aggregate is via 
> availability zones, which is the user-facing aggregate construct in 
> nova. I know Sam would care about this because NeCTAR sets 
> [cinder]/cross_az_attach=False in nova.conf so servers/volumes are 
> restricted to the same AZ, but that's not the default, and specifying an 
> AZ when you create a server is not required (although there is a config 
> option in nova which allows operators to define a default AZ for the 
> instance if the user didn't specify one).
> 
> Anyway, my point is, there are a lot of "ifs" if it's not an 
> operator/admin explicitly telling nova where to send the server if it's 
> moving across cells.
> 
>>
>> If it's the other scenario mentioned where the volume needs to be 
>> migrated from
>> one storage backend to another storage backend, then that may require 
>> a little
>> more work. The volume would need to be retype'd or migrated (storage 
>> migration)
>> from the original backend to the new backend.
> 
> Yeah, the thing with retype/volume migration that isn't great is it 
> triggers the swap_volume callback to the source host in nova, so if nova 
> was orchestrating the volume retype/move, we'd need to wait for the swap 
> volume to be done (not impossible) before proceeding, and only the 
> libvirt driver implements the swap volume API. I've always wondered, 
> what the hell do non-libvirt deployments do with respect to the volume 
> retype/migration APIs in Cinder? Just disable them via policy?
> 


-- 

Thanks,

Matt



More information about the OpenStack-dev mailing list