<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<div class="moz-text-html" lang="x-unicode"> Hi all,<br>
<br>
I'm presenting here my proposal for the feature "Guest migration"
which<br>
is expected to be implemented for Kimchi 1.4.
<h2> Description </h2>
Migrate guest vm within peer/host discovered by Kimchi peers using
openSLP.<br>
In the first stage 1, only do migration will be supported, <br>
in stage2, migrateCancel and migrateMonitor will be supported.<br>
<br>
<b>Migration Mode: </b><br>
1. Support libvirt tunnelled transport managed by direct
migration.<br>
2. Only support Live migration mode.<br>
3. Only support migration over TCP <br>
<br>
<b>Migration Capability Check</b><br>
- Source libvirtd/client should be able to connect destination
libvirtd.<br>
- CPU architectures compare(X86 vs PPC). <br>
- No PCI device passthrough.<br>
- In a shared storage pool and the pool can be access/write by
destination.<br>
<br>
<h2> REST API </h2>
Only one new REST command will be added in stage 1.
<h4> Syntax </h4>
<tt>POST /vms/</tt><tt><i><vm-name></i></tt><tt>/migrate</tt>
<h4> Parameters: </h4>
<small>in config.py.in: <br>
<br>
('migration_destination_timeout', '21600',<br>
'Maximum time the destination waits for the
migration to finish. <br>
21600 should be enough since all the peers will be in
the same LAN'),<br>
<br>
('migration_max_bandwidth', 'unlimited',<br>
'default in libvirt is unlimited'),<br>
<br>
('migration_downtime', '500',<br>
'Maxmium allowed downtime for live migration in
milliseconds '<br>
'(anything below 100ms is ignored) if you do not
care about '<br>
'liveness of migration, set to a very high value,
such as '<br>
'600000.'),<br>
</small>
<h4> Return: </h4>
An asynchronous Task with "<tt>target_uri</tt>" containing "<tt>/vms/<</tt><tt><i>new-vm-name</i></tt><tt>></tt>".<br>
As expected with any Task, the cloning process can be tracked by<br>
checking the corresponding task's status. <br>
<br>
<b>Do_migration step:</b><br>
- migration source check .<br>
- connect migration destination, guest vm config/params transfer
and setup.<br>
- migration source prepare.<br>
- do actually migration.<br>
- recover if failed.<br>
- do finish if migration successful.<br>
<br>
<br>
Comments are welcome!<br>
</div>
<pre class="moz-signature" cols="72">--
Yun Tong Jin, Simon
Linux Technology Center, Open Virtualization project
IBM Systems & Technology Group
<a class="moz-txt-link-abbreviated" href="mailto:jinyt@cn.ibm.com">jinyt@cn.ibm.com</a>, Phone: 824549654 </pre>
</body>
</html>