Debian上安装部署Xen server (squeeze)

发表于2012 年 03 月 23 日 | 标签: , , ,
文章目录

计算机虚拟化的概念,10多年前就已经出现。随着现代计算机的性能越来越强大,在一台物理机器上使用宿主虚拟机并行地运行多枚虚拟机(vm)的方案已经成为流行趋势。虚拟化的成熟,引起这两年云计算概念的大热。而要成功的在当前操作系统上面分隔出多个并发执行的操作系统,会有很多方面的挑战

  • 首先,虚拟机必须是彼此隔离的;如果一枚虚拟机的运行受到另一枚的影响,这令人不能接受。
  • 其次,虚拟机平台是能支持各种不同操作系统的,这样才能适应种种流行应用的异质性。
  • 再次,虚拟化所带来的额外系统开销要很小,如果资源消耗了很多在虚拟化上,会得不偿失。

Xen的简介

Xen是其中一款能同时满足上述几个条件的,运行在linux下的虚拟机软件。同样的,常常跟它放在一起比较的还有KVM, VMware ESXi以及openVZ。而我们这里所介绍的,是xen server在debian下的安装过程。

Xen分为两种虚拟化方式,半虚拟化和全虚拟化。

其中,半虚拟化分为多个layer来执行。它使用一个修改过的Linux内核开机。开机后,由这个内核引导器加载Xen的管理器程序(Xen Hypervisor),然后才启动第一个在上面运行的系统,这个系统我们称之为domain-0。其他由domain-0启动的guest虚拟机,我们称之为domain-U。在Xen的世界里,一个domain就是一个虚拟机(简称dom)。

dom-0之所以要先被加载,是因为,1. 它包含有对其他虚拟机启动的控制指令集, 2.dom-0直接控制着xen的管理器程序(Hypervisor),而且掌握着实际的linux drivers. 3. 其它虚拟机要通过xen hypervisor来和硬件以及dom-0通信。

本文环境

系统:Debian6.0 (squeeze)
内存:4G内存
CPU: intel dual E2180

 

物理机器下安装dom-0 (host)

下载第一张iso文件,最小化安装debian即可。

wget http://cdimage.debian.org/debian-cd/6.0.4/amd64/iso-cd/debian-6.0.4-amd64-CD-1.iso

分区你可以按自己喜好,一般较现代的linux分区是只分/和swap,让io可以平分在整枚盘;当然,如果你读写太频繁的另计;另外是否用LVM(Logical Volume Manager)要根据实际情况,使用了LVM,虚拟机读写效率会明显提高,生产环境中是一定用的,如果仅仅为了尝试Xen,没有必要。

安装好后修改源,换成速度快点的163源

# vim /etc/apt/sources.list

deb http://mirrors.163.com/debian/ squeeze-updates main
deb-src http://mirrors.163.com/debian/ squeeze-updates main

deb http://mirrors.163.com/debian/ squeeze main
deb-src http://mirrors.163.com/debian/ squeeze main

安装xen的环境和辅助工具集(部署dom-0的过程)

aptitude install xen-hypervisor-4.0-amd64 xen-linux-system-2.6-xen-amd64 xen-tools xenwatch

Debian Squeeze 使用Grub2 管理内核启动,为了在机器启动时自动载入带Xen的内核,请作如下修改(不做这步也行,只是需要手动选择)

mv /etc/grub.d/10_linux /etc/grub.d/21_linux

然后执行update让grub让kernel-with-xen生效

update-grub

为了让xen server内每个虚拟机都能独立的跑在网络上,而不是运行在母机的VLan中,需要把xen server的网络模式设置为桥接(bridge)

# vi /etc/xen/xend-config.sxp

(network-script network-bridge)   # 144行左右,打开这一句,去掉comment符号

默认情况下,Xen dom0在关闭和重启时,会保存虚拟机的当前运行状态,下次启动后再恢复。我们不需要,关上。

# vi /etc/xen/xend-config.sxp

XENDOMAINS_RESTORE=false  
XENDOMAINS_SAVE=""

默认情况下,xen dom0的内存占用率会随着使用而占用得越来越多,这样会吃掉很多需要分配给虚拟机的内存,我们要限制它的使用

# vi /etc/xen/xend-config.sxp

(dom0-min-mem 256)
(enable-dom0-ballooning no)

以及

# vi /etc/default/grub

GRUB_CMDLINE_XEN="dom0_mem=256M"   # 加上这一句

然后执行update,让grub生效

update-grub

配置好了后,重启,查看xen安装成功了没有

# uname -r
2.6.32-5-xen-amd64

# xm list
Name                          ID   Mem VCPUs      State   Time(s)
Domain-0                       0   251     2     r-----     17.3

安装DomU (guests)

# xen-create-image \          # 执行命令xen-create-image
--hostname vm1 \              # 虚拟机名
--gateway 192.168.1.1 \
--netmask 255.255.255.0 \
--ip 192.168.1.50 \
--vcpus 1 \                   # cpu数量
--pygrub \                    # 把grub安装到虚拟机,kernel就不需要放到外部环境了
--dist squeeze \              # 虚拟机也安装squeeze
--size 2Gb \                  # 分配给虚拟机的硬盘大小
--arch i386 \
--swap 196Mb \
--passwd 1 \                  # 安装结束后要用户来设定root密码,而不是自动生成
--verbose \
--dir /vm                     # 安装到指定目录

如果你想对更多的安装参数进行设定,可以直接编辑/etc/xen-tools/xen-tools.conf进行调整

安装过程很快,5分钟左右安装完毕。

启动、管理虚拟机

# xm create vm1              # 启动vm1虚拟机
# xm console vm1             # 连接到vm1虚拟机的控制台
# xm create -c vm1           # 启动并连接到vm1虚拟机,可以看到虚拟机的启动过程,例如grub菜单

在虚拟机console中键入刚才的root帐号以及密码,就进入到这个dom-U了。

要退出虚拟机的console返回到dom-0母机,按 “ctrl + ]” 组合键

要是想在宿主机启动时,一并启动指定的虚拟机:

# mkdir /etc/xen/auto
# ln -s /etc/xen/vm1 /etc/xen/auto/vm1

安装好后虚拟机vm1的配置文件在/etc/xen/vm1.cfg,打开其可以看到刚才的一设定,例如可以调节虚拟机的内存大小。
·

Debian上安装部署Xen server (squeeze)』有 1 条评论

  1. Pingback 引用通告: Debian环境安装Xen | BianSite

发表评论

*

  

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif