免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1633 | 回复: 0
打印 上一主题 下一主题

Debian Etch发行版中Xen虚拟化应用实例[09年3月刊] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-02 12:03 |只看该作者 |倒序浏览
原作者:Falko Timme CU网友:tinybiz
  这个教程提供手把手的指导,来教会你怎样在Debian Etch4.0)的系统中安装XenXen可以帮助你在使用*nix类系统(比如LinuxFreebsd)的主操作系统中创建客户操作系统,也可以叫做“虚拟机”或者domUs,你可以使用Xen在相同的硬件条件下,把你的应用安装在不同
  在这篇教程中我将会为大家讲解如何在Debian Lenny服务器上安装OpenVZ。使用OpenVZ你可以在同一个硬件环境中创建多个虚拟化专用服务器(VPS),其作用类似于XenLinux Vserver项目.OpenVZVirtuozzo旗下的一款开源品牌,提供一个商业的虚拟化解决方案.已经被许多提供虚拟化服务器的提供商使用。OpenVZ内核是遵循GPL授权许可,并且其用户化工具遵循QPL许可。
  这篇教程是一篇实用教程,它不包括相关的理论背景,如需了解相关理论背景请查询网络其他的文档。
  这篇文档不附带任何形式的保证,我想要说的是这不仅仅是设置此类系统的唯一方法,还有很多达到这个目的的方法,但是我使用的是教程中的方法,我使用此方法,没有任何问题。
1前言
我在这里使用的是一个X86_64(amd64平台下)的系统,如果你是在i386平台,在一些命令的使用上或许有些不同,我将会在不同点特别注别。
2.安装OpenVZ
OpenVZ的内核、vzctlvzquota包在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
[...]
在这个环境中,我同时也想安装vzdumpvzprocps包,这两个包并不存在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库。如果在一个包同时存在在LennyEtch版本中时,系统优先在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:efault-Release "stable";
APT::Cache-Limit "100000000";
[...]
运行下列命令
wget -q http://download.openvz.org/debia ... hiv_signing_key.asc -O- | apt-key add - && apt-get update
然后下载库中的关键部分和更新软件包数据库.
然后运行
apt-get install vzdump vzprocps
来安装vzdumpvzprocps.
最后,重启系统:
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

可以使用下面命令来安装你需要安装系统的模板(psamd64平台下的模板不可以在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文件家里直接编辑虚拟机的配置文件)。如果虚拟机的ID101,其配置文件的位置在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.相关链接
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP