Debian Etch上的OpenVZ for Webservers

OpenVZ在Debian Etch上为Web服务器

介绍

虚拟化是不错的! 这是服务器的一个很好的做法,因为它使事情更加安全,可扩展,可替代和可复制。 所有这一切的代价是增加复杂性。

本指南是在安装具有2个双核opterons(64位),2个相同磁盘(用于RAID)和一个内存负载的Supermicro机器时编写的。 为什么OpenVZ而不是XEN或最近的KVM内核模块? 那么,XEN对于64位架构来说并不是非常稳定的,而且由于其复杂性,它具有相当多的开销(每个VM运行自己的内核)。 KVM非常简单,但限制您将内核作为一个进程运行,因此VM无法从多核系统中受益。

使用OpenVZ,主机环境只运行一个内核_and_所有的虚拟机,这使得安装精简,是Web服务器的良好候选。

安装主机系统

首先安装Etch(确保使用安装程序设置RAID)。

您可能想摆脱您的根目录中的一些混乱的目录和链接(和指南的其余部分一样,以root用户身份):

cd /
rm cdrom
unlink vmlinuz.old
unlink vmlinuz
rmdir selinux/
rmdir initrd
unlink initrd.img.old
rmdir opt
rmdir srv/

现在我们要编译一个自定义的OpenVZ启用内核,我们在OpenVZ站点上遵循本指南 。 简要概述我们做了什么:

apt-get update
apt-get install linux-source-2.6.18 kernel-patch-openvz vzctl vzquota # this command might need you to acknoledge
cd /usr/src
tar xjvf linux-source-2.6.18.tar.bz2
cd linux-source-2.6.18
cp /boot/config-2.6.18-3-amd64 .config
aptitude install kernel-package # you need it in the next line
make-kpkg --append_to_version=-1-openvz --added_patches=openvz --revision=1 kernel_image
cd ..
dpkg -i linux-image-2.6.18-1-openvz_1_amd64.deb
update-initramfs -c -k 2.6.18-1-openvz
update-grub

然后(在你可能将/boot/grub/menu.lst修改为默认的正确的内核之后),你可以重新启动。

使用OpenVZ Enbabled内核重新启动后,检查是否全部工作:

ifconfig # should list your interfaces and an additional "venet" inteface
cat /proc/vz/* # should show somethings (not very important yet what it shows)
cat /proc/cpuinfo # se that your CPUs are up
cat /proc/mdstat # RAIDs working
lsmod # should show some modules starting with the letters "vz"

制作虚拟专用服务器(VPS)

不,我们设置,从默认最小模板启动VPS(您可以在/ var / lib / vz / template / cache中找到它):

vzctl create 101 --ostemplate debian-3.1-amd64-minimal --config vps.basic
vzctl set 101 --onboot yes --save
vzctl set 101 --hostname test101.mytest.org --save
vzctl set 101 --ipadd 10.0.0.101 --save
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver 10.0.0.2 --save
vzctl set 101 --privvmpages 500000:750000 --save # give it some memory CHECKME
vzctl start 101
vzctl exec 101 passwd

然后你可以连接VPS

ssh 10.0.0.101

,并注意丰富多彩的提示...

这个模板是一个Sarge(3.1)模板,我想要它是Etch(4.0),所以当以root身份登录VPS时:

nano /etc/apt/sources.list # edit it to match the sources.list on you host (Etch) install
aptitude update
aptitude dist-upgrade

现在尝试您的新VPS,并使其可行,安装您喜欢的软件包,因为该系统以后将作为进一步的VPS的基础。

接下来,我们从刚刚定制的VPS创建一个模板,这是一件容易的事情:

vzctl stop 101 # stop it
rm -f /var/lib/vz/private/101/etc/ssh/ssh_host_* # remove the keys (new ones will be generated on first boot)
cd /var/lib/vz/private/101/
tar czf /var/lib/vz/template/cache/debian-etch-20061218-amd64.tar.gz .

Borat会说:“好,我喜欢!”

不,我们可以像以前一样设置和运行一些额外的VPS,但现在稍微修改:

vzctl create 102 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 102 --onboot yes --save
vzctl set 102 --hostname test102.mytest.org --save
vzctl set 102 --ipadd 10.0.0.102 --save
vzctl set 102 --numothersock 120 --save
vzctl set 102 --nameserver 10.0.0.2 --save
vzctl set 102 --privvmpages 500000:750000 --save # give it some memory CHECKME
vzctl start 102
vzctl exec 102 passwd

和(是的,我看到没有太多有趣的变化)...

vzctl create 103 --ostemplate debian-etch-20061218-amd64 --config vps.basic
vzctl set 103 --onboot yes --save
vzctl set 103 --hostname test103.mytest.org --save
vzctl set 103 --ipadd 10.0.0.103 --save
vzctl set 103 --numothersock 120 --save
vzctl set 103 --nameserver 10.0.0.2 --save
vzctl set 103 --privvmpages 500000:750000 --save # give it some memory CHECKME
vzctl start 103
vzctl exec 103 passwd

并启动第一个VPS( vzctl start 101 ),因为我们把它脱机使用它作为我们的模板的基础,记得吗?

现在我们有3个VPS运行。 用vzlist测试,输出:

      VEID      NPROC STATUS  IP_ADDR         HOSTNAME
       101          5 running 10.0.0.101      test101.mytest.org
       102          5 running 10.0.0.102      test102.mytest.org
       103          5 running 10.0.0.103      test103.mytest.org

VPS需要一些内存,默认情况下给它的方式太少,所以请将VPS confiv文件( /etc/vz/conf/*.conf )中的vmguarpages,oomguarpages,privvmpages等等设置为一些正常值 - 一个页面等于4Kb。 由于您的VPS限制太多可能会导致执行错误:

vzctl exec 101 cat /proc/user_beancounters

UBC (user_beancounter)的最后一列应该只包含零,如果ohterwise尝试提出一些障碍和限制。 有关各个选项的更多信息,请参阅OpenVZ文档。

现在我们可以继续在VPS上设置我们的apache,postfixes,etceter ...祝你好运!

哦,在我的/etc/vz/conf/101.conf文件下面,它发臭 ,我刚刚提出了一些值,因为我们在user_beancounter中有错误。

cat /etc/vz/conf/101.conf
#  Copyright (C) 2000-2006 SWsoft. All rights reserved.
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
VERSION="2"
ONBOOT="yes"
# UBC parameters (in form of barrier:limit)
# Primary parameters
AVNUMPROC="40:40"
NUMPROC="255:255"
NUMTCPSOCK="80:80"
NUMOTHERSOCK="255:255"
VMGUARPAGES="500000:9223372036854775807"
# Secondary parameters
KMEMSIZE="33554432:36909875"
TCPSNDBUF="319488:524288"
TCPRCVBUF="524288:524288"
OTHERSOCKBUF="439296:439296"
DGRAMRCVBUF="132096:132096"
OOMGUARPAGES="500000:9223372036854775807"
# Auxiliary parameters
LOCKEDPAGES="32:32"
SHMPAGES="8192:8192"
PRIVVMPAGES="500000:750000"
NUMFILE="10240:10240"
NUMFLOCK="100:110"
NUMPTY="16:16"
NUMSIGINFO="256:256"
DCACHESIZE="1048576:1097728"
PHYSPAGES="0:9223372036854775807"
NUMIPTENT="128:128"
# Disk quota parameters (in form of softlimit:hardlimit)
DISKSPACE="1048576:1153434"
DISKINODES="200000:220000"
QUOTATIME="0"
# CPU fair sheduler parameter
CPUUNITS="1000"
OFFLINE_MANAGEMENT="yes"
VE_ROOT="/var/lib/vz/root/$VEID"
VE_PRIVATE="/var/lib/vz/private/$VEID"
OSTEMPLATE="debian-3.1-amd64-minimal"
ORIGIN_SAMPLE="vps.basic"
HOSTNAME="101.mytest.org"
IP_ADDRESS="10.0.0.101"
NAMESERVER="10.0.0.2"
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏