环境为 vm11
OracleLinux-R5-U8-Server-x86_64-dvd.iso
下载地址为:http://mirror.aarnet.edu.au/pub/oraclelinux/
在VM11上安装OracleLinux-R5-U8,步骤省略。。。。
选择英文版本的安装
不然后面会报错的
还要安装桌面应用~
确保虚拟机可以上网
开启虚拟机的CPU虚拟化
内核为
uname -a
Linux localhost.localdomain 2.6.32-300.10.1.el5uek #1 SMP Wed Feb 22 17:37:40 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
使用root用户登录
fdisk -l
给新的硬盘添加一个分区
fdisk /dev/sdb
n
p
1
w
df -l 查看是否分区成功
格式化新的分区
mkfs -t ext3 -c /dev/sdb1
创建新的目录
mkdir /data
挂载
mount /dev/sdb1 /data
编辑分区配置文件vi /etc/fstab,根据需求添加挂载信息,配置完成后“:wq”保存退出
/dev/sdb1 /data ext3 defaults 0 0
命令解释:
<dump> dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。
<pass> fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2,0 表示设备不会被 fsck 所检查。
使用命令“mount -a”重新挂载分区配置文件里的分区,然后使用“df -h”命令查看是否挂载成功,出现以下信息证明挂载成功。
注:如果执行“mount -a”出错,请检查是否配置文件出现了问题,相关的路径要填写正确,使用绝对路径,需自行创建要挂载的路径
安装XEN环境
配置yum源
说明:通过安装源进行安装是最简单的。
# cd /etc/yum.repos.d
oracle 5.8版本的配置源
wget http://public-yum.oracle.com/public-yum-el5.repo
/*
oracle 6版本以后的配置源 好像已经有内置源了
wget http://public-yum.oracle.com/public-yum-ol6.repo
wget http://public-yum.oracle.com/public-yum-ol7.repo 不管他 已经包含有yum的源了、可能会产生一个public-yum-ol7.repo.1的文件
cp public-yum-ol7.repo.1 public-yum-ol7.repo 复制public-yum-ol7.repo.1到public-yum-ol7.repo
cp:是否覆盖"public-yum-ol7.repo"? y 覆盖原来的源配置文件
*/
vi public-yum-el5.repo 进入源配置文件,进行修改 按i进入编辑、修改后按esc、:wq!保存退出
因为我的是OracleLinux-R5-U8版本的、所以找到[ol5_u8_base] 那个版本的镜像就找相对应的
将enabled=0 修改为enabled=1
yum安装xen
# yum install kernel-xen xen-libs xen virt-viewer 可能会提示有进程被占用了、没关系、可以 等一会再安装
根据提示按y
如果提示yum被另一个进程占用了
可以使用kill -s 9 进程号
安装结束后
修改启动列表,使用运行xen的内核启动系统
cat /boot/grub/grub.conf
vi /boot/grub/grub.conf
确认 default = 0
重启系统
reboot
查看xen启动情况
默认xen服务开机自启动
# chkconfig --list |grep xend
xend 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xendomains 0:off 1:off 2:off 3:on 4:on 5:on 6:off
查看xen内核
[[email protected] ~]# uname -a
Linux node1 2.6.18-348.16.1.0.1.el5xen #1 SMP Tue Aug 20 13:57:31 PDT 2013 x86_64 x86_64 x86_64 GNU/Linux
查看xen情况
[[email protected] ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1744 1 r----- 32.8
由于虚拟机运行在宿主机之上,虚拟机运行的网络环境需要由宿主机提供,需要先配置好网桥,以便虚拟机与宿主机之间通信:
# chkconfig NetworkManager off #在使用网桥的网络环境中需要关闭NetWorkManager服务,否则网桥的功能不能正常启用。
# chkconfig network on
开启网桥的stp(避免环路)的功能:
# brctl stp virbr0 on
通过ifconfig查看虚拟机的网卡信息
发现多了几个网卡
peth0
vif0.0
virbr0
xenbr0
xenbr0是xen开的,xen的桥
virbr0是libvirt开的,也是桥
vif0.0应该是xen guest 的tap网卡
peth0是xen kernel下的物理网卡
在安装了xen的主机中,当使用ifconfig命令时,除了熟悉的eth0以外还会出现许多平常没有见到过的网络接口,这些接口的出现的原因是因为xen会自动为虚拟机创建一些虚拟的网络接口,装有xen的主机在启动时网络的配置过程为:
1.执行在/etc/xen/xend-config.sxp中指定的/etc/xen/scripts/network-bridge脚本 2.network-bridge脚本创建一个新网桥,名字为xenbr0 3.复制物理网卡接口eth0的MAC地址和IP地址 4.停止物理网卡接口eth0
5.创建一对相连的虚拟网卡接口,veth0和vif0.0
6.将之前复制的物理网卡接口的MAC,IP分配给虚拟接口veth0 7.重命名物理网卡接口,从eth0改名为peth0 8.重名名虚拟网卡接口,从veth0改名为eth0
9.将物理网卡接口peth0,虚拟网卡接口vif0.0加入到网桥xenbr0中 10.启动网桥xenbr0,启动其他网络接口peth0,eth0,vif0.0
对于每一个新的domU,Xen会创建“一对相连的虚拟网卡”,其中一块在新建的domU上,另一块在dom0上。对于Linux的domU来说,其虚拟网卡名字是eth0,而在dom0这端的这一块的网卡名字是vif<id#>.0。当一台domU关机的时候,相关的虚拟网卡会被删除。 所以在装有xen的主机中网络端口的状态如下图所示:
图2-11 装有xen的主机中网络端口的状态
数据包到达物理网卡之后的处理流程为:数据包到达硬件物理网卡接口peth0,dom0上的网卡驱动会进行处理。因为peth0绑定在网桥上,所以数据包被发送到网桥上。观察ifconfig的输出,你会发现peth0,xenbr0,vif0.0和vif1.0都共享一个相同的MAC地址FE:FF:FF:FF:FF:FF,该地址是以太网广播地址。这表明物理网卡接口,dom0的loopback接口,所有guest domain的后端接口都广播到网桥接口xenbr0。当物理网卡接口peth0接收到一个数据包,它会将数据包直接发送到网桥接口xenbr0上。然后网桥会分发数据包,像交换机一样(话说交换机也是网桥的一种)。网桥会根据数据包接收者的MAC地址将其转发到正确的网络接口上。所以peth0这个接口不需要配置ip地址,只有MAC地址就够了。然后vif接口会将数据包发送给domU上相连的接口,然后domU中返回的数据包也通过vif发送回来。dom0也是一样的操作模式,通过vif0.0->eth0这一对相连的网卡。
vif0.1:表示ID为0的第二个网络接口,vif6.0:表示ID为6的第一个网络接口 virbr0:是虚拟系统和真实系统进行连接的接口,实现NAT功能 xenbr1:是虚拟系统和真实系统进行连接的接口,桥接功
图2-11 装有xen的主机中网桥的转发原理