Features/PostCopyLiveMigrationYabusame: Difference between revisions

From QEMU
m (Replace Qemu->QEMU)
 
(5 intermediate revisions by 2 users not shown)
Line 4: Line 4:
== owner ==                                                                     
== owner ==                                                                     
* '''Name:''' [[User:Takahiri|Hirofuchi Takahiro]], [[User:yamahata|Isaku Yamahata]],                                                                           
* '''Name:''' [[User:Takahiri|Hirofuchi Takahiro]], [[User:yamahata|Isaku Yamahata]],                                                                           
* ''' Email:''' t.hirofuchi@aist.go.jp , yamahata@valinux.co.jp               
* ''' Email:''' t.hirofuchi@aist.go.jp , isaku.yamahata@gmail.com


== description ==
== description ==
This is is yet another live migration mechanism for QEMU/KVM, which
This is yet another live migration mechanism for QEMU/KVM, which
implements the migration technique known as "postcopy" or "lazy"
implements the migration technique known as "postcopy" or "lazy"
migration. Just after the "migrate" command is invoked, the execution
migration. Just after the "migrate" command is invoked, the execution
host of a VM is instantaneously switched to a destination host.
host of a VM is instantaneously switched to a destination host.
An alternative implementation has been merged in QEMU 2.5: [[Features/PostCopyLiveMigration]]


== design ==
== design ==
Line 43: Line 45:
* modification to qemu on source side
* modification to qemu on source side
* fix THP: They check if vma operations is anonymous, not if the page is anonymous.
* fix THP: They check if vma operations is anonymous, not if the page is anonymous.
* 2014-06-27 Dave Gilbert working with Andrea Arcangeli on a version; different kernel approach without the character device; status working and just cleaning up for posting


== future enhancement ==
== future enhancement ==
Line 53: Line 56:
* cooperate with Kemari
* cooperate with Kemari


== links ==                                                                    
== links ==
* [https://github.com/yamahata/qemu qemu repo for postcopy]
* [https://github.com/yamahata/linux-umem linux repo for umem driver]
                                                                   
* [http://sites.google.com/site/grivonhome/quick-kvm-migration project page]
* [http://sites.google.com/site/grivonhome/quick-kvm-migration project page]



Latest revision as of 06:04, 25 November 2015

summary

post-copy based live migration

owner

description

This is yet another live migration mechanism for QEMU/KVM, which implements the migration technique known as "postcopy" or "lazy" migration. Just after the "migrate" command is invoked, the execution host of a VM is instantaneously switched to a destination host.

An alternative implementation has been merged in QEMU 2.5: Features/PostCopyLiveMigration

design

The migration procedure looks like

  • start migration: stop the guest VM on the source and send the machine states except guest RAM to the destination
  • resume the guest VM on the destination without guest RAM contents
  • Hook guest access to pages, and pull page contents from the source. This continues until all the pages are pulled to the destination


postcopy livemigration


  • character device driver

qemu mmap() the dedicated character device, and then hook page fault. Next it send the page fault request to the user space daemon and when the daemon responds the page request with page contents, the page fault is resolved and VM execution is resumed.

  • daemon on destination side

an independent daemon vs a thread in qemu. It waits page request from the character device. When receiving the requests, it pull the page contents from the migration source, then responds the requests.

  • protocol

The existing protocol that exists today will be extended.


TODO

  • character deriver to hook guest ram access
  • daemon to handle page request
  • modification to qemu on source side
  • fix THP: They check if vma operations is anonymous, not if the page is anonymous.
  • 2014-06-27 Dave Gilbert working with Andrea Arcangeli on a version; different kernel approach without the character device; status working and just cleaning up for posting

future enhancement

  • optimization
    • another connection for background page transfer in order to reduce latency
    • mixing precopy/postcopy
    • avoid memory copy
    • hint not to send page
    • not to pull page when writing/clearing whole page
  • cooperate with Kemari

links