[libvirt] Live Migration with non-shared storage for kvm

On February 16th I posted a patch and description for libvirt support of 'Live Migration with non-shared strorage for kvm.' What is the status of the proposed enhancement? Kenneth Nagin

On Wed, Mar 03, 2010 at 08:52:07AM +0200, Kenneth Nagin wrote:
On February 16th I posted a patch and description for libvirt support of 'Live Migration with non-shared strorage for kvm.' What is the status of the proposed enhancement?
I'm afraid that Dan and me got too busy last week and didn't review it, The patch looks mostly sane, I'm just a bit suspicious about the handling of option string in the QEmu command line building code. I suggest you rebase the patch to 0.7.7 when it's out and send it again, so we can review and push it next week, thanks ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

>Daniel Veillard <veillard@redhat.com> wrote on 03/03/2010 10:18:08: > Daniel Veillard <veillard@redhat.com> > 03/03/2010 10:18 > > Please respond to > veillard@redhat.com > > To > > Kenneth Nagin/Haifa/IBM@IBMIL > > cc > > "Daniel P. Berrange" <berrange@redhat.com>, libvir-list@redhat.com > > Subject > > Re: [libvirt] Live Migration with non-shared storage for kvm > > On Wed, Mar 03, 2010 at 08:52:07AM +0200, Kenneth Nagin wrote: > > > > On February 16th I posted a patch and description for libvirt support of > > 'Live Migration with non-shared strorage for kvm.' > > What is the status of the proposed enhancement? > > I'm afraid that Dan and me got too busy last week and didn't review it, > The patch looks mostly sane, I'm just a bit suspicious about the > handling of option string in the QEmu command line building code. > > I suggest you rebase the patch to 0.7.7 when it's out and send it > again, so we can review and push it next week, > > thanks ! > > Daniel Ok. I have a few questions: 1) What is the best way to know that the release is out? Do I just poll the http://libvirt.org/news.html? 2) I found working with "tip" of the difficult since it was constantly changing. From your note I understand that I should work with the last stable release. Assuming that I am correct is this the recommended method to get a particular release: git clone git://libvirt.org/libvirt.git cd libvirt git reset --hard <release tag name> 3) Is this the recommended method to generate a patch from the above release: git diff master > patch 3) Could you send me a pointer describing p2p, tunneled, and direct migration? - Kenneth Nagin > > -- > Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ > daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ > http://veillard.com/ | virtualization library http://libvirt.org/

On Thu, Mar 04, 2010 at 10:04:30AM +0200, Kenneth Nagin wrote: > > >Daniel Veillard <veillard@redhat.com> wrote on 03/03/2010 10:18:08: > > > Daniel Veillard <veillard@redhat.com> > > 03/03/2010 10:18 > > > > Please respond to > > veillard@redhat.com > > > > To > > > > Kenneth Nagin/Haifa/IBM@IBMIL > > > > cc > > > > "Daniel P. Berrange" <berrange@redhat.com>, libvir-list@redhat.com > > > > Subject > > > > Re: [libvirt] Live Migration with non-shared storage for kvm > > > > On Wed, Mar 03, 2010 at 08:52:07AM +0200, Kenneth Nagin wrote: > > > > > > On February 16th I posted a patch and description for libvirt support > of > > > 'Live Migration with non-shared strorage for kvm.' > > > What is the status of the proposed enhancement? > > > > I'm afraid that Dan and me got too busy last week and didn't review it, > > The patch looks mostly sane, I'm just a bit suspicious about the > > handling of option string in the QEmu command line building code. > > > > I suggest you rebase the patch to 0.7.7 when it's out and send it > > again, so we can review and push it next week, > > > > thanks ! > > > > Daniel > Ok. > I have a few questions: > 1) What is the best way to know that the release is out? Do I just poll > the http://libvirt.org/news.html? I make the announce on the mailing-list when I release. I also try to post statuses on a weekly or so basis https://www.redhat.com/archives/libvir-list/2010-February/msg00130.html https://www.redhat.com/archives/libvir-list/2010-February/msg00784.html https://www.redhat.com/archives/libvir-list/2010-March/msg00126.html > 2) I found working with "tip" of the difficult since it was constantly > changing. From your note I understand that I should work with the last > stable release. Assuming that I am correct is this the recommended method > to get a particular release: > git clone git://libvirt.org/libvirt.git > cd libvirt > git reset --hard <release tag name> make a branch, work on that branch, that won't change, just "git rebase" from time to time. Never try to develop pathes directly on master. > 3) Is this the recommended method to generate a patch from the above > release: > git diff master > patch git diff > patch in your branch if you didn't commited (simple patch) otherwise commit on your branch, then the commits can be pulled in various ways. Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

In order to support kvm's live migration with non-shared storage I added two migration flags that user can invoke: VIR_MIGRATE_NON_SHARED_DISK = (1 << 6), /* migration with non-shared storage with full disk copy */ VIR_MIGRATE_NON_SHARED_INC = (1 << 7), /* migration with non-shared storage with incremental copy */ /* (same base image shared between source and destination) */ Likewise I add complementary flags to virsh migrate: non_shared_disk and non_shared_inc As Daniel B. suggested I also added internal flags to be passed in the "background" parameter to the qemu monitor: typedef enum { QEMU_MONITOR_MIGRATE_BACKGROUND = 1 << 0, QEMU_MONITOR_MIGRATE_NON_SHARED_DISK = 1 << 1, /* migration with non-shared storage with full disk copy */ QEMU_MONITOR_MIGRATE_NON_SHARED_INC = 1 << 2, /* migration with non-shared storage with incremental copy */ QEMU_MONITOR_MIGRATION_FLAGS_LAST }; I updated qemu_driver.c's doNativeMigrate and doTunnelMigrate to map the external flags to the internal flags. I updated qemu_monitor_text's qemuMonitorTextMigrate to map the internal flags to the qemu monitor's command line flags. I tested the doNativeMigrate usage of the two flags. However, I could not test the doTunnelMigrate usage because I wasn't sure how it works. Also, qemudDomainSave ends up calling qemuMonitorTextMigrate, but it didn't support the external flags so I assumed that it was not relevant. Here is the diff patch file from the current git: (See attached file: libvirt_migration_ns.patch) -- Kenneth Nagin >Daniel Veillard <veillard@redhat.com> wrote on 04/03/2010 11:50:44: > Daniel Veillard <veillard@redhat.com> > 04/03/2010 11:50 > > Please respond to > veillard@redhat.com > > To > > Kenneth Nagin/Haifa/IBM@IBMIL > > cc > > "Daniel P. Berrange" <berrange@redhat.com>, libvir-list@redhat.com > > Subject > > Re: [libvirt] Live Migration with non-shared storage for kvm > > On Thu, Mar 04, 2010 at 10:04:30AM +0200, Kenneth Nagin wrote: > > > > >Daniel Veillard <veillard@redhat.com> wrote on 03/03/2010 10:18:08: > > > > > Daniel Veillard <veillard@redhat.com> > > > 03/03/2010 10:18 > > > > > > Please respond to > > > veillard@redhat.com > > > > > > To > > > > > > Kenneth Nagin/Haifa/IBM@IBMIL > > > > > > cc > > > > > > "Daniel P. Berrange" <berrange@redhat.com>, libvir-list@redhat.com > > > > > > Subject > > > > > > Re: [libvirt] Live Migration with non-shared storage for kvm > > > > > > On Wed, Mar 03, 2010 at 08:52:07AM +0200, Kenneth Nagin wrote: > > > > > > > > On February 16th I posted a patch and description for libvirt support > > of > > > > 'Live Migration with non-shared strorage for kvm.' > > > > What is the status of the proposed enhancement? > > > > > > I'm afraid that Dan and me got too busy last week and didn't review it, > > > The patch looks mostly sane, I'm just a bit suspicious about the > > > handling of option string in the QEmu command line building code. > > > > > > I suggest you rebase the patch to 0.7.7 when it's out and send it > > > again, so we can review and push it next week, > > > > > > thanks ! > > > > > > Daniel > > Ok. > > I have a few questions: > > 1) What is the best way to know that the release is out? Do I just poll > > the http://libvirt.org/news.html? > > I make the announce on the mailing-list when I release. I also try to > post statuses on a weekly or so basis > > https://www.redhat.com/archives/libvir-list/2010-February/msg00130.html > https://www.redhat.com/archives/libvir-list/2010-February/msg00784.html > https://www.redhat.com/archives/libvir-list/2010-March/msg00126.html > > > 2) I found working with "tip" of the difficult since it was constantly > > changing. From your note I understand that I should work with the last > > stable release. Assuming that I am correct is this the recommended method > > to get a particular release: > > git clone git://libvirt.org/libvirt.git > > cd libvirt > > git reset --hard <release tag name> > > make a branch, work on that branch, that won't change, just "git rebase" > from time to time. Never try to develop pathes directly on master. > > > 3) Is this the recommended method to generate a patch from the above > > release: > > git diff master > patch > > git diff > patch in your branch if you didn't commited (simple patch) > otherwise commit on your branch, then the commits can be pulled in various > ways. > > Daniel > > -- > Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ > daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ > http://veillard.com/ | virtualization library http://libvirt.org/
participants (2)
-
Daniel Veillard
-
Kenneth Nagin