debian 安装 OpenVZ+OpenVZ Web Panel
源地址:http://www.howtoforge.com/installing-and-using-openvz-on-debian-lenny-amd64
原作者: Falko Timme <ft [at] falkotimme [dot] com>
翻译者: Topkey <www.txtbar.cn>
最后编辑时间:02/04/2009
使用说明:蓝色字体为链接、红色字体为shell中的命令、棕色字体为文件中的内容或者是屏幕中显示的字符、灰色字体为正文
在这篇教程中我将会为大家讲解如何在Debian Lenny服务器上安装OpenVZ。使用OpenVZ你可以在同一个硬件环境中创建多个虚拟化专用服务器(VPS),其作用类似于Xen和Linux Vserver项目.OpenVZ是Virtuozzo旗下的一款开源品牌,提供一个商业的虚拟化解决方案.已经被许多提供虚拟化服务器的提供商使用。OpenVZ内核是遵循GPL授权许可,并且其用户化工具遵循QPL许可。
这篇教程是一篇实用教程,它不包括相关的理论背景,如需了解相关理论背景请查询网络其他的文档。
这篇文档不附带任何形式的保证,我想要说的是这不仅仅是设置此类系统的唯一方法,还有很多达到这个目的的方法,但是我使用的是教程中的方法,我使用此方法,没有任何问题。
1前言
我在这里使用的是一个X86_64(amd64平台下)的系统,如果你是在i386平台,在一些命令的使用上或许有些不同,我将会在不同点特别注别。
2.安装OpenVZ
OpenVZ的内核、vzctl和vzquota包在Debian Lenny库中,我们要使用下列命令安装他们:
apt-get install linux-image-openvz-amd64 vzctl vzquota
(如果你是用的是i386的系统,内核包的名字是linux-image-openvz-686)
创建一个提供后台兼容的符号链接从/var/lib/vz 到 /vz。
ln -s /var/lib/vz /vz
打开/etc/sysctl.conf文件并且确保使用下面的设置:
vi /etc/sysctl.conf
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.ip_forward=1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.eth0.proxy_arp=1
如果你要修改/etc/sysctl.conf文件运行下列命令:
sysctl –p
然后,
Ps:如果你的虚拟机的ip地址是一个不同子网的主机ip地址的话下一步就显得很重要了。如果你不这样做的话,虚拟机的网络可能不会正常工作。
打开/etc/vz/vz.conf文件并设置NEIGHBOUR_DEVS 参数值为 all:
vi /etc/vz/vz.conf
# Controls which interfaces to send ARP requests and modify APR tables on.
NEIGHBOUR_DEVS=all
在这个环境中,我同时也想安装vzdump和vzprocps包,这两个包并不存在Debian lenny库中。但是我们可以从http://download.openvz.org/debian-systs的网站里的Etch库中下载.(他们曾经也提供Lenny库,但是最近已经被删除了)因此打开/etc/apt/sources.list文件…
vi /etc/apt/sources.list
在这个文件中添加下面的语句:
deb http://download.openvz.org/debian-systs etch openvz
当然我们想从Etch 库中安装文件时不把我们的系统搞糟。我们设置系统只有在在Lenny库中没有适当的软件时,我们才使用Etch库。如果在一个包同时存在在Lenny和Etch版本中时,系统优先在Lenny中安装它。要做到这一点,我们可以在/etc/apt/preferences中可以设置给Lenny更高的权限:
vi /etc/apt/preferences
Package: *
Pin: release a=lenny
Pin-Priority: 700
Package: *
Pin: release a=etch
Pin-Priority: 650
然后我们打开/etc/apt/apt.conf文件…
vi /etc/apt/apt.conf
在这个文件中添加下面两行:
APT::Default-Release “stable”;
APT::Cache-Limit “100000000″;
运行下列命令
wget -q http://download.openvz.org/debian-systs/dso_archiv_signing_key.asc -O- | apt-key add – && apt-get update
然后下载库中的关键部分和更新软件包数据库.
然后运行
apt-get install vzdump vzprocps
来安装vzdump和vzprocps.
最后,重启系统:
Reboot
如果系统重启正常,说明安装顺利!
运行命令
uname –r
现在系统将会显示新的OpenVZ的内核:
server1:~# uname -r
2.6.26-1-openvz-amd64
server1:~#
3使用 OpenVZ
在我们使用OpenVZ创建虚拟机之前,我们需要在/var/lib/vz/template/cache文件夹下注意模板的范围,在即将使用的虚拟机里。我们可以通过模板来创建虚拟机。
运行命令
apt-cache search openvz
在输出的结果中你会看到一些Debian的模板。例如:
vzctl-ostmpl-debian-4.0-amd64-minimal – OpenVZ – OS Template debian-4.0-amd64-minimal
vzctl-ostmpl-debian-4.0-i386-minimal – OpenVZ – OS Template debian-4.0-i386-minimal
vzctl-ostmpl-debian-5.0-amd64-minimal – OpenVZ – OS Template debian-5.0-amd64-minimal
vzctl-ostmpl-debian-5.0-i386-minimal – OpenVZ – OS Template debian-5.0-i386-minimal
可以使用下面命令来安装你需要安装系统的模板(ps:amd64平台下的模板不可以在i386主机上使用):
apt-get install vzctl-ostmpl-debian-5.0-amd64-minimal vzctl-ostmpl-debian-4.0-amd64-minimal
你可以使用这些模板的其中一个,你同时也可以在http://wiki.openvz.org/Download/template/precreated找到一个模板的列表.例如,我们不通过apt命令安装vzctl-ostmpl-debian-5.0-amd64-minimal模板。而是使用下列命令下载:
cd /var/lib/vz/template/cache
wget http://download.openvz.org/template/precreated/contrib/debian-5.0-amd64-minimal.tar.gz
(ps:如果你的主机是i386系统,你不能使用amd64的模板-你必须使用i386的模板)
下面,我将会为大家来展示使用OpenVZ的最基本的命令.
假使我们想试用vzctl-ostmpl-debian-5.0-amd64-minimal模板来设置一个虚拟机(ps:你可以在/var/lib/vz/template/cache文件里找到它),运行下列命令:
vzctl create 101 –ostemplate debian-5.0-amd64-minimal –config vps.basic
在这里101必须是一个唯一的ID-每一个虚拟机虚拟拥有独一无二的ID。你可以使用虚拟机ip地址的最后一部分,例如,如果虚拟机ip地址是192.168.0.101,你可以使用101作为虚拟机的ID.
如果你想在系统启动时打开vm,运行下列命令
vzctl set 101 –onboot yes –save
使用下列命令可以设置为虚拟机设置主机名和ip地址:
vzctl set 101 –hostname test.example.com –save
vzctl set 101 –ipadd 192.168.0.101 –save
下面,我们设置接口的数量为120,然后为虚拟机委派几个域名服务器:
vzctl set 101 –numothersock 120 –save
vzctl set 101 –nameserver 145.253.2.75 –nameserver 213.191.92.86 –save
(ps:如果想不是用vzctl命令,你也可以在/etc/vz/conf文件家里直接编辑虚拟机的配置文件)。如果虚拟机的ID是101,其配置文件的位置在etc/vz/conf/101.conf.)
使用下列命令可以启动虚拟机
vzctl start 101
使用下列命令可以为虚拟机设置一个root密码
vzctl exec 101 passwd
使用下列命令可以通过ssh连接到虚拟机(类似于PUTTY):
vzctl enter 101
想要离开虚拟机的终端,直接输入
Exit
停止虚拟机,运行
vzctl stop 101
启动虚拟机,运行
vzctl restart 101
从硬盘里删除虚拟机(ps:在删除之前需要停止虚拟机),运行
vzctl destroy 101
可以通过下列命令查看所有虚拟机的列表和其当前的状态
vzlist –a
server1:~# vzlist -a
VEID NPROC STATUS IP_ADDR HOSTNAME
101 8 running 192.168.0.101 test.example.com
server1:~#
使用下列命令查看分配给虚拟机的资源
vzctl exec 101 cat /proc/user_beancounters
server1:~# vzctl exec 101 cat /proc/user_beancounters
Version: 2.5
uid resource held maxheld barrier limit failcnt
101: kmemsize 500737 517142 11055923 11377049 0
lockedpages 0 0 256 256 0
privvmpages 2315 2337 65536 69632 0
shmpages 640 640 21504 21504 0
dummy 0 0 0 0 0
numproc 7 7 240 240 0
physpages 1258 1289 0 2147483647 0
vmguarpages 0 0 33792 2147483647 0
oomguarpages 1258 1289 26112 2147483647 0
numtcpsock 2 2 360 360 0
numflock 1 1 188 206 0
numpty 1 1 16 16 0
numsiginfo 0 1 256 256 0
tcpsndbuf 17856 17856 1720320 2703360 0
tcprcvbuf 32768 32768 1720320 2703360 0
othersockbuf 2232 2928 1126080 2097152 0
dgramrcvbuf 0 0 262144 262144 0
numothersock 1 3 120 120 0
dcachesize 0 0 3409920 3624960 0
numfile 189 189 9312 9312 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 10 10 128 128 0
server1:~#
failcnt这一列非常重要,它通常是显示为0。如果不是0的话,这就意味着,当前的虚拟机需要更多的系统资源。打开位于/etc/vz/conf目录下的配置文件,然后适当的增加资源,最后重启虚拟机。
查询更多关于vzctl命令,运行
man vzctl
4.相关链接
- OpenVZ: http://openvz.org
- Debian: http://www.debian.org
http://code.google.com/p/ovz-web-panel/
Installation
The most simple way to install OpenVZ Web Panel is to run the following command (under root):
wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh
After installation Panel should be available by the following URL:
http://<your-host>:3000
Default administrator's credentials are: admin/admin. Don't forget to change default password.