设为首页收藏本站language 语言切换
查看: 2547|回复: 21
收起左侧

VMware esx5i负载均衡分析

[复制链接]
发表于 2014-4-3 12:52:53 | 显示全部楼层 |阅读模式
本帖最后由 wjlove1973 于 12-16-2011 15:48 编辑
       最近对esx5i负载均衡策略中的默认“基于源虚拟端口ID的路由”做了一些分析,非常有意思分享给大家。
    先描述一下场景:
      一台ESX5i服务器有6台VM(姑且用VM1、VM2、VM3、VM4、VM5、VM6来称呼),两块物理网卡做负载均衡(依次显示vmnic0和vmnic1)—默认的做法,两网卡分别依次对应到对端Cisco 2950上的fa0/1和fa0/2口上,通过分析cisco2950上MAC表来分析vmnic0或vmnic1承载VM的数量。
     
     1:依次启动VM虚拟机,VM1走vmnic0,VM2走vmnic1,VM3走vmnic1,VM4走vmnic0,VM5走vmnic0,VM6走vmnic1。
           VM1、VM4、VM5走的是vmnic0网口
           VM2、VM3、VM6走的是vmnic1网口
     
     2:shutdown vmnic1对应的网口后,VM2、VM3、VM6自动转移到vmnic0上承载。后重新开启vmnic1后,VM2、VM3、VM6自动又转移回vmnic1上
     
     3:人为关闭VM2、VM3、VM6虚拟机,VM1、VM4、VM5并没有自动转移到vmnic1上,哪怕是一个VM,关闭VM1后又重启,发现VM1走到了vmnic1上了。
     总结:
        1:在默认的“基于源虚拟端口ID的路由”策略下,每一个VM的数据流(上下行)实际上跑的是一个网口(vmnic1或vmnic0),也就是说任何一个VM虚拟机的数据流并没有被这两个网口分担。
        2:初始开启的VM虚拟机使用哪一个网口来负载的判断原则是网口上承载VM的数量,而不是网口自身资源的负载压力,这样的判断原则有可能会出现有的网口压力非常大,而有的网口非常闲置。
        3:系统正常运行中(上述1),添加网口vmnic2,则虚拟机会重新分配负载平衡,数量是2—2—2模式(三网卡模式下)。
        4:添加和删除网口,对极个别VM会造成一个包的丢失。
        5:建议大家根据VM的要承载数据量的大小,使用vmnetwork端口组中负载均衡设置,人为的指定承载网口和待定网口,最优化使用网口资源。
   
发表于 2014-4-3 12:53:33 | 显示全部楼层
楼主分析的很不错,谢谢。
沙发 2014-4-3 12:53:33 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:54:18 | 显示全部楼层
很有意思,可以借鉴来分布虚拟机的网络IO了。
其实也可以理解为什么这么设计,因为怎么设计简单而且容易实现。
板凳 2014-4-3 12:54:18 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:55:16 | 显示全部楼层
有一个事情一直没有得到确认 就是虚拟机的端口ID是连接至vswitch时产生后一成不变,还是每次重启后端口ID都会发生变化?
还请lz补充一个实验,就是阶段3,如果选用基于源MAC的负载均衡的话,人为关闭VM2、VM3、VM6虚拟机,重启VM1,这是VM1应该还是走nic0吧
这个基于端口ID和源MAC的方式是不是有点类似轮询和MRU
地板 2014-4-3 12:55:16 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:55:51 | 显示全部楼层
牛人
5# 2014-4-3 12:55:51 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:56:23 | 显示全部楼层
非常好的内容,谢谢共享
6# 2014-4-3 12:56:23 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:57:16 | 显示全部楼层
非常精辟的分析!
7# 2014-4-3 12:57:16 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:58:07 | 显示全部楼层
学习到了,还没有做过相关测试
8# 2014-4-3 12:58:07 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:59:02 | 显示全部楼层
非常有参考价值,简单有效的研究
9# 2014-4-3 12:59:02 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 12:59:40 | 显示全部楼层
vmware关于这个部分其实所得不是很清楚的,其实这个基于端口和mac地址准确的说应该不是叫负载均衡,理解为冗余更好点,这个均衡应该理解为按端口或者mac平均哼配,测试过就算一张卡的吞吐率到达50%,也不会切换的,所以准确地说这前两个应该理解为连接数平均,最后个IP Hash才是真的负载均衡,这个时候交换机设置为两层的EthernetChannel,配置负载模式为Src xor des ip
10# 2014-4-3 12:59:40 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 13:00:27 | 显示全部楼层
恩,不错啊,楼主有个问题想交流一下,就是我的服务器有2块网卡,负载平衡策略是“基于源虚拟端口ID的路由” 或者“源MAC" 的情况下,如果我将2块网卡都配置为活动适配器,而物理交换机上没做任何配置,这种情况下,是否会发生局域网内的环路啊 ??? 谢谢!
11# 2014-4-3 13:00:27 回复 收起回复
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-3 13:01:06 | 显示全部楼层

   不会,虚拟交换机和物理交换机不同—虚拟交换机出去的数据包从此网口出,一定从此网口回,而不会从其它网口回(除非此网口宕了),因此不会有环路!
12# 2014-4-3 13:01:06 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 13:01:43 | 显示全部楼层
学习学习!
13# 2014-4-3 13:01:43 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 13:02:39 | 显示全部楼层
纸上谈兵,现在做优化的工具多得牛毛
14# 2014-4-3 13:02:39 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2014-4-3 13:03:11 | 显示全部楼层
ip hash才是真正的NLB和冗余。
以上的   基于port  基于mac只是分流
15# 2014-4-3 13:03:11 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-3 11:59 , Processed in 0.067780 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表