Live Migration sequence diagram
Based on mriedem's hand-drawn version [1] (but not as pretty). [1] https://photos.google.com/share/AF1QipNpWVQKU8GK4_9wxVbiRJUqJnMzqPcBh6DvjVyBPIjjmi6ZU8r9TleQNo6pV1t9SA?key=NUl3OUFGYkRFTE8tMHhSX0lfc0Y1eEdoeHo4SUhn Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com> Change-Id: I63046079cd3135b4b19c0c6745075f090d04e396
This commit is contained in:
parent
adb1d8b4a5
commit
f839a97e0f
@ -46,6 +46,7 @@ extensions = ['sphinx.ext.autodoc',
|
|||||||
'ext.versioned_notifications',
|
'ext.versioned_notifications',
|
||||||
'ext.feature_matrix',
|
'ext.feature_matrix',
|
||||||
'sphinxcontrib.actdiag',
|
'sphinxcontrib.actdiag',
|
||||||
|
'sphinxcontrib.seqdiag',
|
||||||
]
|
]
|
||||||
|
|
||||||
# openstackdocstheme options
|
# openstackdocstheme options
|
||||||
@ -62,6 +63,9 @@ sample_policy_basename = '_static/nova'
|
|||||||
actdiag_html_image_format = 'SVG'
|
actdiag_html_image_format = 'SVG'
|
||||||
actdiag_antialias = True
|
actdiag_antialias = True
|
||||||
|
|
||||||
|
seqdiag_html_image_format = 'SVG'
|
||||||
|
seqdiag_antialias = True
|
||||||
|
|
||||||
todo_include_todos = True
|
todo_include_todos = True
|
||||||
|
|
||||||
# The suffix of source filenames.
|
# The suffix of source filenames.
|
||||||
|
@ -261,6 +261,7 @@ looking parts of our architecture. These are collected below.
|
|||||||
reference/api-microversion-history.rst
|
reference/api-microversion-history.rst
|
||||||
reference/gmr
|
reference/gmr
|
||||||
reference/i18n
|
reference/i18n
|
||||||
|
reference/live-migration
|
||||||
reference/notifications
|
reference/notifications
|
||||||
reference/policy-enforcement
|
reference/policy-enforcement
|
||||||
reference/rpc
|
reference/rpc
|
||||||
|
@ -13,6 +13,7 @@ The following is a dive into some of the internals in nova.
|
|||||||
|
|
||||||
* :doc:`/reference/rpc`: How nova uses AMQP as an RPC transport
|
* :doc:`/reference/rpc`: How nova uses AMQP as an RPC transport
|
||||||
* :doc:`/reference/scheduling`: The workflow through the scheduling process
|
* :doc:`/reference/scheduling`: The workflow through the scheduling process
|
||||||
|
* :doc:`/reference/live-migration`: The live migration flow
|
||||||
* :doc:`/reference/services`: Module descriptions for some of the key modules
|
* :doc:`/reference/services`: Module descriptions for some of the key modules
|
||||||
used in starting / running services
|
used in starting / running services
|
||||||
* :doc:`/reference/vm-states`: Cheat sheet for understanding the life cycle of
|
* :doc:`/reference/vm-states`: Cheat sheet for understanding the life cycle of
|
||||||
|
47
doc/source/reference/live-migration.rst
Normal file
47
doc/source/reference/live-migration.rst
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
..
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may obtain
|
||||||
|
a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
================
|
||||||
|
Live Migration
|
||||||
|
================
|
||||||
|
|
||||||
|
.. seqdiag::
|
||||||
|
|
||||||
|
seqdiag {
|
||||||
|
Conductor; Source; Destination;
|
||||||
|
edge_length = 300;
|
||||||
|
span_height = 15;
|
||||||
|
activation = none;
|
||||||
|
default_note_color = white;
|
||||||
|
|
||||||
|
Conductor -> Destination [label = "call", note = "check_can_live_migrate_destination"];
|
||||||
|
Source <- Destination [label = "call", leftnote = "check_can_live_migrate_source"];
|
||||||
|
Source --> Destination;
|
||||||
|
Conductor <-- Destination;
|
||||||
|
|
||||||
|
Conductor ->> Source [label = "cast", note = "live_migrate"];
|
||||||
|
Source -> Destination [label = "call", note = "pre_live_migration (set up dest)"];
|
||||||
|
Source <-- Destination;
|
||||||
|
|
||||||
|
=== driver.live_migration (success) ===
|
||||||
|
|
||||||
|
Source -> Source [leftnote = "post_live_migration (clean up source)"];
|
||||||
|
Source -> Destination [label = "call", note = "post_live_migration_at_destination (finish dest)"];
|
||||||
|
Source <-- Destination;
|
||||||
|
|
||||||
|
=== driver.live_migration (failure) ===
|
||||||
|
|
||||||
|
Source -> Destination [label = "call", note = "remove_volume_connections"];
|
||||||
|
Source <-- Destination;
|
||||||
|
Source ->> Destination [label = "cast", note = "rollback_live_migration_at_destination"];
|
||||||
|
}
|
@ -16,6 +16,7 @@ python-subunit>=0.0.18 # Apache-2.0/BSD
|
|||||||
requests-mock>=1.1.0 # Apache-2.0
|
requests-mock>=1.1.0 # Apache-2.0
|
||||||
sphinx>=1.6.2 # BSD
|
sphinx>=1.6.2 # BSD
|
||||||
sphinxcontrib-actdiag>=0.8.5 # BSD
|
sphinxcontrib-actdiag>=0.8.5 # BSD
|
||||||
|
sphinxcontrib-seqdiag>=0.8.4 # BSD
|
||||||
os-api-ref>=1.4.0 # Apache-2.0
|
os-api-ref>=1.4.0 # Apache-2.0
|
||||||
oslotest>=1.10.0 # Apache-2.0
|
oslotest>=1.10.0 # Apache-2.0
|
||||||
os-testr>=1.0.0 # Apache-2.0
|
os-testr>=1.0.0 # Apache-2.0
|
||||||
|
Loading…
Reference in New Issue
Block a user