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(a)redhat.com> wrote on 04/03/2010
11:50:44:
Daniel Veillard <veillard(a)redhat.com>
04/03/2010 11:50
Please respond to
veillard(a)redhat.com
To
Kenneth Nagin/Haifa/IBM@IBMIL
cc
"Daniel P. Berrange" <berrange(a)redhat.com>, libvir-list(a)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(a)redhat.com> wrote on 03/03/2010 10:18:08:
>
> > Daniel Veillard <veillard(a)redhat.com>
> > 03/03/2010 10:18
> >
> > Please respond to
> > veillard(a)redhat.com
> >
> > To
> >
> > Kenneth Nagin/Haifa/IBM@IBMIL
> >
> > cc
> >
> > "Daniel P. Berrange" <berrange(a)redhat.com>,
libvir-list(a)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(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/