码迷,mamicode.com
首页 > Windows程序 > 详细

Windows Network Load Balance概念和选择

时间:2015-03-12 19:24:16      阅读:1768      评论:0      收藏:0      [点我收藏+]

标签:组播   单播   multicast   network load balance   unicast   


    • 单网卡单播:

  1. ClusterMAC地址被分配给主机的网卡,主机网卡本身的MAC地址无法被使用;

  2. 特点:

    1. 网卡自己的MAC地址被禁用。clusterMAC地址自动替换了网卡本身的MAC地址;

    2. 网卡变成了cluster业务专用网卡;

    3. 主机本身的网卡的IP地址和clusterIP地址都被解析成clusterMAC地址;

    4. 由于所有cluster主机都使用同一个MAC地址(clusterMAC地址),所以cluster主机之间无法通信。但这些主机都可以处理来自子网外的通信请求,也能处理同子网的携带其他不同MAC地址的报文。

 

  • 单网卡组播:

    • clusterMAC地址被分配给主机的网卡,单主机本身网卡的内置MAC也被保留使用,两个MAC地址都再用。

    • 特点:

  1. NLB自动为网卡生成一个cluster        MAC地址;

  2. 网卡本身的MAC地址也被保留;

  3. clusterIP地址解析成clusterMAC地址;

  4. 网卡本身的IP地址解析成网卡本身的MAC地址;

重点:

  • NLB不支持unicast/multicast混合在同一个cluster中。同一个cluster中的网卡只能全都工作在同一个模式下,不论哪种cluster,对网卡的数量都没有限制;

  • Nlbmgr

  • unicast是默认的NLB形式;

  • 如果启用了multicast,单网卡可以处理client-to-cluster        traffic和机器本身的traffic

  • multicast支持,不论有几个网卡,它都有几个优势:例如它没有单网卡的那几个限制。

 

  • 多网卡单播:

unicast模式下:clusterMAC地址被分配给用于clusterNIC适配器,cluster适配器的本身的MAC地址不被使用。因为这个原因,主机之间的通信(并不是说NLB的心跳traffic)无法通过cluster adapter进行。

 

Cluster adapter:用于clusteradapter

 

用于cluster adapterNIC

  1. clusterIP地址解析成adapterCluster      MAC地址(NLB自动生成);

  2. 如果cluster adapter的专用IP地址被使用了,这个IP地址也会解析成Cluster MAC

  3. Cluster adapter使用virtual IP地址处理client-to-cluster的流量。同一个clusterhost-to-host流量无法通过这个adapter,因为每个主机的MAC地址在cluster中是相同的。参考ARPhttps://technet.microsoft.com/en-us/library/cc758357(v=ws.10).aspx

 

用于管理的NIC

  1. NLB不使用这个adapter

  2. 这个adapterIP地址解析成adapter本身(built-in)的MAC地址;

  3. 这个adapter处理本机业务的traffic,包括子网内部和外部的流量;

 

 

  • 多网卡组播:

 

clusterMAC地址被分配给cluster adapters,但cluster adapter本身(built-in)地址被保留,因此两个地址都被使用,cluster MAC地址用于处理cluster数据,本身的MAC地址用于处理本机业务数据,这就是和unicast的区别。

 

下面这些特性:

  1. Adapters used as      cluster adapters

    1. Cluster       IP地址解析成clusterMAC地址(NLB自动生成);

    2. 如果cluster adapter的专用IP地址在使用,这个IP地址解析成adapter的本身的(built-inMAC地址;

    3. multicast模式下,cluster adapter可以处理client-to-cluster的流量,也可以处理主机本身的流量,包括所有流入流出本子网的traffic

  2. 用于管理的adapter

    1. NLB不使用这个adapter

    2. adapterIP地址解析成adapter本身的MAC地址;

    3. 这个adapter可以被用于处理本机业务流量,包括流入流出该子网的流量。

 

重点:

NLB不支持在同一个cluster混合unicast/multicast。在各自的cluster里,所有的adapters必须只能工作在unicast或者是multicast

不管unicast或者是multicast,对NIC的数量没有限制。不同的主机可以有不同数量的网卡;

 

NLB负责解析cluster IP地址成它关联的multicast clusterMAC地址,这是在路由器的ARP完成的。在少数情况下,使用multicast MAC地址可能被某些路由器不支持。如果发现这个问题,cluster无法被从本地子网外访问到。为了纠正这个问题,你必须在router上建立一个静态的ARP。着需要参考你的路由器的文档,看看如何配置。

https://technet.microsoft.com/en-us/library/cc785431(v=ws.10).aspx

 

如果你禁用了multicast支持(导致了主机变成unicast模式),NLB自动instructs驱动,属于cluster adapter来覆盖adapter的自身的,内置的network address,改变它的MAC地址成clusterMAC地址。这就是用于所有cluster主机的地址。你不需要手动配置network adapter来识别这个地址。(注意一些网卡不支持更改MAC地址,如果遇到这种情况,你得换个支持更改MAC地址的网卡才行)

 

Notes:

 

  1. Multicast支持默认是不启用的。如果你不想使用多播支持,建议你考虑使用至少2个网卡(1个专门用来处理cluster,一个专门用于本机的数据流量)以达到优化性能及网卡的能力被充分利用。

  2. 如果你使用单网卡,参考https://technet.microsoft.com/en-us/library/cc776178(v=ws.10).aspx

单网卡限制: https://technet.microsoft.com/en-us/library/cc780023(v=ws.10).aspx

 

  1. 单网卡在Unicast情况下的限制:

    1. Due to my tests        on windows server 2012 R2:

    2. But there is a warning, "Running NLB manager on a system with all networks          bound to NLB might not work as expected." If all interfaces are          set to run NLB in "unicast" mode, NLB manager will fail to          connect to hosts.

    3. ping from one         of the cluster host to the built-in IP address of the other host is         okay;

    4. Manage the NLB via Network Load Balancing Manager is         okay, some documents said it‘s not okay(I didn‘t         remember the details);

    5. cluster主机之间的普通的网络通信无法实现;

 

 

 

  1. 本来要去往某个节点的流量被发送给所有cluster的主机节点,造成很大浪费;

更重要的是,如果你的主机只有一个网卡,并且在unicast模式下,你无法使用NLB manager来管理和配置其他的主机;(实际测试过城中发现,单网卡形况下,使用NLB manager会有警告提示。)

这些限制可能对很多情况下不太重要。如果cluster主机只能从outside访问到(因为两个主机之间无法通信),非cluster的流量又不是很频繁(例如,某节点的网站夜间更新通常很少,)这种情况下,使用单网卡也足够了。另外,单网卡肯定好用。

 

 

 

 

  1. https://technet.microsoft.com/en-us/library/cc784524(v=ws.10).aspx

  2. Limit switch port      flooding: https://technet.microsoft.com/en-us/library/cc737869(v=ws.10).aspx

  3. NLB requirement: https://technet.microsoft.com/en-us/library/cc785431(v=ws.10).aspx

  4. NLB Best practice: https://technet.microsoft.com/en-us/library/cc740265%28v=ws.10%29.aspx

 

 

  • 如何鉴别Cluster的mode?

    1. 通过检查ARP

      1. Ping cluster的IP地址;

      2. Ping cluster的网卡的IP地址;

      3. 检查本机的ARP信息,看看cluster的IP的MAC地址和网卡的MAC地址是否相同,相同则为unicast。


    2. 检查NLB的具体信息

  • 使用 "nlb" 或 "wlbs"命令;

  • 如果MulticastSupportEnable的状态为enabled就是multicast,否则就是unicast;


总结:

 

  1. 不管单播还是组播,对网卡数量都没有要求,1个就够了;

  2. 如果可以的话,每个机器使用多个网卡还是好的,主要用途是将cluster业务用专门的网卡,本机数据业务用本机专门的网卡走;

  3. 组播的优势比单播的多一些;

  4. 单播单网卡情况下,cluster的主机之间是无法进行数据通信的,所以不要测试A机器ping B机器的IP,通还是不通,意义都不大;

  5. 如果你的cluster主机之间没啥必要的通信,就推荐你用单网卡unicast

  6. 如果你想用multicast,那么最好用IGMP      multicast,这能降低广播风暴;

  7. 如果你喜欢NLB最佳实战,那么多网卡是首选,unicast或者multicast都可以,但是不管你怎么搭配,请你自己一定理解什么是unicast/multicast,他们优缺点都是什么。

  8. 如果要使用multicast进行测试,那么跨网段的情况下,默认是不能访问到NLB      cluster资源的,需要IT部门在公司的高级设备中进行配置,所以不建议使用。


本文出自 “梦想依赖实践-原创Only” 博客,请务必保留此出处http://yinzi7.blog.51cto.com/299508/1619793

Windows Network Load Balance概念和选择

标签:组播   单播   multicast   network load balance   unicast   

原文地址:http://yinzi7.blog.51cto.com/299508/1619793

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!