CentOS5架设VPS服务器

 
   在CentOS 5.2 server中安装和部署OpenVZ,利用OpenVZ您可以在一台 服务器上部署多台 VPS(即Virtual Private Servers 虚拟服务器),类似的产品还有 Xen 和 Linux Vserver project,OpenVZ是Virtuozzo(大多数虚拟服务器供应商使用的商业解决方案)的开源分支,OpenVZ kernel patch是遵循GPL许可证的, 而用户级工具遵循QPL许可证。
    部署OpenVZ的方法很多,这里仅仅是抛砖引玉,说明自己的方法。
第一步: 安装OpenVZ
为了安装OpenVZ,我们需要配置OpenVZ的YUM库
cd /etc/yum.repos.d
wget http://download.openvz.org/openvz.repo
rpm �Cimport http://download.openvz.org/RPM-GPG-Key-OpenVZ
这个YUM库包含了一些不同版本的OpenVZ内核(你可以在这里找到一些详细的资料 http://wiki.openvz.org/Kernel_flavors)
命令:yum search ovzkernel 可以帮助您显示可用的内核:
[root@server1 yum.repos.d]# yum search ovzkernel
Loading ”fastestmirror” plugin
Loading mirror speeds from cached hostfile
* base: ftp.halifax.rwth-aachen.de
* openvz-kernel-rhel5: openvz.proserve.nl
* updates: ftp.halifax.rwth-aachen.de
* addons: ftp.halifax.rwth-aachen.de
* openvz-utils: openvz.proserve.nl
* extras: ftp.halifax.rwth-aachen.de
openvz-kernel-rhel5       100% |=========================|  951 B    00:00
primary.xml.gz            100% |=========================|  22 kB    00:00
openvz-ker: ################################################## 14/14
openvz-utils              100% |=========================|  951 B    00:00
primary.xml.gz            100% |=========================| 6.7 kB    00:00
openvz-uti: ################################################## 26/26
ovzkernel-ent.i686 : The Linux kernel compiled for huge mem capable machines.
ovzkernel-PAE.i686 : The Linux kernel compiled for PAE capable machines.
ovzkernel-ent-devel.i686 : Development package for building kernel modules to match the ent kernel.
ovzkernel-PAE-devel.i686 : Development package for building kernel modules to match the PAE kernel.
ovzkernel.i686 : Virtuozzo Linux kernel (the core of the Linux operating system)
ovzkernel-xen.i686 : The Linux kernel compiled for Xen VM operations
ovzkernel-xen-devel.i686 : Development package for building kernel modules to match the kernel.
ovzkernel-devel.i686 : Development package for building kernel modules to match the kernel.
[root@server1 yum.repos.d]#
从中选择适合您的内核并用如下命令安装:
yum install ovzkernel
这也应该将GRUB引导程序自动更新,但是无论如何,我们应该打开 /boot/grub/menu.lst来看看
现在,第一个内核中就包含了OpenVZ,我想你最好把这个内核的标题中写入一些与OpenVZ有关的东西来提醒自己这是OpenVZ的内核,并要保证此内核(即包含OpenVZ的内核)设定为默认启动的内核。
vi /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS OpenVZ (2.6.18-53.1.19.el5.028stab053.14)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-53.1.19.el5.028stab053.14 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-53.1.19.el5.028stab053.14.img
title CentOS (2.6.18-92.1.1.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-92.1.1.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-92.1.1.el5.img
title CentOS (2.6.18-92.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00
        initrd /initrd-2.6.18-92.el5.img
现在开始安装OpenVZ的用户工具
使用这个命令:

yum install vzctl vzquota
打开目录 /etc/sysctl.conf  并保证你有和如下相同的设置:
vi /etc/sysctl.conf
[...]
net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1
[...]
如果你需要修改/etc/sysctl.conf 运行
sysctl -p
接下来的操作很重要,假设您的虚拟服务器和主机的IP地址来自不同的子网,如果您没有按照下列方法操作,那么您的虚拟服务器中的网络是不可用的。
打开/etc/vz/vz.conf  并设置NEIGHBOUR_DEVS 的值为all
vi /etc/vz/vz.conf
[...]
NEIGHBOUR_DEVS=all
[...]
如果你想使用OpenVZ的话,还需要关掉SELinux ,通过如下操作可以实现
vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.
SELINUXTYPE=targeted
关闭Selinux和iptables,也可以使用setup命令,然后进行相应的操作
最后,重启您的系统
如果您的系统正常重启,恭喜您!
reboot
用uname - r 查看您的内核
uname -r
[root@server1 ~]# uname -r
2.6.18-53.1.19.el5.028stab053.14
[root@server1 ~]#

第二步:使用 OpenVZ
在我们创建虚拟服务器之前,需要在 /vz/template/cache 放置一个现有发行版的模板,并依据该模板来创建虚拟服务器,您可以在这里找到一些已经创建好的模板链接, http://wiki.openvz.org/Download/template/precreated.
在我们的例子中,我想使用CentOS 5 ,于是我下载相应的模板

cd /vz/template/cache
wget http://download.openvz.org/template/precreated/contrib/centos-5-i386-default.tar.gz
 
现在我为您展示使用OpenVZ的基本命令:
以是刚才我们下载的CentOS 5的模板创建一个新的虚拟服务器
vzctl create 101 --ostemplate centos-5-i386-default --config vps.basic
在上面的命令中,101是唯一的ID,每个服务器需要有自己的唯一 ID,您可以用虚拟服务器的IP地址最后一位来用作唯一ID,例如,您的虚拟服务器IP为 192.168.0.101,您就可以用101做您的唯一ID了。
如果您想让刚才创建的虚拟服务器开机(当然是真实的主机)时启动,输入:
vzctl set 101 --onboot yes --save
为虚拟服务器设置hostname和IP:

vzctl set 101 --hostname boobooke.example.com --save
vzctl set 101 --ipadd 192.168.0.101 --save
下面我们设置端口号为120并为虚拟服务器设置名称服务器
vzctl set 101 --numothersock 120 --save
vzctl set 101 --nameserver --save
除了使用vzctl命令,您还可以直接编辑虚拟服务器的配置文件,假如是我们刚建立的ID为101的虚拟服务器,那么它的配置文件则位于:/etc/vz/conf/101.conf
启动虚拟服务器:
vzctl start 101
为虚拟服务器设置root密码
vzctl exec 101 passwd
你可以用Putty ssh访问您的虚拟服务器,也可以使用如下命令:
vzctl enter 101
如果要离开虚拟服务器控制台,键入:
exit
停止一台虚拟服务器:
vzctl stop 101
重启虚拟服务器:
vzctl restart 101
从硬盘上删除一台虚拟服务器(删除之前务必做停止的操作)
vzctl destroy 101
得到当前主机上虚拟服务器的列表:
vzlist -a
root@server1cache]# vzlist -a
      VEID      NPROC STATUS  IP_ADDR         HOSTNAME
       101         18 running 192.168.0.101   test.example.com
[root@server1 cache]#
显示虚拟服务器占用资源
[root@server1 cache]# vzlist -a
      VEID      NPROC STATUS  IP_ADDR         HOSTNAME
       101         18 running 192.168.0.101   test.example.com
[root@server1 cache]#
To find out about the resources allocated to a vm, run
vzctl exec 101 cat /proc/user_beancounters
[root@server1 cache]# vzctl exec 101 cat /proc/user_beancounters
Version: 2.5
       uid  resource           held    maxheld    barrier      limit    failcnt
      101:  kmemsize        1508202    1661695   11055923   11377049          0
            lockedpages           0          0        256        256          0
            privvmpages        5430       7102      65536      69632          0
            shmpages            381        381      21504      21504          0
            dummy                 0          0          0          0          0
            numproc              19         21        240        240          0
            physpages          2489       2775          0 2147483647          0
            vmguarpages           0          0      33792 2147483647          0
            oomguarpages       2489       2775      26112 2147483647          0
            numtcpsock            5          5        360        360          0
            numflock              3          4        188        206          0
            numpty                0          1         16         16          0
            numsiginfo            0          2        256        256          0
            tcpsndbuf         44720          0    1720320    2703360          0
            tcprcvbuf         81920          0    1720320    2703360          0
            othersockbuf      13144      14356    1126080    2097152          0
            dgramrcvbuf           0       8380     262144     262144          0
            numothersock         11         13        120        120          0
            dcachesize            0          0    3409920    3624960          0
            numfile             503        531       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
[root@server1 cache]#
要特别注意failcnt 栏,它的值应该为0,如果不是,则表示虚拟服务器需要得到更多的资源,打开配置文件 /etc/vz/conf 并增加适当的资源,然后重启虚拟服务器。
寻求更详细的 vzctl 命令帮助,请使用:
man vzctl
第三步:相关链接:

OpenVZ: http://openvz.org
CentOS: http://www.centos.org

你可能感兴趣的:(centos,职场,openvz,休闲,vps)