在Ubuntu 10.04上安装和使用OpenVZ

在Ubuntu 10.04上安装和使用OpenVZ

在本教程中,我将介绍如何为OpenVZ准备Ubuntu 10.04服务器。 使用OpenVZ,您可以在同一硬件上创建多个虚拟专用服务器(VPS),类似于Xen和Linux Vserver项目。 OpenVZ是Virtuozzo的开源分支,Virtuozzo是许多提供虚拟服务器的提供商所使用的商业虚拟化解决方案。 OpenVZ内核补丁是根据GPL许可证授权的,用户级工具是QPL许可证。

这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。

本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!

1初步说明

我在这里使用x86_64(amd64)系统。 如果您在i386系统上,几个命令将略有不同 - 我已经添加了该部分的注释。

2成为根

类型

sudo su

成为root(或使用字符串sudo在本教程中预先添加所有命令)。

3更改默认Shell

/ bin / sh/ bin / dash的符号链接,但是我们需要/ bin / bash ,not / bin / dash 。 所以我们这样做:

dpkg-reconfigure dash

安装破折号为/ bin / sh? < - 不

4禁用AppArmor

AppArmor是一个安全扩展(类似于SELinux),应该提供扩展的安全性。 在我看来,你不需要配置一个安全的系统,它通常会导致更多的问题,而不是优势(考虑到你做了一周的故障排除后,因为一些服务不能按预期工作,然后你发现一切都很好,只有AppArmor导致了这个问题)。 所以我禁用它。

我们可以禁用它:

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

5安装OpenVZ

不幸的是,在官方的Ubuntu 10.04存储库中没有OpenVZ软件包,因此我们必须自己构建OpenVZ内核和OpenVZ工具( vzctlvzquotavzpkg )。

首先运行

uname -r

了解您当前安装的内核版本:

root@server1:~# uname -r
2.6.32-24-server
root@server1:~#

正如你所看到的,我已经安装了2.6.32-24-server

现在我们安装所需的软件包来构建一个新的内核:

aptitude install kernel-package libncurses5-dev fakeroot wget bzip2 module-assistant debhelper
aptitude build-dep linux-image-2.6.32-24-server

(请确保在最后一个命令中使用正确的内核版本,即uname -r显示的内核版本。)

接下来我们下载2.6.32内核源码以及OpenVZ内核补丁和OpenVZ内核的官方配置:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2
m-a prepare
wget http://download.openvz.org/kernel/branches/2.6.32/2.6.32-belyayev.1/patches/patch-belyayev.1-combined.gz
wget http://download.openvz.org/kernel/branches/2.6.32/2.6.32-belyayev.1/configs/kernel-2.6.32-x86_64.config.ovz

然后跑

kernel-packageconfig
echo "CONCURRENCY_LEVEL := 2" >> /etc/kernel-pkg.conf

(使用numer_of_cpu_cores + 1CONCURRENCY_LEVEL 。我的测试系统只有一个CPU内核,所以这使1 + 1 = 2

现在我们修补内核源码并准备构建:

tar -xpf linux-2.6.32.tar.bz2
mv linux-2.6.32 linux-2.6.32-openvz
rm -f linux
ln -s linux-2.6.32-openvz linux
cd linux
gunzip -dc ../patch-belyayev.1-combined.gz | patch -p1
cp -rf ../kernel-2.6.32-x86_64.config.ovz .config
make oldconfig

然后我们使用以下命令构建OpenVZ内核:

fakeroot make-kpkg --initrd --append-to-version=-ovz32 --revision=1.0 kernel_image kernel_headers

这可能需要一些时间,所以请耐心等待。

cd ..
ls -l *.deb

之后看到OpenVZ内核的新的.deb包:

root@server1:/usr/src# ls -l *.deb
-rw-r--r-- 1 root src  6300866 2010-08-18 19:18 linux-headers-2.6.32.14-ovz32_1.0_amd64.deb
-rw-r--r-- 1 root src 26274680 2010-08-18 19:12 linux-image-2.6.32.14-ovz32_1.0_amd64.deb
root@server1:/usr/src#

安装新内核如下:

dpkg -i linux-image-2.6.32.14-ovz32_1.0_amd64.deb linux-headers-2.6.32.14-ovz32_1.0_amd64.deb

然后更新initrd和GRUB bootloader配置:

mkinitramfs -k 2.6.32.14-ovz32 -o /boot/initrd.img-2.6.32.14-ovz32
update-grub

接下来我们构建OpenVZ工具( vzctlvzquotavzpkg )。 首先我们安装一些先决条件:

aptitude install git-core git-buildpackage automake autoconf libtool liblockfile-simple-perl cstream liblog-agent-perl ssl-cert postfix rpm yum alien

vzctl可以建立如下:

cd
git clone git://git.openvz.org/pub/vzctl vzctl
cd vzctl
./autogen.sh
./configure --enable-bashcomp --enable-logrotate
make
make install
make install-debian

vzquota可以建成如下:

cd
git clone git://git.openvz.org/pub/vzquota vzquota
cd vzquota
make
make install

vzpkg可以建立如下:

cd
git clone git://git.openvz.org/pub/vzpkg vzpkg
cd vzpkg
make install

现在我们为OpenVZ创建系统启动链接:

update-rc.d vz defaults

出于兼容性原因,我们创建了以下符号链接:

ln -s /vz /var/lib/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

之后。

如果虚拟机的IP地址与主机系统的IP地址不同,则以下步骤很重要。 如果不这样做,网络将无法在虚拟机中运行!

打开/etc/vz/vz.conf并将NEIGHBOUR_DEVS设置为全部

vi /etc/vz/vz.conf
[...]
NEIGHBOUR_DEVS=all
[...]

最后重新启动系统:

reboot

如果您的系统重新启动没有问题,那么一切都很好!

重新启动后,再次成为root:

sudo su

uname -r

并且您的新OpenVZ内核应显示:

root@server1:~# uname -r
2.6.32.14-ovz32
root@server1:~#
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏