组播和集群
Multicast and Clustering
我打算使用 Ganglia 进行集群监控,并向我们的管理层展示了 O'Reilly 书中关于 Ganglia 的以下图片:
他们看到这张图是"Multicast",说是"Big No"为了性能考虑聚类。我的印象完全相反——多播协议比单播协议配置更简单,更经济有效。
有什么大的原因,为什么集群设计者应该害怕多播?
多播的主要潜力 "gotcha" 是许多网络交换机不为 IPv6 实现 IGMPv3 (or MLDv2),相反,它们只是将每个多播数据包广播到 LAN 上的每个设备,并依靠每个设备的 IP 堆栈在本地过滤掉任何不相关的传入多播数据包。这在技术上是可行的(并使交换机的实现简单化),但这确实意味着 LAN 上的任何慢速(或多或少)设备如果必须投入大量网络带宽,都可能会遇到性能问题 and/or CPU 是时候检查并丢弃大量他们从未要求的多播数据包了。
另一方面,多播(或广播)实际上是执行诸如自动发现 LAN 上的设备之类的操作的要求,因为除非您已经知道该设备的 IP,否则您不能使用单播通信与另一台设备通信地址。
那么,我的建议是将多播用于发现、心跳和其他低带宽流量,但如果您打算做一些高带宽的事情(例如视频流或批量数据传输),要么计划能够回退到单播,或确保您的交换机实施 IGMPv3/MLDv2 并且不要到处发送垃圾多播数据包。
最后一点:WiFi 在多播方面确实 很糟糕——由于 WiFi 多播的实施方式不佳,即使是少量的多播流量也会带来一个 WiFi 路由器跪下。因此,如果您打算使用多播,您可能希望将任何 WiFi 路由器完全远离 LAN,或者至少确保您可以将它们设置为过滤掉多播数据包,而不是试图将它们转发到他们的WiFi 客户端。
我打算使用 Ganglia 进行集群监控,并向我们的管理层展示了 O'Reilly 书中关于 Ganglia 的以下图片:
他们看到这张图是"Multicast",说是"Big No"为了性能考虑聚类。我的印象完全相反——多播协议比单播协议配置更简单,更经济有效。
有什么大的原因,为什么集群设计者应该害怕多播?
多播的主要潜力 "gotcha" 是许多网络交换机不为 IPv6 实现 IGMPv3 (or MLDv2),相反,它们只是将每个多播数据包广播到 LAN 上的每个设备,并依靠每个设备的 IP 堆栈在本地过滤掉任何不相关的传入多播数据包。这在技术上是可行的(并使交换机的实现简单化),但这确实意味着 LAN 上的任何慢速(或多或少)设备如果必须投入大量网络带宽,都可能会遇到性能问题 and/or CPU 是时候检查并丢弃大量他们从未要求的多播数据包了。
另一方面,多播(或广播)实际上是执行诸如自动发现 LAN 上的设备之类的操作的要求,因为除非您已经知道该设备的 IP,否则您不能使用单播通信与另一台设备通信地址。
那么,我的建议是将多播用于发现、心跳和其他低带宽流量,但如果您打算做一些高带宽的事情(例如视频流或批量数据传输),要么计划能够回退到单播,或确保您的交换机实施 IGMPv3/MLDv2 并且不要到处发送垃圾多播数据包。
最后一点:WiFi 在多播方面确实 很糟糕——由于 WiFi 多播的实施方式不佳,即使是少量的多播流量也会带来一个 WiFi 路由器跪下。因此,如果您打算使用多播,您可能希望将任何 WiFi 路由器完全远离 LAN,或者至少确保您可以将它们设置为过滤掉多播数据包,而不是试图将它们转发到他们的WiFi 客户端。