Xen是经典的泛虚拟化(paravirtualization)技术,它通过修改客户机(GuestS)的操作系统内核与宿主(Hst)内核配合完成工作。优点是性能较高。若客户机操作系统源代码无法修改或不支持Xen(例如Windows),则可以利用CPU的虚拟化技术,如含有VT系列指令的Intel处理器,不需修改地运行虚拟机。
如果只是为了运行Windows系统而使用Xen的桌面应用,建议使用KVM。KVM是一个更为完整易用的内核,并且不需要其他特殊驱动。
1.软件包的安装
在Ubuntu中安装Xen,可以从Xen的官方网站(xensurce.com)下载源代码或二进制代码软件包,也可以使用编译好的deb软件包。一般使用后一种方式(适合新手)。deb软件包分桌面和服务器端两类。
(1)桌面版软件包的安装
a.)在/etc/apt/surces.list中加入'universe'软件库,具体操作可以参考Ubuntu的使用手册或其他资料。
b.)安装'ubuntu-xen-desktp'软件包:运行'sudo apt-get install
ubuntu-xen-server'就可以在服务器上安装要运行Xen的必要软件。
2.配置虚拟机及其桌面环境
安装并重新启动主机后,系统就以Xen的内核运行,该环境被称为“Dmain-0”,即管理上层虚拟机,协调底层硬件资源的一层。
运行下面的命令,查看运行中的虚拟机列表:
$sudxmlist
NameIDMem(MIB)VCPUsStateTime(s)
Dmain-008642r-----651.1
上面的输出表明,目前系统中只有“Dmain-0”,没有虚拟机运行。
下一步是修改Xen要用到的网络设置。这些功能由名为“xend”的守护进程掌管。它的配置文件在/etc/xen/xend-cnfig.sxp,将下面命令写入到该文件中:
(netwrk-scriptnetwrk-bridge)
然后重启xend:
$sudxendstp
$sudxendstart
使用ifcnfig命令,会在输出结果中看到一个名为“xenbr0”的网络接口,虚拟机将通过它与外界通信。
3.使用映像文件做虚拟硬盘
(1)利用lpback设备生成映像文件。
这里用稀疏文件方式,即不分配完整虚拟硬盘大小的对应空间,只需按照使用时的要求动态分配。运行:
sudddif=/dev/zerf=/usr/lcal/gusty.ext3bs=1024kseek=4096cunt=0
(2)建立文件系统
sudmkfs.ext3/usr/lcal/gusty.ext3
从mkfs的输出中可以看到没有任何blck设置,即便如此,也可以生成该文件系统。
挂载该文件系统:
sudmkdir /mnt/gusty
sudmunt /usr/lcal/gusty.ext3 /mnt/gusty -lp
经过以上两步,把该虚拟磁盘格式化并挂载。
4.安装debtstrap
运行命令:
sudo apt-get install debtstrap
然后给其安装gutsy基本系统(可以根据需要选择其他版本,如feisty,相应下面的"gutsy"换成"feisty"):
sudo debtstrap gutsy /mnt/gutsy
给出内核模块(模块名称依赖于使用的是桌面还是服务器编辑):
sudo cp -a /lib/mdules/2.6.28-11-generic /mnt/gutsy/lib/mdules/
在初次运行之前可修改一些配置,如:
cat/mnt/gutsy/etc/netwrk/interfaces
autl
iface line tlpback
auto th0
iface eth0 inet static
address 192.168.44.247
netmask 255.255.252.0
gateway 192.168.47.254
cat /mnt/gutsy/etc/hsts
127.0.0.1 lcalhst
127.0.1.1 gusty vm
cat /mnt/gutsy /etc/hstname
gutsy vm
cat /mnt/gutsy /etc/fstab
prc /prcprcde faults 00
/dev/hda1/ext3 defaults,errrs=remunt -r01
关闭前面挂载的虚拟磁盘:
sudo unmunt /mnt/gutsy
5.配置虚拟机(具体参数根据自己需要适当修改)
生成虚拟机定义文件/etc/xen/gutsy-guest.cfg:
kernel="/bt/vmlinuz-2.6.28-11-generic"
ramdisk="/bt/initrad.img-2.6.28-11-generic"
builder='linux'
memry=128
name="gutsy-guest"
vcpus=1
vif=['bridge=xenbr0']
disk=['file: /usr/lcal/gutsy.ext3,iemu:hda1,w']
rt="/dev/hda1r"
如果读者使用的是SATA或者SCSI控制器,请将hda1替换为sda1。上述文件中的“rt”指向的是虚拟根文件系统设备,并非是Dmain-0的根文件系统设备。如果给每个虚拟机(dmU)分配交换区(swap)分区,可以将虚拟机配置文件做如下修改:
disk=['file:
/usr/lcal/gutsy.ext3,iemu:hda1,w','phy:/dev/hda6,iemu:hda2,w']
现在就可以运行虚拟机了:
sudo xmcreate gutsy-guesty.cfg
虚拟机运行后,可以用下面的命令连接它的控制台(或者用网络登陆,如pen
ssh-server,vncserver,远程X11等)
sudo xmcnsl egutsy-guest
退出控制台:"Ctrl+]"
6.在虚拟机中使用GNOME桌面环境
配置GDM,通过GDM启动VNC,从而在VNC环境中运行GNOME环境。
编辑/etc/X11/gdm/gdm.cnf,在[servers]标题下,添加下述命令,并将其他类似的文本注释掉:
0=VNC
在[server-Standard]部分,增加:
[server-VNC]
name=VNCserver
cmmand=/usr/bin/Xvnc-gemetry800×600 -depth24
flexible=true
具体信息可以参考: http://wiki.xensurce.cm/xenwiki/XenDemLaptp
手动启用Xvnc,检查有无启动错误并修复:
/usr/bin/Xvnc-gemetry 800×600 -depth24
若出现:
Fatal server rrr:couldn't pend default fnt'fixed'
则可解决如下:
cd /usr/X11R6 /lib/X11/fnts
mkfntdirmisc
然后只需启动dgm并连接到VNC图形环境:
vncviewer 192.168.44.247:0
|