From 9642cd7ae24f0ba79ce5647c709b35ae8f06a285 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Sun, 19 Jan 2025 21:14:51 +0100 Subject: vault backup: 2025-01-19 21:14:51 --- 3 Resources/Openstack/Nova live migration volume.md | 18 ++++++++++++++++++ 1 file changed, 18 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..8b37f67 --- /dev/null +++ b/3 Resources/Openstack/Nova live migration volume.md @@ -0,0 +1,18 @@ +#openstack #nova #live-migration #volume + + +--- +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