如何从 OpenVZ 模板在 LVM 上创建 LXC 容器?

如何从 OpenVZ 模板在 LVM 上创建 LXC 容器?

我使用 OpenVZ 的经验非常丰富,但我想在一台无需考虑完美隔离的服务器上尝试一下 LXC。切换的主要原因是更喜欢使用 Ubuntu Server LTS 作为基础操作系统,但 OpenVZ 项目目前仅支持 RHEL 内核,最新的内核补丁是 2.6.32。

这台新服务器运行的是 Ubuntu 12.04 LTS。我发现使用提供的容器模板(即)创建容器非常简单lxc-create -t ubuntu -n testvps -B lvm --vgname vps --fssize 20G --fstype ext4。但是,我还没有找到任何实质性的信息来解释如何采用预先创建的 OpenVZ 模板并将其用作 LXC 容器的基础。我见过的文章基本推荐OpenVZ 模板是 LXC 容器的一个不错的选择。但是如何实现呢?这篇文章接近,但它使用路径Ubuntu 12.04 没有并直接提取到文件系统而不是 LVM 逻辑卷。由于对 LXC 还很陌生,我肯定我一定遗漏了一些东西。我需要知道应该将 OpenVZ 模板 tarball 放在哪里(或提取它),以便 lxc-create -t​​` 命令可以从中初始化。

我需要在 Ubuntu 12.04 下的 LVM 卷上创建一个 LXC 容器OpenVZ 预先创建的 CentOS 6 模板。任何能为我指明正确方向的帮助都将不胜感激。谢谢!

答案1

我一直使用 LXC 和 OpenVZ CentOS 模板来执行此操作。

我最初遵循的两个指南是这里这里

我通常将容器放在/srv/或下/srv/lxc/。我不用 LVM,但如果您愿意,只需将新的 LVM 卷挂载到/srv/lxc/container_name每个容器下即可。这很合理,对吧?

在这个例子中,我有一个Linux 上的 ZFS 挂载我希望容器驻留在以下位置/srv

[root@Lancaster_Mirror1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/c0d0p2      12G  1.9G  9.4G  17% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/cciss/c0d0p1     291M   59M  218M  22% /boot
/dev/cciss/c0d0p7     2.0G  119M  1.8G   7% /tmp
/dev/cciss/c0d0p3     9.9G  1.9G  7.5G  20% /usr
/dev/cciss/c0d0p6     6.0G  321M  5.3G   6% /var
vol2/images            98G   43G   56G  44% /images
vol3/Lancaster_Test    98G   22G   77G  22% /srv/Lancaster_Test <<--container

至于 LXC 安装,我采用预先构建的 OpenVZ 映像并将其放入目标容器目录中,然后将其解压 - tar -ztvf centos-6-x86_64-devel.tar.gz。无需对模板进行任何修改即可使其工作。

  426  wget http://downloads.sourceforge.net/project/lxc/lxc/lxc-0.7.3/lxc-0.7.3.tar.gz
  427  rpmbuild -ta lxc-0.7.3.tar.gz
  429  rpmbuild -ta lxc-0.7.3.tar.gz
  434  yum --nogpg install lxc-0.7.3-1.x86_64.rpm libvirt
  437  lxc-create -f /etc/lxc/Lancaster_Test.conf -n Lancaster_Test
  438  lxc-checkconfig
  441  screen -dmS init-Lancaster_Test /usr/bin/lxc-start -n Lancaster_Test
  442  screen -dmS console-Lancaster_Test /usr/bin/lxc-console -n Lancaster_Test

也许我错了,但我选择直接在文件系统上使用容器。你在做其他事情吗?

我可以提供 lxc 配置文件的摘录,但您似乎对此没有异议。

相关内容