zid*_*sk8 12 snapshot containers btrfs lxc
假设我们有一个安装了 lxc 的服务器,以及一个用作基础 img 的 lxc 容器/var/lib/lxc/ubuntu_base
。为简单起见,让我们忘记复制基础 img 后的配置更改。
有些人建议使用子卷和快照来制作新容器,但可以轻松地执行 cp --reflink 并获得类似的结果。
那么管理多个容器的正确方法(或哪种更好)是什么?
这种方式看起来最好,但是像 lxc-destroy 这样的命令将不起作用,因为它无法删除目录。
btrfs subvolume snapshot /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
Run Code Online (Sandbox Code Playgroud)
我不确定这个或快照之间是否有任何性能差异
cp --reflink=always /var/lib/lxc/ubuntu_base /var/lib/lxc/container_1
Run Code Online (Sandbox Code Playgroud)
编辑:
我在 reflink 选项中看到的一件事是,如果其他容器正在运行,则无法删除基本容器,因为/proc
和/dev
已安装且从未更改,因此引用始终相同。但是关闭所有复制的容器似乎有帮助。
小智 2
我在 Ubuntu LTS 14 上,刚刚运行了以下命令(甚至是第一次),它的效果非常好:
lxc-stop -n ubuntu_base
lxc-clone -o ubuntu_base -n ubuntu_base_c1 -s
lxc-start -n ubuntu_base_c1 -d # make changes if needed
lxc-stop -n ubuntu_base_c1
lxc-snapshot -n ubuntu_base_c1
Run Code Online (Sandbox Code Playgroud)
如果后备存储是 btrfs (在您的情况下),则将 -s 与 lxc-clone 一起使用将拍摄快照。
验证新的克隆/快照
lxc-ls -f
btrfs subvolume list /var/lib/lxc
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
归档时间: |
|
查看次数: |
8909 次 |
最近记录: |