From ed0753ad224f0c65133bd7a63180257eecd9f5e3 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Wed, 8 Jan 2025 10:48:09 +0100 Subject: vault backup: 2025-01-08 10:48:09 --- 3 resources/openstack/nova-live-migration-volume.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 3 resources/openstack/nova-live-migration-volume.md (limited to '3 resources/openstack/nova-live-migration-volume.md') diff --git a/3 resources/openstack/nova-live-migration-volume.md b/3 resources/openstack/nova-live-migration-volume.md new file mode 100644 index 0000000..50bb6d0 --- /dev/null +++ b/3 resources/openstack/nova-live-migration-volume.md @@ -0,0 +1,14 @@ +Table cinder.volume_attachment, contains which volume_driver. target_lun `()` here maps to `dm-`. +Luns are not unique across pod, each node has a target_lun 2 and thus dm-2 connected. + +os-brick is responsible for connecting volumes; +if connection_info it receives contains target_iqns, target_luns etc it will not do a scan and just returns those. +`@see os_brick/initiator/connectors/iscsi.py` + +`nova/virt/libvirt/driver.py -> def _connect_volume` does attaching of volumes using os-brick. Driver exposes some methods that do this and are called elsewhere: `swap_volume`, `attach_volume`, `pre_live_migration`. + +`pre_live_migration` is called by `nova/compute/manager.py` + +So in `nova/compute/manager.py` there is a function that does the rollback, and it rollbacks bdm's and deletes volume attachments before it calls `rollback_live_migration_at_destination` which in turn makes an attempt at deleting the actual volume attachment to the node. But at that point all objects have been rollbacked already so it has invalid information. + +If the code in new versions of openstack isn't any different i'll just make a bug report and see what they come up with. -- cgit v1.2.3