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:
Eric Fried 2017-09-21 15:57:09 -05:00
parent adb1d8b4a5
commit f839a97e0f
5 changed files with 54 additions and 0 deletions

View File

@ -46,6 +46,7 @@ extensions = ['sphinx.ext.autodoc',
'ext.versioned_notifications',
'ext.feature_matrix',
'sphinxcontrib.actdiag',
'sphinxcontrib.seqdiag',
]
# openstackdocstheme options
@ -62,6 +63,9 @@ sample_policy_basename = '_static/nova'
actdiag_html_image_format = 'SVG'
actdiag_antialias = True
seqdiag_html_image_format = 'SVG'
seqdiag_antialias = True
todo_include_todos = True
# The suffix of source filenames.

View File

@ -261,6 +261,7 @@ looking parts of our architecture. These are collected below.
reference/api-microversion-history.rst
reference/gmr
reference/i18n
reference/live-migration
reference/notifications
reference/policy-enforcement
reference/rpc

View File

@ -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/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
used in starting / running services
* :doc:`/reference/vm-states`: Cheat sheet for understanding the life cycle of

View 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"];
}

View File

@ -16,6 +16,7 @@ python-subunit>=0.0.18 # Apache-2.0/BSD
requests-mock>=1.1.0 # Apache-2.0
sphinx>=1.6.2 # BSD
sphinxcontrib-actdiag>=0.8.5 # BSD
sphinxcontrib-seqdiag>=0.8.4 # BSD
os-api-ref>=1.4.0 # Apache-2.0
oslotest>=1.10.0 # Apache-2.0
os-testr>=1.0.0 # Apache-2.0