Debian Sarge上的Linux-Vserver

概要


你可以在5dollarwhitebox.org找到一个更容易阅读的这个howto的版本


引自13thfloor.at/vserver/project:

Linux-VServer允许您创建像普通Linux服务器一样运行的虚拟专用服务器和安全上下文,但允许许多独立服务器以全速同时运行在一个盒子中。 所有的服务,如ssh,邮件,Web和数据库,都可以像这样的VPS一样在任何实际的服务器上进行修改。 每个虚拟服务器都有自己的用户帐户数据库和root密码,并且不会干扰其他虚拟服务器。


您可以在Linux-vserver的http://www.linux-vserver.org上找到演示文稿


要知道的两个主要术语是:

  • 主机系统:这是“托管”客户机操作系统(虚拟服务器)的物理服务器。
  • 访客系统:这些是在主机操作系统之上运行的虚拟服务器。


制备

开始安装新的Debian Sarge 3.1。 建议尽可能地保持主机系统的尽可能小(我很少看到任何运行任何SSH和iptables的原因)。


软件包安装

在安装软件之前,请务必更新您的apt数据库,并升级当前软件包:

#apt-get update && apt-get upgrade


那么我们需要安装几个基本软件包:

  • util-vserver:用户界面实用程序来控制虚拟服务器
  • ssh:这可能已经安装了
  • ncurses-base和libncurses5-dev:编译内核时需要“make menuconfig”。

#apt-get install util-vserver ssh ncurses-base libncurses5-dev


文件

/ var / lib / vservers vserver文件的主目录
/etc/vservers.conf 基本的配置文件(不太可以看到)
/ etc / vservers 保留每个虚拟服务器的配置目录
/ usr / sbin / vserver 用于交互,构建,启动,停止,输入等vserver的实用程序
/ bin / vshelper 控制vserver功能的另一个实用工具
/ usr / lib / util-vserver 主要脚本/功能等


内核

请,我没有做这个部分“Debian的方式”。 一切都是使用来自kernel.org的Vanilla内核完成的。 您可以在下面的用户评论中找到其他资源的良好链接。 获取最新的内核,目前linux-vserver最新的稳定版本是为2.6.12.4内核..这是我们得到的:

#cd / usr / src

#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.4.tar.gz



从linux-vserver.org或13thfloor.at/vserver获取最新的内核补丁:

#wget http://www.13thfloor.at/vserver/s_rel26/v2.0/patch-2.6.12.4-vs2.0.diff.gz
#tar -zxvf linux-2.6.12.4.tar.gz
#gunzip patch-2.6.12.4-vs2.0.diff.gz
#mv patch-2.6.12.4-vs2.0.diff /usr/src/linux-2.6.12.4
#修补内核源码:
#cd /usr/src/linux-2.6.12.4
#cat patch-2.6.12.4-vs2.0.diff | 补丁-p1


如果您已经在运行类似的2.6.x内核,则可以在构建之前复制当前的配置。 它应该在某个地方像“/boot/config-2.6.x”

#cp /boot/config-2.6.X /usr/src/linux-2.6.12.4/.config

最后一个命令只有当你想使用一个现有的配置...请不要试图使用一个2.4.X配置文件...很好。 ;)


好的,让我们这样做。 当我们编译时,你需要包含几件事情。 首先,首先,您需要为您的系统编写一个工作,并且我无法帮助您。 如果需要帮助编译内核,请参考链接

#make menuconfig

为了将来使用,您应该可以包括LVM(和dev-mapper支持)...,因为这对于虚拟服务器来说非常方便。


你看到一个类别为“Linux Vserver”。 默认选择应该是groovy,但是你应该有如下选择的东西:

启用旧版内核API
启用Proc安全性
启用硬限制


酷...现在我们有我们的配置....让内核:

#make
#make modules_install
#cp .config /boot/config-2.6.12.4-vs2.0
#cp System.map /boot/System.map-2.6.12.4-vs2.0
#cp arch / i386 / boot / bzImage /boot/vmlinuz-2.6.12.4-vs2.0
#mkinitrd -o /boot/initrd.img-2.6.12.4-vs2.0 2.6.12.4-vs2.0


然后我们将要更新我们的grub配置:

使用'vi'命令编辑 /boot/grub/menu.lst并添加以下行* BEFORE *其他条目已经存在...并确保“default”行设置为“0”: 标题香草2.6.12.4-vs2.0
根(hd0,0)
kernel /vmlinuz-2.6.12.4-vs2.0 root = / dev / hda2 ro
initrd /initrd.img-2.6.12.4-vs2.0
保存失败
开机



在那里你有它 现在,我们应该能够重新启动,并为我们的新内核准备好一些虚拟服务器。

# 重启


在启动后检查该内核,以确保我们正在运行新的内核:

#uname -r
2.6.12.4-vs2.0


很好!


设置虚拟服务器

在Debian主机上创建虚拟Debian服务器是一个荒谬的简单。 以下是为你而定:

#vserver <VSERVER_NAME> build \
-n <VSERVER_NAME> \
--hostname <FQDN> \
--interface <NET_DEVICE>:<IP> / <CIDR> \
-m debootstrap - -d <DEBIAN_DISTRO>



因此,我们的第一个虚拟服务器将具有以下信息:

VSERVER_NAME vserver1
FQDN vserver1.mydomain.com
NET_DEVICE eth0
IP 192.168.1.10
CIDR 24 (255.255.255.0)
DEBIAN_DISTRO sarge


因此,以下命令将创建它:

#vserver vserver1 build \
-n vserver1 \
--hostname vserver1.mydomain.com \
- 接口eth0:192.168.1.10/24 \
-m debootstrap - -d sarge

反斜杠“\”表示新行,但是您可以将其全部作为一个命令执行,而无需使用反斜杠。


在那里你去...安装开始一个debian net安装所选的发行版。 这不应超过几分钟。 在我的系统上,基本安装只占用144MB。 现在让我们看看我们有什么:


#ls -lah / var / lib / vservers / vserver1

总共80K
drwxr-xr-x 20 root root 4.0K Nov 10 08:17。
drwxr-xr-x 4根根4.0K Nov 10 08:13 ..
drwxr-xr-x 2 root root 4.0K Nov 10 08:17 bin
drwxr-xr-x 2 root root 4.0K Dec 15 2004启动
drwxr-xr-x 3 root root 4.0K Nov 10 08:13 dev
drwxr-xr-x 37根根4.0K Nov 10 08:17等
drwxrwsr-x 2根工作人员4.0K Dec 15 2004 home
drwxr-xr-x 2 root root 4.0K Nov 10 08:16 initrd
drwxr-xr-x 7 root root 4.0K Nov 10 08:17 lib
drwxr-xr-x 2根根4.0K Nov 10 08:16 media
drwxr-xr-x 2 root root 4.0K Dec 15 2004 mnt
drwxr-xr-x 2 root root 4.0K Nov 10 08:16 opt
drwxr-xr-x 2 root root 4.0K Dec 15 2004 proc
drwxr-xr-x 2 root root 4.0K Nov 10 08:16 root
drwxr-xr-x 2 root root 4.0K Nov 10 08:17 sbin
drwxr-xr-x 2 root root 4.0K Nov 10 08:16 srv
drwxr-xr-x 2 root root 4.0K May 10 2005 sys
drwxrwxrwt 2 root root 4.0K Nov 10 08:17 tmp
drwxr-xr-x 11 root root 4.0K Nov 10 08:16 usr
drwxr-xr-x 13 root root 4.0K Nov 10 08:16 var #ls -lah / etc / vservers / vserver1

共28K
drwxr-xr-x 5 root root 4.0K Nov 10 08:13。
drwxr-xr-x 6根根4.0K Nov 10 08:13 ..
drwxr-xr-x 4 root root 4.0K Nov 10 08:13 apps
-rw-r - r-- 1根根112 Nov 10 08:13 fstab
drwxr-xr-x 3根根4.0K Nov 10 08:13接口
-rw-r - r-- 1 root root 5 Nov 10 08:13 name
lrwxrwxrwx 1 root root 22 Nov 10 08:13 run - > / var / run / vservers / vserver1
drwxr-xr-x 2 root root 4.0K Nov 10 08:13 uts
lrwxrwxrwx 1 root root 37 Nov 10 08:13 vdir - > /etc/vservers/.defaults/vdirbase/vserver1



现在我们已经安装了vserver,让我们启动它。 'vserver'命令的语法是:

#vserver <VSERVER_NAME> [start | 停止| 重启| 输入]


对于我们的vserver1

#vserver vserver1 start 启动系统日志守护程序:syslogd。
启动内核日志守护进程:klogd。
启动MTA:exim4。
启动Internet overerserver:inetd。
启动延期执行调度程序:atd。
启动定期命令调度程序:cron
... #vserver-stat
CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME
0 35 73.4M 5.4K 0m05s21 0m02s33 1m13s00根服务器
49152 5 11M 967 0m00s00 0m00s00 0m30s52 vserver1


#vserver vserver1输入
vserver1:/#



而现在你正处于虚拟服务器的上下文中。 要退出主机系统,只需键入“退出”即可。


配置注意事项

您首先需要运行“apt-setup”并配置与任何其他debian系统相同的apt。 debian bootstrap安装是一个非常小的基本安装。 您将需要安装所需的所有内容。

应该提到每个虚拟服务器都有自己的IP地址。 然而,由于这些IP被配置为实际的网络设备(即eth0)的别名,他们都在同一物理设备上监听。 当默认配置在所有接口上指定为“Listen”时,这可能会造成问题。 vserver中的每个服务都必须指定Listen Address。


例如:

SSH:

#apt-get install sshd

#vi / etc / ssh / sshd_config


换行:

#ListenAddress 0.0.0.0


ListenAddress 192.168.1.10


和...

#/etc/init.d/ssh restart



其余的是真正的你的想象力,并找出无证的开源的奇迹...玩得开心!




BJ Dierkes,RHCE-LPIC1
wdierkes [at] 5dollarwhitebox [dot] org
德州,美国


资源

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏