如何将物理系统和Xen虚拟机转换为OpenVZ容器(Debian Etch)
版本1.0
作者:Falko Timme
本指南介绍如何将物理系统(运行Debian Etch)或Xen domUs(也运行Debian Etch)转换为OpenVZ容器。 此过程也可用于将VMware VM,VirtualBox VM或KVM VM转换为OpenVZ容器,但是我还没有尝试过。 它也适用于其他Linux发行版,并进行了微小的修改(例如,如果您不在Debian / Ubuntu上,网络配置不在/ etc / network / interfaces中
)。
我不会保证这将为您工作!
1初步说明
我想将物理系统或Xen domU server1.example.com
(使用IP地址192.168.0.100
)转换为OpenVZ容器。 我有一个第二个服务器server2.example.com
,根据本指南设置OpenVZ: 在Debian Etch上安装和使用OpenVZ 。 我将使用VEID 211作为server2.example.com上的新OpenVZ 容器
。
我将使用/ vz
这里作为OpenVZ目录,所以确保/ vz
是/ var / lib / vz
的符号链接:
server2:
ln -s /var/lib/vz /vz
2将server1.example.com转换为OpenVZ
首先,我们为server2上的新OpenVZ容器211创建两个空目录,并为新容器创建一个标准的OpenVZ配置文件:
server2:
mkdir /vz/root/211 /vz/private/211
cat /etc/vz/conf/ve-vps.basic.conf-sample > /etc/vz/conf/211.conf
接下来我们在两个系统上安装rsync,因为我们将使用rsync将文件从server1
传输到OpenVZ容器:
server1 / server2:
apt-get install rsync
现在让我们将server1
的文件传输到OpenVZ容器:
server2:
rsync -arvpz --numeric-ids --exclude dev --exclude proc --exclude tmp -e "ssh -l root@192.168.0.100" root@192.168.0.100:/ /vz/private/211/
这可能需要几分钟,具体取决于server1
上的文件数量和大小。
之后,我们可以使用vzctl
命令配置我们新的OpenVZ容器,就像从头开始创建一个新的容器一样。
OpenVZ需要知道在容器中使用哪个分发,因此我们必须设置OSTEMPLATE
值:
server2:
vzctl set 211 --ostemplate debian-4.0-i386-minimal --save
之后,您可以设置网络参数以及新容器的磁盘空间:
server2:
vzctl set 211 --onboot yes --save
vzctl set 211 --hostname server1.example.com --save
vzctl set 211 --ipadd 192.168.0.100 --save
vzctl set 211 --numothersock 120 --save
vzctl set 211 --nameserver 145.253.2.75 --nameserver 213.191.92.86 --save
vzctl set 211 --diskspace 10000000:11000000 --save
(这将设置磁盘空间限制为10GB,硬限制为11GB。)
如果你喜欢,你可以给容器一个IP地址不同于原始系统上使用的IP地址; 在这种情况下,您可能必须调整容器中的其他几个文件(例如,Apache配置等,具体取决于容器中安装的内容)。 如果您使用相同的IP地址,请勿在开启OpenVZ容器之前忘记关闭原始系统!
这些是基本设置。 当然,您也可以使用vzctl命令更改其他设置。
在开始OpenVZ容器之前,我们必须对它进行一些OpenVZ的更改:
server2:
sed -i -e '/getty/d' /vz/private/211/etc/inittab
rm -f /vz/private/211/etc/mtab
ln -s /proc/mounts /vz/private/211/etc/mtab
cp /vz/private/211/etc/fstab /vz/private/211/etc/fstab.old
grep devpts /vz/private/211/etc/fstab.old > /vz/private/211/etc/fstab
mkdir /vz/private/211/dev
mknod --mode 666 /vz/private/211/dev/ptmx c 5 2
mkdir /vz/private/211/dev/pts
cp -a /dev/ttyp* /dev/ptyp* /vz/private/211/dev/
rm -f /vz/private/211/dev/null
mknod --mode 666 /vz/private/211/dev/null c 1 3
mknod --mode 444 /vz/private/211/dev/urandom c 1 9
mkdir /vz/private/211/proc
cat /dev/null > /vz/private/211/etc/network/interfaces
就这样,你现在可以启动新的OpenVZ容器( 不要忘了关闭旧系统,如果两个都使用相同的IP! )...
server2:
vzctl start 211
...并设置密码:
vzctl exec 211 passwd
3链接
- OpenVZ: http : //wiki.openvz.org/Main_Page
- Debian: http : //www.debian.org