柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!
全部博文(1669)
分类:
2012-07-17 11:28:01
2011-08-16 22:51:53| 分类: 虚拟化+云计 | 标签: |字号大中小
我有种机器,有 4 个网卡,想在上面整 4 个虚拟机。所以让不同的虚拟机,使用不同的网卡。这样来做桥接设备。方便使用。记录一下方法,如下。
1.安装 xen 虚拟化
最开始当然得使用软件源来安装虚拟化。用 163 的吧,速度不错。
我们计划的设置如下
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).这样启用我们自己的脚本来生成桥接的设备
3. 写自己自定的脚本 ,来生成自己所需要的网卡数量和绑定的位置,如上面的计划中
这样会生成一个 /etc/xen/scripts/php-oa-network-multi-bridge 内包含如下的内容。$@ 是用来接收 shell 命令中的 start,stop,status 的命令的。记的要加执行的权限,可一定不能忘记.
4.配置物理网卡,让开机就能启动
好了,在使用上面的脚本成前面,我们需要保证这几个网卡配置是能正常启动的。
所以我们要修改二个地方 ,ONBOOT=yes 和 BOOTPROTO=static 这二个,网卡才能正常的启动.
5. 测试桥接
下面的命令就不用解释了,还可以用 ifconfig 检查
6. 安装第一个虚拟机
下面的命令是用来安装第一个虚拟机的,其它的虚拟机直接 copy 出来就行。然后只要修改其它机器的配置文件就行了。
以上参数中
–extra-args 这个是传送给启动时的内核用的。
–network 是设置网络的连接方法,还有桥接到那个设备
-s 生成的文件大小 G 为单位
–ram 内存设置
–file 系统文件存放的位置
7. 设置自动启动
当主系统启动时,虚拟机启动,自己有几个 虚拟机设置几个
8. 其它虚拟机的安装
其它的虚拟机安装比较容易,直接 copy 上面的 /xen/node1 这个操作系统的文件叫别的名字,另外新建几个其它机器的配置文件
并修改其中几个参数
如上几个参数 ,disk 指向其它的参数。vif 是指本机的 MAC 地址,xenbr0 – xenbr3 是可以桥接的设备
如果要新加硬盘,可以使用下面的语法,来加入物理硬盘
以下经验参考: 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通路由器或局域网其它机器
Process to setup multiple Red Hat Virtualization bridges:
我理解其中第3步就是将xend-config.sxp配置文件中的(network-script network-bridge)替换为(network-script network-xen-multi-bridge),假定将第4步创建的脚本命名为network-xen-multi-bridge。
我在修改配置时,没有写前面的network-script,在重新启动后一个虚拟网桥都没有找到,因为服务器正在使用中,不能频繁重新启动,所以尝试手工执行/etc/xen/scripts/network-xen-multi-bridge start,然后二个虚拟网桥都可以正常工作了。
根据网上的资料总是存在这样或者那样的问题,自己摸索后,贴出自己的经验和大家分享。
安装好kvm后,连不上网,折腾了好久,客户机能上网了,主机又上不了。重新配置后,主机在没有启动kvm前能上网,在启动kvm后,客户机能上网,主机又上不了网。郁闷啊。不过现在,主宿机器都能同时联网。但是还存在一点问题。
环境:系统ubuntu10.10 虚拟机kvm + qemu 。主机ip为192.168.1.46,虚拟机中系统(我这用xp)的ip为192.168.1.66
具体步骤不说了,网上太多。贴下我 文件配置,还有一些心得。
首先机器能上网,即已经配置过/etc/network/interfaces文件,ip为192.168.1.46 netmask 255.255.255.0 gateway 192.168.1.254
为了使kvm桥接 网络,将该文件改为
auto lo
iface lo inet loopback
#auto eth0
#iface eth0 inet manual
auto br0
iface br0 inet static
bridge_ports eth0 tap0
address 192.168.1.46
netmask 255.255.255.0
gateway 192.168.1.254
bridge_stp off
bridge_maxwait 0
bridge_fd 0
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
启动kvm:
lxz@lxz-pc:~$ sudo qemu-system-x86_64 ./kvm/winxp.img -m 512 -net nic,macaddr=00:11:22:33:44:55 -net tap,ifname=tap0,script=no
启动后,将启动的虚拟机中的xp配置下ip,子网掩码,网关(xp里的ip要和192.168.1.46在一个网段,我配置的为192.168.1.66),这样,主宿机都能上网了。
利用ifconfig命令可以看到:
多了一个br0,和tap0 。而且eth0的ip没有了。在没有启动kvm之前eth0是有ip 的,ip为192.168.1.46。但是现在br0的ip成为了192.168.1.46
至此,主宿机器都能上网,看来kvm桥接的问题貌似得到解决。这个问题解决,新的问题又出现了。
如果在你关掉虚拟机和主机后,重启主机再上网的时候,发现主机已经不能上网,用ipconfig命令查看,eth0和br0的ip都为192.168.1.46。
查看路由表:
目标 网关 子网掩码 标志 跃点 引用 使用 接口
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 br0
default 192.168.1.254 0.0.0.0 UG 0 0 0 eth0
default 192.168.1.254 0.0.0.0 UG 100 0 0 br0
发现对于同一个目标网络,有两个下一跳,显然不行,于是用如下命令清除eth0的ip,问题得到解决,主宿机又能同时上网了。
lxz@lxz-pc:~$ sudo ifconfig eth0 0.0.0.0
清除eth0的ip信息后,路由表变为:
目标 网关 子网掩码 标志 跃点 引用 使用 接口
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
link-local * 255.255.0.0 U 1000 0 0 br0
default 192.168.1.254 0.0.0.0 UG 100 0 0 br0
再用ifconfig命令查看,eth0的ip没有了,而br0的ip还为192.168.1.46。
看来,要想主宿机同时上网,eth0是不能有ip的。
到这里,问题得到解决,不过还没找到在没有启动kvm虚拟机的时候不启动br0的方法,有待进一步研究。知道的朋友可以留言谢谢