技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 网络系统 --> 设置 XEN 的多网卡(3网卡4网卡..)桥接

设置 XEN 的多网卡(3网卡4网卡..)桥接

浏览:2477次  出处信息

我有种机器,有 4 个网卡,想在上面整 4 个虚拟机。所以让不同的虚拟机,使用不同的网卡。这样来做桥接设备。方便使用。记录一下方法,如下。

1.安装 xen 虚拟化

最开始当然得使用软件源来安装虚拟化。用 163 的吧,速度不错。 

以下是引用片段:
perl -i -pe ’s/mirror.centos.org/mirrors.163.com/g;s/^#baseurl/baseurl/g;s/mirrorlist/#mirrorlist/g’ /etc/yum.repos.d/CentOS-Base.repo
yum -y groupinstall Virtualization
 
我们计划的设置如下
eth0 - xenbr0 - Dom0, DomN
eth1 - xenbr1 - DomX+1
eth2 - xenbr2 - DomX+2
eth3 - xenbr3 - DomX+3

4个网卡,分别桥接,然后让三个虚拟机分别接到三个机器上

 

2. 修改 xend 的配置文件,让它支持多个网卡,不使用默认的脚本

在 /etc/xen/xend-config.sxp 文件中的 (network-script network-bridge) 修改成 (network-script php-oa-network-multi-bridge).这样启用我们自己的脚本来生成桥接的设备

以下是引用片段:
perl -i -pe ’s/\(network-script network-bridge\)/#\(network-script network-bridge\)\n\(network-script php-oa-network-multi-bridge\)/g’ /etc/xen/xend-config.sxp

 

3. 写自己自定的脚本 ,来生成自己所需要的网卡数量和绑定的位置,如上面的计划中 
 

以下是引用片段:
perl -le ’for $num (0 .. 3){print "/etc/xen/scripts/network-bridge \"\$@\" vifnum=$num netdev=eth$num bridge=xenbr$num" }’ > /etc/xen/scripts/php-oa-network-multi-bridge
chmod u+x /etc/xen/scripts/php-oa-network-multi-bridge
这样会生成一个 /etc/xen/scripts/php-oa-network-multi-bridge 内包含如下的内容。$@ 是用来接收 shell 命令中的 start,stop,status 的命令的。记的要加执行的权限,可一定不能忘记.
以下是引用片段:
/etc/xen/scripts/network-bridge "$@" vifnum=0 netdev=eth0 bridge=xenbr0
/etc/xen/scripts/network-bridge "$@" vifnum=1 netdev=eth1 bridge=xenbr1
/etc/xen/scripts/network-bridge "$@" vifnum=2 netdev=eth2 bridge=xenbr2
/etc/xen/scripts/network-bridge "$@" vifnum=3 netdev=eth3 bridge=xenbr3

4.配置物理网卡,让开机就能启动

好了,在使用上面的脚本成前面,我们需要保证这几个网卡配置是能正常启动的。
所以我们要修改二个地方 ,ONBOOT=yes 和 BOOTPROTO=static 这二个,网卡才能正常的启动. 

以下是引用片段:
perl -i -pe "s/ONBOOT=no/ONBOOT=yes/g;s/BOOTPROTO=dhcp/BOOTPROTO=static/g" /etc/sysconfig/network-scripts/ifcfg-eth{1,2,3}

5. 测试桥接 

下面的命令就不用解释了,还可以用 ifconfig 检查 

以下是引用片段:
/etc/xen/scripts/ChinaCache-network-multi-bridge start
/etc/xen/scripts/ChinaCache-network-multi-bridge status
/etc/xen/scripts/ChinaCache-network-multi-bridge stop

6. 安装第一个虚拟机

下面的命令是用来安装第一个虚拟机的,其它的虚拟机直接 copy 出来就行。然后只要修改其它机器的配置文件就行了。

以下是引用片段:
/usr/sbin/virt-install -p --paravirt --name=node1 -s 5 --ram=8192 --vcpus=2 --file=/xen/node1 --location=nfs:123.125.162.7:/mnt --extra-args="ip=123.125.162.45 netmask=255.255.255.192 gateway=123.125.162.1 dns=202.106.0.20" --network bridge=xenbr0 noipv6
 
以上参数中
-extra-args 这个是传送给启动时的内核用的。
-network 是设置网络的连接方法,还有桥接到那个设备
-s 生成的文件大小 G 为单位
-ram 内存设置
-file 系统文件存放的位置

 

7. 设置自动启动

当主系统启动时,虚拟机启动,自己有几个 虚拟机设置几个

以下是引用片段:
virsh autostart node1

8. 其它虚拟机的安装

其它的虚拟机安装比较容易,直接 copy 上面的 /xen/node1 这个操作系统的文件叫别的名字,另外新建几个其它机器的配置文件

以下是引用片段:
cp /etc/xen/node1 /etc/xen/node{1,2,3}
并修改其中几个参数
以下是引用片段:
name = "node1"
disk = [ "tap:aio:/xen/node1,xvda,w" ]
vif = [ "mac=00:16:36:7b:c9:e3,bridge=xenbr0,script=vif-bridge" ]
如上几个参数 ,disk 指向其它的参数。vif 是指本机的 MAC 地址,xenbr0 - xenbr3 是可以桥接的设备
如果要新加硬盘,可以使用下面的语法,来加入物理硬盘
以下是引用片段:
disk = [ "tap:aio:/xen/node1,xvda,w",
"phy:/dev/sdb,ioemu:sdb,w",
"phy:/dev/sdc,ioemu:sdc,w",
]

以下经验参考: http://www.cnblogs.com/yangyh/archive/2010/07/16/1778516.html

xenbr0 是会连接vif0.0,vifN.0 (N 表示 xm list 中的 id 号,表示第几个 id 的虚拟主机)
peth0 可以将peth0看作etho的别名
vif0.0表示dom0接口,vif1.0表示dom ID=1的接口(重启或新建几个domain,ID更改后你会发现vif1.0变成vif2.0..3.0了)

如果在xenbr0中删除vif0.0,则在domain中无法ping通本机,但能ping通通过eth0连接的机器,比如本机连接的路由器
如果在xenbr0中删除vif1.0,则在domain中就没有网卡了(相应的vif1.1表示ID为1的DOMAIN的第二块网卡)
如果在xenbr0中删除peth0,则能ping能本机,而无法ping通路由器或局域网其它机器

建议继续学习:

  1. xen虚拟化之hvm类型虚拟机安装使用    (阅读:2004)
  2. 硬件虚拟化技术浅析    (阅读:2007)
  3. xen虚拟机的迁移类型    (阅读:1842)
  4. Xen 虚拟机的 NAT 网络配置    (阅读:763)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1