从Ubuntu存储库安装Ubuntu 8.04(Hardy Heron)服务器上的Xen
版本1.0
作者:Falko Timme
本教程提供了有关如何在Ubuntu Hardy Heron(Ubuntu 8.04)服务器系统(i386)上安装Xen的分步说明。 您可以在Ubuntu存储库中找到所有使用的软件,因此不需要任何外部文件(除了固定的Ubuntu Xen内核以实现虚拟机的网络连接)或编译。
Xen允许您在主机操作系统( dom0
)下创建客户操作系统(* nix操作系统,如Linux和FreeBSD),即所谓的“虚拟机”或主机。 使用Xen可以将应用程序分离成完全独立的虚拟机(例如,邮件服务器的虚拟机,高流量网站的虚拟机,为客户网站提供的另一个虚拟机,一个用于DNS的虚拟机等),但仍然使用相同的硬件。 这样可以节省资金,更重要的是更安全。 如果您的DNS服务器的虚拟机被黑客入侵,它对您的其他虚拟机没有影响。 此外,您可以将虚拟机从一个Xen服务器移动到下一个。
对于客户操作系统( domU
),我将使用Ubuntu Hardy Heron(i386)作为主机操作系统( dom0
)和Ubuntu Hardy Heron以及Ubuntu Gutsy Gibbon(7.10)。 可以使用xen工具安装的
其他基于Debian的发行版是Debian Etch,Debian Lenny,Debian Sid和Debian Sarge,以及Ubuntu Dapper Drake,Ubuntu Edgy Eft和Ubuntu Feisty Fawn。
这是一个实践指南; 它不包括理论背景。 他们在网络上的许多其他文档中被处理。
本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1安装Ubuntu Hardy Heron主机系统( dom0
)
您可以安装主机系统( dom0
),如本教程的第1至10章所示: http : //www.youcl.com/perfect-server-ubuntu8.04-lts (当然,您不必如果您已经有要使用的Ubuntu 8.04主机系统,请执行此操作)。
确保您以root身份登录(输入
sudo su
成为root),因为我们必须以root用户身份运行本教程中的所有步骤。 另外,如果要使用vi
作为文本编辑器(如本教程所示),则应运行
apt-get install vim-full
vim-full
包确保vi
文本编辑器的行为按预期(没有vim-full
,您可能会在vi
文本编辑器中遇到一些奇怪的行为)。
禁用AppArmor是个好主意:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
这个例子中的dom0
的FQDN将是server1.example.com
。 本教程中server1.example.com
的IP地址为192.168.0.100
,而我使用的网关是192.168.0.1
,所以虚拟机也必须使用。
2安装Xen
要安装Xen和所有需要的依赖项,我们所要做的就是运行以下命令:
apt-get install ubuntu-xen-server
这也将安装我们以后使用的xen-tools
软件包来创建虚拟机。
ubuntu-xen-server
软件包安装Ubuntu内核2.6.24-16-xen
; 不幸的是,这个内核有一个令人讨厌的错误,导致网络对虚拟机无效 (请参阅https://bugs.launchpad.net/ubuntu/+source/xen-3.2/+bug/204010和https://bugs.launchpad .net / ubuntu / + source / linux / + bug / 218126 )。 幸运的是,Hirano Takahito已经修补了这个内核,并在http://www.il.is.su-tokyo.ac.jp/~hiranotaka/上提供了修补版本(i386和amd64)(我已经创建了这些软件包的镜像在http://downloads.youcl.com/ubuntu_8.04_server_xen_from_repositories/ ,如果原始链接不再工作一天)。 为您的架构(i386或amd64)下载正确的linux映像
包,例如:
wget http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb
然后用这样替换Ubuntu 2.6.24-16-xen
内核:
dpkg -i linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb
接下来做这个:
mv /lib/tls /lib/tls.disabled
我们还需要在每次启动系统时将循环
模块添加到内核,所以我们编辑/ etc / modules
。 如果你已经有一个循环
线,那就像这样,否则添加它:
vi /etc/modules
[...] loop max_loop=64 [...] |
现在看看/ boot
目录,看看安装了哪些内核和ramdisk:
ls -l /boot/
root@server1:~# ls -l /boot/
total 34380
-rw-r--r-- 1 root root 426444 2008-04-10 18:55 abi-2.6.24-16-server
-rw-r--r-- 1 root root 80203 2008-04-10 18:55 config-2.6.24-16-server
-rw-r--r-- 1 root root 85149 2008-04-19 23:17 config-2.6.24-16-xen
drwxr-xr-x 2 root root 4096 2008-05-06 15:19 grub
-rw-r--r-- 1 root root 7323503 2008-04-24 11:47 initrd.img-2.6.24-16-server
-rw-r--r-- 1 root root 7047843 2008-04-24 11:45 initrd.img-2.6.24-16-server.bak
-rw-r--r-- 1 root root 7056979 2008-05-06 15:19 initrd.img-2.6.24-16-xen
-rw-r--r-- 1 root root 7062168 2008-05-06 15:09 initrd.img-2.6.24-16-xen.bak
-rw-r--r-- 1 root root 103204 2007-09-28 12:06 memtest86+.bin
-rw-r--r-- 1 root root 933296 2008-04-10 18:55 System.map-2.6.24-16-server
-rw-r--r-- 1 root root 883544 2008-04-19 23:17 System.map-2.6.24-16-xen
-rw-r--r-- 1 root root 1987288 2008-04-10 18:55 vmlinuz-2.6.24-16-server
-rw-r--r-- 1 root root 1730344 2008-04-19 23:17 vmlinuz-2.6.24-16-xen
-rw-r--r-- 1 root root 370610 2008-04-11 03:16 xen-3.2.gz
root@server1:~#
/boot/vmlinuz-2.6.24-16-xen
内核是新的修补的Xen内核,并且/boot/initrd.img-2.6.24-16-xen
是其ramdisk。 我们将很快需要这些。
您现在还可以查看/ usr / lib / xen-tools
目录,因为它可以显示可以使用xen-tools
在虚拟机中安装哪些发行版本:
ls -l /usr/lib/xen-tools
root@server1:~# ls -l /usr/lib/xen-tools
total 36
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-4.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-5.d
-rwxr-xr-x 1 root root 4409 2008-04-06 03:12 common.sh
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 dapper.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 debian.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 edgy.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 etch.d -> debian.d
lrwxrwxrwx 1 root root 15 2008-05-06 15:08 fedora-core-4.d -> fedora-core-6.d
lrwxrwxrwx 1 root root 15 2008-05-06 15:08 fedora-core-5.d -> fedora-core-6.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 fedora-core-6.d
lrwxrwxrwx 1 root root 15 2008-05-06 15:08 fedora-core-7.d -> fedora-core-6.d
lrwxrwxrwx 1 root root 6 2008-05-06 15:08 feisty.d -> edgy.d
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 gentoo.d
lrwxrwxrwx 1 root root 6 2008-05-06 15:08 gutsy.d -> edgy.d
lrwxrwxrwx 1 root root 6 2008-05-06 15:08 hardy.d -> edgy.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 lenny.d -> debian.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 sarge.d -> debian.d
lrwxrwxrwx 1 root root 8 2008-05-06 15:08 sid.d -> debian.d
root@server1:~#
如您所见,我们可以安装以下发行版:
- Debian:Etch,Lenny(测试),Sid(unstable),Sarge
- Ubuntu:Dapper Drake,Edgy Eft,Feisty Fawn,Gutsy Gibbon,Hardy Heron
- CentOS 4,CentOS 5
- Fedora Core 4,5,6,Fedora 7
- Gentoo
(我没有尝试安装CentOS,Fedora和Gentoo与xen工具
,所以我不能说它有多好。)
我想将我的虚拟机存储在/ home / xen
目录中,因此我现在创建它:
mkdir /home/xen
我们将使用xen-tools来创建虚拟机。 xen-tools
可以轻松创建虚拟机 - 请阅读本教程了解更多信息: http : //www.youcl.com/xen_tools_xen_shell_argo 。 如前所述, xen-tools
软件包与ubuntu-xen-server
软件包一起安装。
现在我们编辑/etc/xen-tools/xen-tools.conf
。 该文件包含xen-create-image
脚本使用的默认值,除非在命令行中指定其他值。 我改变了以下值,剩下的不变:
vi /etc/xen-tools/xen-tools.conf
[...] dir = /home/xen [...] dist = hardy # Default distribution to install. [...] gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 [...] passwd = 1 [...] mirror = http://archive.ubuntu.com/ubuntu/ [...] |
dist
行保留要在虚拟机中安装的默认分发。 / usr / lib / xen-tools
目录的内容显示哪些分发是可用的(见上文)。
内核
行必须包含我们的Xen内核,并且initrd
行包含其ramdisk。 默认的/etc/xen-tools/xen-tools.conf
文件的值为kernel = / boot / vmlinuz-`uname -r`
和initrd = /boot/initrd.img-suname -r`
,它们自动转换为正确的内核和ramdisk,所以我们不必修改这些行。
passwd = 1行使
您可以在创建新的来宾域时指定root密码。 在镜像
行中指定一个靠近你的Ubuntu镜像。
确保指定网关和网络掩码。 如果没有,并且在使用xen-create-image
时,不要在命令行中指定网关和网络掩码,即使指定了IP地址,您的访客域也不会有网络!
现在重新启动系统:
reboot
如果您的系统重新启动没有问题,那么一切都很好!
跑
uname -r
并且您的新Xen内核应显示:
root@server1:~# uname -r
2.6.24-16-xen
root@server1:~#