我想备份lxc容器。我们有一个带有12.04 LTS ubuntu服务器的服务器,我已经安装了
LXC-1.0。0.其中包含字母2
。我想把我们的ubuntu服务器升级到14.04 LTS。所以我想做的是备份LXC容器-
#sudo lxc-start -n my_container
lxc-start: invalid sequence number 1, expected 4.
lxc-start: failed to spwan "my_container"
那我怎么能指望它能在升级后的14.04服务器操作系统中工作。
有没有关于lxc容器备份的想法?
我发现备份容器最简单的方法就是运行lxc克隆。
lxc-clone -o NAMEOFCONTAINER -n NAMEOFCONTAINER -P BACKUPDIR
恢复它只需将备份复制或移动回/var/lib/lxc即可。您还可以对其进行tar以节省空间。
要将lxc
容器快速备份到没有btrfs
文件系统的远程
主机,我使用sshfs
从远程
主机挂载文件系统
我现在运行我的lxc
容器上的btrfs
文件系统,使它更简单地采取快照
的运行容器
我使用Duply备份LXC容器。与备份普通机器不同,您确实希望在备份中包含来自LXC容器的/dev
。
apt-get install duply
duply mybackup create
在~/。duply/mybackup/exclude
我使用了:
- /cdrom
- /dev
- /lost+found
- /media
- /mnt
- /proc
- /run
- /sys
- /tmp
- /var/backup/restore/*
- /var/backup/tmp/*
- /var/lib/lxc/*/rootfs/lost+found
- /var/lib/lxc/*/rootfs/media/*
- /var/lib/lxc/*/rootfs/mnt/*
- /var/lib/lxc/*/rootfs/proc/*
- /var/lib/lxc/*/rootfs/run/*
- /var/lib/lxc/*/rootfs/sys/*
- /var/lib/lxc/*/rootfs/tmp/*
- /var/lib/lxcfs/*
上面会备份整个机器
要只是备份容器,请编辑~/. duply/myback/conf
通过运行Alpine Linux LXC容器进行测试-也可以在Debian上运行。
使用Duply进行简单备份-您还可以对本地文件执行非常简单的未加密备份(在~/.Duply/mybackup/conf中设置
TARGET='file://[relative |/absolute]/local/path'
)
要对双重备份进行签名,请参阅自动化环境中的GnuPG(无密码签名密钥,而不是以明文形式存储密码)。
为cron作业在Duply
conf
文件中设置GPG\u TEST='disabled'
。
如果您没有在
conf
中存储任何明文密码,请不要在恢复时禁用GPG_测试
,以便GPG代理
缓存您的密码。
如果你无意中发现了这篇文章,我的答案实际上是关于在系统之间移动LXC容器,因为这似乎是要问的问题。
如果您想备份您的LXC容器,请参阅@Stuart的答案以获得一些很好的选项。
这就是我在系统之间迁移LXC容器的方式。我已经成功地将基于ubuntu的12.04容器迁移到14.04主机上,它们工作得很好。
>
# lxc-stop -n $NAME
存档容器rootfs
# cd /var/lib/lxc/$NAME/
# tar --numeric-owner -czvf container_fs.tar.gz ./*
--numeric owner
标志非常重要!如果没有它,容器可能无法启动,因为uid/GID在提取的文件系统中被损坏。tar创建存档时,会保留用户/组所有权信息。默认情况下,提取时,tar尝试使用运行tar的系统上的id解析存档用户/组所有权名称。这是为了确保在新系统上解决用户所有权问题,以防系统之间的UID数值不同。
这对LXC文件系统来说很糟糕,因为数字uid/gid所有权打算为整个文件系统保留。如果它被解析为不同的值,坏事就会发生。
将文件复制到新服务器
# rsync -avh container_fs.tar.gz user@newserver:/var/lib/lxc/
提取根
# mkdir /var/lib/lxc/$NAME/
# cd /var/lib/lxc/$NAME/
# tar --numeric-owner -xzvf container_fs.tar.gz .
如果使用覆盖支持的容器,还需要迁移这个新容器所基于的容器。最后,您可能会看到一些关于跳过套接字文件的警告:
tar: /var/lib/lxc/$NAME/rootfs/dev/log:忽略套接字
我忽略了这个错误,并且我管理的任何容器都没有任何问题。如果您还有其他问题,请将您的错误消息添加到原始帖子中,我会详细说明。
我通过C API使用LXC,并简单地复制和粘贴了示例代码(如链接所示,但用我自己的函数名替换了)。然后从程序中的另一个代码块中调用它,我无法使容器正常启动。 调用只会返回false。如果我将第二个参数更改为start为0(意味着应该使用而不是/sbin/init),则start“成功”,但容器状态立即设置为,因此我无法连接到容器。 正在尝试通过设置获取日志: 只生成空文件。 想到这可能与我看到的另
导出 Navicat Monitor 设置可用于应用程序服务器迁移或备份目的。导出的 zip 文件包括令牌密钥、实例设置、存储库数据库设置以及还原时所需的所有文件。若要备份 Navicat Monitor 设置,请前往“配置”->“备份、升级或迁移”。 【注意】你只能在相同的主版本和次版本迁移设置。例如,Navicat Monitor v1.1.x 只接受 v1.1.y 的 zip 文件。 备份
我一直在尝试在运行debian wheezy的lxc容器中使用libnfc。在尝试了一些东西和库之后,因此证明了lxc方法的合理性,我最终到达了一个我不知道去哪里寻找的地步。 问题是主机看到的是我的usb设备,而不是容器。 我在容器的lxc配置文件中添加了以下内容: 当我在容器上尝试lsusb时,我得到: 鉴于主机给出: 这就是我要找的设备。 令人惊讶的是,容器可以看到设备: 我已经检查了libu
我使用以下配置将lirc0绑定到容器中。 主机中/dev/lirc0的属性如下所示。 我使用lxc连接进入容器。容器中的属性与主机相同 但是无法打开。错误是“不允许操作”,我是容器中的主管(root)。 如何获得访问容器中的的权限?
我正在ubuntu 14.04上试验lxc。为了管理几个lxc实例,我使用python3lxc。使用pyhthon3 lxc,我确实无法克隆现有容器: 相应地, /var/lib/lxc.vanilla_clone没有根基使用 很好。(python3和lxc克隆,两者都是从sudo开始的。)这是python3_lxc中的一个bug或限制,还是我遗漏了什么? 事后思考:使用lxc。容器create需
MinDoc 备份分为数据库备份和文件备份。 mysql 数据库的备份 如果你使用的是mysql数据库,可以有以下集中方式来备份你的数据库: mysqldump备份数据库* 在mysql命令行中执行如下命令来备份数据库: mysqldump --databases mindoc_db > mindoc_db.sql mysqldump 完整的参数是: mysqldump -u USER_NAME