[lxc-users] live migration using lxd 0.4

KATOH Yasufumi karma at jazz.email.ne.jp
Fri Mar 27 09:36:22 UTC 2015


Hi,

Thanks for your reply and detailed description!! I will try it next week.

>>> On Thu, 26 Mar 2015 11:39:01 -0600
    in message   "Re: [lxc-users] live migration using lxd 0.4"
                  Tycho Andersen-san wrote:

> Hi KATOH,

> On Thu, Mar 26, 2015 at 04:52:17PM +0900, KATOH Yasufumi wrote:
> > >>> On Tue, 24 Mar 2015 08:34:36 -0600
> >     in message   "Re: [lxc-users] live migration using lxd 0.4"
> >                   Tycho Andersen-san wrote:
> > 
> > > Sorry about that. This was a bug that I inadvertently introduce just
> > > before 0.4 was released. It is fixed by
> > > 141734d852b9ffb34eca10366e96d57c93ff23e8, which went in shortly after
> > > 0.4 was tagged, and will be in 0.5 due to be released today.
> > 
> > Thank you for your reply! I'm trying to do live migration using 0.5
> > now :-) But I have not succeeded yet. (^^;)

> I'm working on getting everything working again with privileged LXC
> (several recent changes have broken things), once that happens the LXD
> bits are in place to make it will be easy to do migration in LXD.

> > | 2015/03/26 16:41:59 operation %!s(func()
> > |  shared.OperationResult=0x4c5d20) finished: { checkpoint failed}
> > 
> > > You'll also find that you need some other stuff to do live migration
> > > (not documented anywhere, unfortunately):
> > 
> > > 1. you can't use lxcfs (or any other fuse fs)
> > 
> > I stopped lxcfs.
> > 
> > > 2. only non-uidmapped containers work (you can do this in lxd by just
> > >    setting the uidmap for lxd to be 0-65536, or by setting the uidmap
> > >    in the container's raw.lxc config)
> > 
> > I have a question. What does non-uidmapped container means? Should I
> > configure "security.privileged true"? Would you please tell me the way
> > to configure it specifically?

> I just tried to do this, and it appears to be broken. I sent a PR to
> fix it,

> https://github.com/lxc/lxd/pull/438

> So you'll need that as well as an LXC built with my two recent c/r
> patches to the lxc-devel list (which haven't been merged yet). If you
> have all that, I think you can do something like

> lxc profile create migratable
> lxc profile edit migratable

> # paste the content below; these are a bunch of fixes for current criu
> # limitations.

> name: migratable
> config:
>   raw.lxc: |
>     lxc.console = none
>     lxc.cgroup.devices.deny = c 5:1 rwm
>     lxc.start.auto =
>     lxc.start.auto = proc:mixed sys:mixed
>   security.privileged: "true"
> devices: {}

> Then do:

> # assuming lxd2 is your target remote
> lxc profile copy migratable lxd2:

> lxc init ubuntu migratee
> lxc config profile apply migratee migratable

> lxc start migratee

> # assuming lxd2 is the http:// url for your default lxd
> lxc move lxd:migratee lxd2:migratee

> And you should see it try to migrate. Currently it will still fail because of
> external bind mounts like binfmt and some others. I'm working on a patch for
> this now, but you could disable the additional bind mounts if you're not using
> them and it should work.

> Tycho



More information about the lxc-users mailing list