1,xen是什么?
XEN是一个基于X86平台的虚拟机系统,它支持多个操作系统共用系统硬件,而且更重要的是,它不会导致操作系统的功能性和性能性的劣化。它可以支持多种操作系统的虚拟化,比如Linux,BSD,Windows XP等等。
2,为什么使用xen?
XEN希望能够在一台服务器上同时运行多达100个虚拟机(VM)。此外,XEN有以下的几个特性。XEN是最快的和安全性最好的虚拟机系统,它是开源的系统,取得了世界领先的许多公司的支持。还有一点,它是免费的。 相对比已有的几个虚拟机系统,比如VMware,UML(User-Mode Linux)来说,XEN的性能有显著的提高。 此外,XEN提供了对于硬件虚拟化技术的全面支持。比如,Intel新一代的VT-x处理器中支持了CPU,MMU和内存的虚拟化。AMD的Pacifica也有相似的技术。对于此类硬件,XEN可以不修改GuestOS直接进行管理。
3,虚拟化技术的目的:
虚拟化最初的需求就是,降低资源成本,把多操作系统进行集成。
OS虚拟化的概念出现于1972年IBM的一个名叫System 360的系统上。简单的说,就是在OS和硬件之间插入一个系统管理层,系统管理层负责调度多个OS之间的硬件使用,包括MMU,I/O,DMA等等。 在目前的IT系统中,虚拟化越来越成为一个关键的技术领域。主要的原因有以下几点。 费用的节省 目前大多数的服务器应用中,只能使用到服务器自身硬件能力的15%。但是为了扩展不同的业务,用户还需要购置新的服务器。按照统计,数据中心中的一台服务器需要每年一万美元的费用,另外还需要系统维护,管理,硬件和软件的license等等的费用。 在使用了虚拟化技术后,可以在每一台服务器上同时运行多个操作系统和应用。有效的利用服务器硬件自身的能力。从而减低系统的购置费用和全生命周期的维护费用。 提高了系统配布和管理能力 使用虚拟化,可以简单的实现OS的动态配布。patch的安装,不断电的系统维护等等也可以实现。 高可靠性的实现 将硬件与OS之间隔离,OS中所使用的物理设备变成了逻辑设备。提高了系统的可靠性。另外,针对虚拟化的系统,OS的备份恢复等非常容易实现,一旦出现系统故障也可以很快的恢复。
4,全虚化和半虚化的区别:
PV(Para-Vritralization)和FV(Full-Vritralization)的差别,主要以guest OS的硬件仿真程度做区分.
半虚化技术是不能完全硬件仿真的,其性能略高于全虚化技术,半虚化不需要CPU支持VT技术。
全虚化技术完全硬件仿真,但必须要CPU支持VT技术
1) 怎样判别CPU是否支持VT技术?
在linux平台下,输入grep ‘(vmx|svm)’ –color=always /proc/cpuinfo在打印信息中即可看见vmx或smx, vmx是inter的CPU虚拟化,SMX是AMD的CPU虚拟化。
如果你已经安装xen,输入上面的命令就无法看见这两个标签了。命令:xm dmesg | grep -i hvm
如果不支持,还有一种可能是:没有在bios中打开CPU全虚拟功能。
2) 全虚化和半虚化支持的操作系统:
半虚化不支持windows客户机的安装。
5,开始安装
1)更新系统
yum update
2)安装xen依赖组件和编译所需的软件
1 yum groupinstall “Development Libraries”
2 yum groupinstall “Development Tools”
3 yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel
4 bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial libidn-devel
5 yum -y install glibc-devel.i686texinfo libuuid-devel iasl python-lxml
6 yum -y install openssl openssl-devel
7 yum -y install ncurses ncurses-*
8 yum -y install python-devel
3)下载xen4.1.3源码包
wget http://bits.xensource.com/oss-xen/release/4.1.3/xen-4.1.3.tar.gz
4)编译安装Xen hypervisor
tar xvfz xen-4.1.3.tar.gz
cd xen-4.1.3
make world
如果出现如下错误:
解决办法:yum –y install texinfo
make install
5)将Xen加入到启动脚本:
1 /sbin/chkconfig –add xend
2 /sbin/chkconfig –add xencommons
3 /sbin/chkconfig –add xendomains
4 /sbin/chkconfig xend on
5 /sbin/chkconfig xendomains on
6 /sbin/chkconfig xencommons on
6)编译安装Linux3.5.2内核
1 wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.5.2.tar.bz2
2 tar -jxvf linux-3.5.2.tar.bz2
3 make menuconfig
4
5 Processor type and features — >
6 选中Paravirtualized Guest Support
7 Device Drivers —>
8 Xen driver support —>
9 全部选*
10
11 vi .config
12 修改:CONFIG_XEN_DEV_EVTCHN=y(如果是m,开机时无法启动xencommons)
13 CONFIG_XEN_BLKDEV_BACKEND=m
14 CONFIG_XEN_NETDEV_BACKEND=m
7)编译安装内核
1 make
2 make modules
3 make modules_install
4 make install
5 depmod 3.5.2
6 mkinitrd -v -f –with=aacraid –with=sd_mod –with=scsi_mod initramfs-3.5.2.img 3.5.2
8)编辑启动项(grub)
一般在安装完内核之后会默认将最新内核写入到/boot/grub/menu.lst文件。你可以在此基础上修改,也可以复制一份新的启动项;
1 title Xen (3.5.2-xen)
2 root (hd0,0)
3 kernel /xen-4.1.3.gz dom0_mem=512M
4 module /vmlinuz-3.5.2 ro root=UUID=3f920108-b74b-46b9-81c2-aff834494381
5 rd_DM_UUID=ddf1_4c5349202020202010000055000000004711471100001450 rd_NO_LUKS rd_NO_LVM rd_NO_MD LANG=en_US.UTF-8
6 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
7 module /initramfs-3.5.2.img
可能module的配置不一样,请以内核写入的为准,不要照抄,否者将无法启动。
9) 安装virt-manager
yum install libvirt virt-manager xorg-x11-xauth
10 配置网桥
去/etc/sysconfig/network-scripts目录下新增一个interface,ifcfg-br0文件,内容如下
1 DEVICE=br0
2 TYPE=Bridge
3 BOOTRPOTO=static
4 IPADDR=192.168.101.41
5 NETMASK=255.255.255.0
6 GATEWAY=192.168.101.250
7 DNS1=192.168.102.1
8 ONBOOT=yes
我是用eth0, fcfg-eth0,修改方法为去掉ip行,uuidh行,最后增加BRIDGE=br01 BOOTPROTO=none
2 NM_CONTROLLED="yes"
3 ONBOOT=yes
4 TYPE="Ethernet"
5 #UUID="57b04eb5-0f04-489c-a961-7118e0d0294a"
6 HWADDR=00:1B:78:5D:35:A4
7 #IPADDR=192.168.101.41
8 PREFIX=24
9 #GATEWAY=192.168.101.250
10 #DNS1=192.168.102.1
11 DEFROUTE=yes
12 IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth2"
BRIDGE=br0
这样就将eth0桥接到br0。
重启网络
service network restart
查看当前桥接
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.001b785d35a4 no eth0
virbr0 8000.525400ca78c1 yes virbr0-nic
将nic绑到新增的br0上
brctl delif virbr0 virbr0-nic
brctl addif br0 virbr0-nic
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.001b785d35a4 no eth2
virbr0-nic
virbr0 8000.000000000000 yes
到此,操作完毕,然后就是在virt-manager里面给虚拟机选择新增的HostDevice virbr0-nic(Bridge ‘br0’)就可以了。
6,配置虚拟机
1)创建磁盘:
dd if=/dev/zero of=/vps/winxp/disk.img bs=1024k count=4000
2)创建windows主机配置文件
vim /etc/xen/winxp.cfg
import os, re
arch = os.uname()[4]
kernel = "/wp-content/lib/xen/boot/hvmloader"
builder='hvm'
memory = 1024
shadow_memory = 8
name = "winxp"
vif = [ 'type=ioemu, bridge=br0' ]
disk = [ 'file:/vps/winxp/disk.img,xvda,w' , 'file:/vps/iso/xp.iso,xvdc:cdrom,r' ]
#disk = [ 'file:/home/xen1.example.com.img,xvda,w', 'phy:/dev/cdrom,xvdc:cdrom,r' ]
device_model = '/wp-content/lib/xen/bin/qemu-dm'
# boot on floppy (a), hard disk (c) or CD-ROM (d)
# default: hard disk, cd-rom, floppy
boot="dc"
sdl=0
vnc=1
vnclisten="192.168.1.xxx"
vncconsole=1
vncpasswd='passwd'
stdvga=0
serial='pty'
usbdevice='tablet'
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
3)启动虚拟机
xm create winxp.cfg
这样你就可以通过vnc远程连接进行安装了。
5)将虚拟机设置为宿主开机自启动。
其实相当的简单,只需将需要开启客户机配置文件建一个软链接到/etc/xen/auto/文件夹内即可。
ln -s /etc/xen/xxx.cfg /etc/xen/auto/xxx.cfg
6)挂载新磁盘,需先格式化
mkfs -t ext3 -c /dev/sdb
转载请注明:爱开源 » install xen 4.1.3 on centos6.3