Difference between revisions of "XAPI VM Migration"

From Xen
m (Link to the code which is authoritative)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
  +
Note: this description has been out of date for a while. To see how migration works, it is best to read the code starting from here: https://github.com/xapi-project/xen-api/blob/a232a3db5e51bf21eed2680386e4de79dcf4c70e/ocaml/xapi/message_forwarding.ml#L1638
<!-- MoinMoin name: XAPI_VM_Migration -->
 
  +
<!-- Comment: -->
 
<!-- WikiMedia name: XAPI VM Migration -->
 
<!-- Page revision: 00000002 -->
 
<!-- Original date: Wed Jul 13 13:05:57 2011 (1310562357000000) -->
 
   
__NOTOC__
 
<!-- ## Please edit system and help pages ONLY in the moinmaster wiki! For more -->
 
<!-- ## information, please see [[MoinMaster]]:[[MoinPagesEditorGroup]]. -->
 
<!-- ##master-page:[[Category:Template]] -->
 
<!-- ##master-date:Unknown-Date -->
 
<!-- #format wiki -->
 
<!-- #language en -->
 
 
== XAPI VM Migration ==
 
== XAPI VM Migration ==
 
Here's an overview of how xapi does migration of VMs. The code can be found in '''api.hg/ocaml/xapi/xapi_vm_migrate.ml'''.
 
Here's an overview of how xapi does migration of VMs. The code can be found in '''api.hg/ocaml/xapi/xapi_vm_migrate.ml'''.
   
 
{| class="prettytable"
 
{| class="prettytable"
| '''Receiver'''
+
! '''Receiver'''
|
 
 
|-
 
|-
| * attach the VDIs
+
| attach the VDIs
|
 
 
|-
 
|-
| * create the domain
+
| create the domain
 
|-
 
|-
| * restore the devices (unless we must delay until after VDI activation)
+
| restore the devices (unless we must delay until after VDI activation)
 
|-
 
|-
| * send handshake to transmitter
+
| send handshake to transmitter
 
|-
 
|-
 
| '''''Synchronisation point 1'''''
 
| '''''Synchronisation point 1'''''
|
 
 
|-
 
|-
| * restore the domain, deserialising it from the transmitter
+
| restore the domain, deserialising it from the transmitter
|
 
 
|-
 
|-
|
 
 
|
 
|
 
|-
 
|-
 
| '''''Synchronisation point 2'''''
 
| '''''Synchronisation point 2'''''
|
 
 
|-
 
|-
| * receive handshake from transmitter
+
| receive handshake from transmitter
|
 
 
|-
 
|-
|
 
|
 
|-
 
|
 
 
|
 
|
 
|-
 
|-
 
| '''''Synchronisation point 3'''''
 
| '''''Synchronisation point 3'''''
|
 
 
|-
 
|-
| * activate VDIs (unless it's a localhost migrate)
+
| activate VDIs (unless it's a localhost migrate)
|
 
 
|-
 
|-
| * restore the devices (unless done already)
+
| restore the devices (unless done already)
|
 
 
|-
 
|-
| * unpause the domain
+
| unpause the domain
|
 
 
|-
 
|-
| * plug PCI devices
+
| plug PCI devices
|
 
 
|-
 
|-
| * send handshake to transmitter
+
| send handshake to transmitter
 
|-
 
|-
 
| '''''Synchronisation point 4'''''
 
| '''''Synchronisation point 4'''''
|
 
 
|-
 
|-
|
 
 
|
 
|
 
|}
 
|}
Line 77: Line 49:
 
[[Category:XAPI Devel]]
 
[[Category:XAPI Devel]]
 
[[Category:Design Document]]
 
[[Category:Design Document]]
[[Category:Developers]]
 

Latest revision as of 21:21, 20 January 2015

Note: this description has been out of date for a while. To see how migration works, it is best to read the code starting from here: https://github.com/xapi-project/xen-api/blob/a232a3db5e51bf21eed2680386e4de79dcf4c70e/ocaml/xapi/message_forwarding.ml#L1638


XAPI VM Migration

Here's an overview of how xapi does migration of VMs. The code can be found in api.hg/ocaml/xapi/xapi_vm_migrate.ml.

Receiver
attach the VDIs
create the domain
restore the devices (unless we must delay until after VDI activation)
send handshake to transmitter
Synchronisation point 1
restore the domain, deserialising it from the transmitter
Synchronisation point 2
receive handshake from transmitter
Synchronisation point 3
activate VDIs (unless it's a localhost migrate)
restore the devices (unless done already)
unpause the domain
plug PCI devices
send handshake to transmitter
Synchronisation point 4

You may be interested in a proposal for CrossPoolMigration