在XenServer中,为了提供网络层面的冗余或者负载均衡功能,我们需要对网卡进行绑定(bond),但是在XenServer中,在XenCenter中创建绑定的时候只能选择两块物理网卡进行绑定,无法实现三块网卡,甚至更多网卡的绑定。XenServer为了这些需求,提供了CLI命令来解决这些问题。

在开始对多个网卡进行绑定之前,我们需要了解一下XenServer中关于绑定的一些处理方法和流程。

  1. 首先,在XenServer中创建一个Network对象,最后Bond会关联到该对象,并分配给VM
  2. 规划要绑定的物理网卡以及绑定模式
  3. 创建绑定(bond-create),关联Network对象即可
我们在使用XenCenter创建绑定的时候,会自动的完成上面的过程,但是通过CLI来创建绑定,我们就需要手动来创建相关的对象了,同时我也会列出相关的截图,方便大家理解。

 

我们可以看到,XenCenter中的显示,主机默认4块网卡,默认每个网卡一个Network对象。

绑定过程:

  1. #创建Network对象,成功后返回Network对象UUID  
  2. xe network-create name-label="Bond 1+2+3"   
  3. #查看物理网卡UUID  
  4. xe pif-list params=device,uuid   
  5. #绑定eth1,eth2,eth3,并关联到预先创建好的network对象  
  6. #可以指定绑定模式,XenServer6.0提供了两种模式支持active-back和balance-slb  
  7. xe bond-create pif-uuids=<eth1,eth2,eth3 's uuid> network-uuid=<network uuid> 

在第一步中,完成了Network对象的创建以后,我们就可以在Network标签中看到新创建的Network对象,另外其他四个物理网卡对应的Network对象也可以看到。
 

在我们完成了Bond的创建,并关联上Network对象以后,我们可以发现,在Network显示中,Bond 1+2+3的MAC地址已经自动生成,而,以前物理网卡eth1,eth2,eth3对象的Network 1,Network 2,Network 3已经消失了。这是因为,在创建网络绑定的过程中,XenServer会解除物理网卡到以前网卡对象的关联,防止再去使用单独的物理网卡。
BTW:这里只是说的是到Network对象的关联被解决,而对应的内部Bridge还是存在的,具体大家可以自己去理解了。