Re: [Xen-devel] Live Migration of Linux Desktop
> > migrate your "desktop" between home and work, whilst maintaining a
> > cache of *most* disk state at both sites. It'd also be useful when
> > transferring a virtual machine between your desktop and your laptop,
> > for instance.
> there are just some "little" problems:
> During migration between two different platforms it can often happen,
> depending on the CPU-type and actual CPU-state that the migration fails
> and the VM on the destination-system crashes.
Yep, you'd want a combination of machines that were compatible. I think most
recent Pentiums share similar instruction sets, but I think maybe Pentium M
omits a couple of P4 instructions (anybody know?). Athlon <-> Pentium
migrations are yet more dodgy!
A way to disable a subset of the hardware features to restrict software to use
only the features on all your hardware platforms would be very welcome.
> Second problem is that for migration you need a shared device for the
> image. You can use the harddrive of laptop for sharing via NFS but
> actually it's not very usefull because then you can directly work on the
Well, all you really need is some means (e.g. rsync, or something more
efficient) of transferring changed disk blocks at the same time as the
migration. For a "I'm driving to work" migration this doesn't even need to
be very fast, just pause the VM, send its memory state and then run an rsync.
We don't have a hook for this state transfer to occur on at the moment, but a
simple solution could easily be added - a more complete solution would be
more complicated but could also be done.
> And the other scenario, making snapshots in some interval is not the
> best idea too, because the saved CPU- and memory-state and the actual
> harddisc-content you have later are out of sync. With this everything
> between data-loss and machine-crash is possible!
Snapshots are fine so long as you make them coherent before you try to run
them. I was envisioning snapshotting periodically from the active to the
inactive host just to keep the state *mostly* consistent. You'd do a full
sync on demand when the user actually wanted a migration to occur. You
wouldn't usually want this behaviour because it'd waste network bandwidth and
other resources. But if (for instance) you wanted to be able to "migrate"
your work VM from your desktop to your laptop in a few seconds, you might run
the sync continually as a background task to minimize the time required to
make everything coherent when you eventually do click "sync to laptop".
For the more general case of hardware fault tolerance, you'd need a more
sophisticated snapshot mechanism so that you could guarantee the replica
could resume from a consistent state at any time. Doing this (and especially
doing this efficiently!) is a bit more tricky. I've heard of it being done
on a PA-RISC based hypervisor for HP-UX, but not on a mainstream x86
Dave: Just a question. What use is a unicyle with no seat? And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!
Xen-devel mailing list