我使用 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 配置文件的摘录,但您似乎对此没有异议。