nova进行volume retype
nova.compute.api.API.swap_volume
-> cinderclient.v3.volumes.VolumeManager.begin_detaching
-> cinder.volume.api.API.begin_detaching
-> nova.volume.cinder.API.attachment_create
-> cinder.volume.api.API.attachment_create
-> nova.compute.manager.ComputeManager.swap_volume
-> _do_swap_volume
-> _swap_volume
-> _init_volume_connection
-> cinder.volume.api.API.attachment_update
-> nova.virt.libvirt.driver.LibvirtDriver.swap_volume
-> _connect_volume
-> os_brick.initiator.connect_volume
-> _swap_volume
-> nova.virt.libvirt.guest.BlockDevice.abort_job
-> BlockDevice.copy
-> BlockDevice.abort_job
-> nova.virt.libvirt.host.Host.write_instance_config
-> _disconnect_volume
-> os_brick.initiator.disconnect_volume
-> cinderclient.v3.attachments.VolumeAttachmentManager.complete
-> cinder.volume.api.API.attachment_delete
-> cinder.volume.api.API.migrate_volume_completion
-> bdm.update
热迁移
nova.compute.api.API.live_migrate
-> nova.conductor.api.ComputeTaskAPI.live_migrate_instance
-> nova.conductor.manager.ComputeTaskManager.live_migrate_instance
-> _live_migrate
-> nova.conductor.tasks.live_migrate.LiveMigrationTask._execute
-> _find_destination
-> _check_compatible_with_source_hypervisor
-> _call_livem_checks_on_host
-> nova.compute.manager.ComputeManager.check_can_live_migrate_destination
-> nova.compute.manager.ComputeManager.check_can_live_migrate_source
-> nova.compute.mananger.ComputeManager.live_migration
-> _do_live_migration
-> _do_pre_live_migration_from_source
-> _get_instance_block_device_info
-> ComputeManager.pre_live_migration
-> cinder.volume.api.API.attachment_create
-> nova.virt.libvirt.driver.LibvirtDriver.pre_live_migration
-> _connect_volume
-> _pre_live_migration_plug_vifs
-> nova.network.neutron.API.setup_networks_on_host
-> nova.virt.libvirt.driver.LibvirtDriver.live_migration
-> _live_migration
-> _live_migration_operation
-> nova.virt.libvirt.guest.Guest.migrate
-> opthread.link
-> _live_migration_monitor
-> nova.compute.manager.ComputeManager._post_live_migration
-> nova.virt.libvirt.LibvirtDriver.post_live_migration
-> _disconnect_volume
-> _post_live_migration_remove_source_vol_connections
-> cinder.volume.api.API.attachment_delete
-> nova.network.neutron.API.migrate_instance_start
-> nova.virt.libvirt.LibvirtDriver.post_live_migration_at_source
-> unplug_vifs
-> _unplug_vifs
-> free_pci_device_allocations_for_instance
-> nova.virt.libvirt.LibvirtDriver.cleanup
-> nova.compute.manager.ComputeManager.post_live_migration_at_destination
-> nova.network.neutron.API.setup_networks_on_host
-> nova.network.neutron.API.migrate_instance_finish
-> nova.virt.libvirt.LibvirtDriver.post_live_migration_at_destination
-> instance.save
-> nova.network.neutron.API.setup_networks_on_host