summaryrefslogtreecommitdiff
path: root/3 resources/openstack/nova-live-migration-volume.md
diff options
context:
space:
mode:
Diffstat (limited to '3 resources/openstack/nova-live-migration-volume.md')
-rw-r--r--3 resources/openstack/nova-live-migration-volume.md14
1 files changed, 14 insertions, 0 deletions
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 `(<n>)` here maps to `dm-<n>`.
+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.