Pages

Friday, 23 November 2012

Debian独服下,安装xen

服务器硬件配置:Intel Core 2 Quad 2.66 GHz,4核,8线程,4GB 内存,500GB 硬盘
操作系统:Debian 6.0 Squeeze AMD64
http://wiki.debian.org/Xen

1. 安装Debian 6 Squeeze AMD64:

分区:全部分给LVM,VG:vg001

/分区:vg001-linux–root
/home分区:vg001-linux–home
/srv分区:vg001-linux–srv

ext4格式,各10GB。

swap分区:4GB

注意:强烈推荐使用lvm,因为xen运行在lvm上的IO效率比文件高好几倍,而且便于管理。

2. 安装xen image:

aptitude -P install xen-hypervisor-4.0-amd64 linux-image-xen-amd64

3. 修改grub

由于xen kernel不是默认启动的kernel,修改grub,把xen kernel排到第一位:

mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux
update-grub2

另外,根据Debian的官方wiki,如果内存大于32GB,需要设置dom0_mem=32G,否则xen无法启动。为了避免dom0过多占用内存导致domU内存不够,建议加上dom0_mem参数。我直接复制一份20_linux_xen,然后在此基础修改:

cp /etc/grub.d/20_linux_xen /etc/grub.d/10_linux_xen_modified
vi /etc/10_linux_xen_modified

找到
xen_args=”$6″
改为
xen_args=”dom0_mem=256M”

再次运行update-grub2。

4. 关闭save模式

修改/etc/default/xendomains,这样dom0停止时所有的domU都将正常shutdown而不是save:


XENDOMAINS_RESTORE=true
改为
XENDOMAINS_RESTORE=false


XENDOMAINS_SAVE=/var/lib/xen/save
改为
XENDOMAINS_SAVE=”"

5. 启动bridge模式

修改/etc/xen/xend-config.sxp:

(network-script ‘network-bridge’)

如果某些xen不在你的控制之内,则domU的IP设置错误可能会导致整个网络工作不正常,所以可以加上:

(network-script ‘network-bridge antispoof=yes’)

这样确保domU无法将IP设置为dom0的IP或网关IP。

6. 安装xen-tools

xen-tools用于简化domU的安装:

aptitude install xen-tools

xen-tools提供了一系列脚本来管理和简化xen的创建,需要修改/etc/xen-tools/xen-tools.conf:

设置使用lvm:

lvm = vg001

vg001是我的VG名称,在安装分区时指定的,你需要替换成你的VG名称。

设定虚拟机大小:

size = 50Gb
memory = 512Mb
swap = 1Gb
fs = ext4

设置网络:

gateway = x.x.x.x
netmask = 255.255.255.0

设置安装squeeze的镜像,为了避免网络下载,强烈推荐用ISO光盘做本地镜像,也可避免某些源缺少重要包导致domain安装后无法启动:

mirror_squeeze = http://localhost/

创建时输入root口令:

passwd = 1

7. 创建mirror源

为了使用ISO镜像,可以先将ISO挂载:

mkdir /srv/iso_install

mount -o loop /path/to/the_iso_file.iso /srv/iso_install

然后将nginx或apache配置www指向上述目录即可变成一个http源,端口号我设置为80,所以mirror地址就是http://localhost/。

也可略过此步骤使用debian官方源,如http://ftp.us.debian.org/debian,缺点是安装xen虚拟机需要从网络下载,时间长达15-30分钟。

8. 重启

查看kernel已经变成xen kernel:

# uname -a
Linux debian-test 2.6.32-5-xen-amd64 #1 SMP Wed Jan 12 05:46:49 UTC 2011 x86_64 GNU/Linux

9. 安装第一个xen虚拟机

将命名为xen-test-mysql,用于运行MySQL服务器:

xen-create-image --hostname xen-test-mysql --ip 192.168.1.211 --vcpus 2 --dist squeeze --verbose

参数说明:

--hostname 虚拟机名称

--ip 指定IP地址

--vcpus 指定虚拟机可以使用的CPU个数

--dist 指定安装的linux发行版,和dom0一致的发行版(这里是Squeeze)安装最简单也最容易配置

–verbose 生成详细的日志

如果domain已经存在,加上--force参数重新创建(覆盖已有的配置和虚拟机磁盘)。

然后开始安装,会看到提示,创建了/dev/vg001/xen-test-mysql-swap和/dev/vg001/xen-test-mysql-disk卷,分别用于xen的swap和磁盘。

安装过程大概2-5分钟,安装完成后提示输入root口令,然后安装结束,提示log文件保存在/var/log/xen-tools/xen-test-mysql.log。

10. 启动xen domU

刚才创建的虚拟机配置文件位于/etc/xen/xen-test-mysql.cfg,启动该虚拟机的命令为:

xm create -c /etc/xen/xen-test-mysql.cfg

加入-c参数后可以立刻连接到该domain的console,就可以登录到该domain中。如果没有加-c参数,可以先查看当前运行的domain:
root@debian-test:~# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   249     4     r—–    515.0
xen-test-mysql                               1   512     2     -b—-     18.3

然后用xm console xen-test-mysql连接到该domain的console。

要退出domain的console并回到dom0的console,只需按下Ctrl+]。

默认的domU会复制dom0的配置,所以apt的配置还需要修改,修改后就可以正常安装软件了。

11. domU自动启动

要使domU随dom0启动时自启动,可以在/etc/xen/auto目录下创建对应cfg的软连接:

mkdir /etc/xen/auto
ln -s /etc/xen/xen-test-mysql.cfg /etc/xen/auto