Features/PostCopyLiveMigrationYabusame: Difference between revisions
(Created page with '== summary == post-copy based live migration == owner == * '''Name:''' Hirofuchi Takahiro,…') |
|||
(8 intermediate revisions by 3 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@ | * ''' Email:''' t.hirofuchi@aist.go.jp , isaku.yamahata@gmail.com | ||
== description == | == description == | ||
This | 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 == | |||
The migration procedure looks like | 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 | * start migration: stop the guest VM on the source and send the machine states except guest RAM to the destination | ||
Line 19: | Line 21: | ||
[ | [[File:postcopy-livemigration.png|600px|||postcopy livemigration]] | ||
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
- Name: Hirofuchi Takahiro, Isaku Yamahata,
- Email: t.hirofuchi@aist.go.jp , isaku.yamahata@gmail.com
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
- 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