Hide Forgot
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/migrate-volume-block-migration. Description: Problem: In a production environment where multiple Cinder volume nodes are present, some instances may have volumes attached to a Volume node that requires maintenance and/or extended downtimes. Solution: To achieve proper volume migration, this support could be added in Nova's Live (block) migration feature. Proposal is to add support for volume migration during Instance Live (Block) migration. High level outline of steps: * On Source compute node, symlinks to the currently attached cinder volumes (/dev/disks/by-path/<iqn>) are created in the instance-xxx directory before starting block migration. * During pre live migration on destination compute node, symlinks are created to the new cinder volumes /dev/disks/by-path/<iqn> in the instance-xxx directory on destination compute node. And the new volumes are connected to the destination compute node's Hypervisor. * Data is copied from source volumes to corresponding destination volumes by nova/libvirt's migrateToUri since it considers them ephemeral disks or disk images.. * During post live migration: - On source compute node, we disconnect/detach and/or delete the attached volumes. - On destination compute node, we attach the destination volumes to the migrated instance. Note: The data is copied by the migrateToURI method which treats the symlinks in instance-xxx directory as ephemeral disks or disk images and copies it block by block, hence this has to be done in block migration and cannot be done separately unless we want to handle the block copying of volumes oursevles instead of libvirt doing it. Specification URL (additional information): http://wiki.openstack.org/migrate-volume-block-migration