1

从快照创建容器时,我在使用 lxd 和 zfs 作为后台存储时遇到问题。我可以创建容器,但是当我删除它时,快照会在 zfs 级别(而不是 lxd)被删除。

我在 Ubuntu 16.04 中使用 lxd,有趣的是,并非每个盒子都发生这种情况:有些工作正常,有些从来没有,还有一些工作正常一段时间然后坏了。

我现在想知道从快照创建容器是否合法,或者操作语义是否未指定。

这可以在这个例子中看到

$ lxc launch ubuntu:14.04 mycontainer  # Happens with other images
$ lxc stop mycontainer                 # stop is optional
$ lxc snapshot mycontainer mysnap0
$ lxc copy mycontainer/mysnap0 mycontainer1
$ lxc delete mycontainer1
$ lxc copy mycontainer/mysnap0 mycontainer2
error: rsync failed: rsync: change_dir "/var/lib/lxd/snapshots/mycontainer/mysnap0" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]

但是lxd还是觉得snapshot好。

$ lxc info mycontainer
Name: mycontainer
Architecture: x86_64
Created: 2016/06/16 10:53 UTC
Status: Stopped
Type: persistent
Profiles: default
Snapshots:
  mysnap0 (taken at 2016/06/16 10:54 UTC) (stateless)

另一个让我想到的例子是 lxd 请求 zfs 删除快照:

$ lxc snapshot mycontainer mysnap1
$ lxc copy mycontainer/mysnap1 mycontainer2
$ lxc copy mycontainer/mysnap1 mycontainer3
$ lxc delete mycontainer2
error: Failed to destroy ZFS filesystem: cannot destroy 'debtool/containers/mycontainer@snapshot-mysnap1': snapshot has dependent clones

还有一些关于我使用的版本的信息:

zfs-zed                   0.6.5.6-0ubuntu8
zfsutils-linux            0.6.5.6-0ubuntu8
lxd                       2.0.2-0ubuntu1~16.04.1
lxd-client                2.0.2-0ubuntu1~16.04.1
lxd-tools                 2.0.2-0ubuntu1~16.04.1
liblxc1                   2.0.0-0ubuntu2
lxc                       2.0.0-0ubuntu2
lxc-common                2.0.0-0ubuntu2
lxc-templates             2.0.0-0ubuntu2
lxc1                      2.0.0-0ubuntu2
lxcfs                     2.0.0-0ubuntu2.1

关于如何解决/解决问题的任何想法?

4

0 回答 0