RHEL集群网络通信组播or单播

RHEL集群网络通信
==========================================
    一、RHEL不同版本使用不同的集群软件
1、RHEL5 使用openais ;
2、RHEL6 使用corosync ;默认使用multicast(多播),在RHEL6.2中开始支持单播;
3、RHEL7 使用corosync; 默认使用udpu(单播);

    二、Red Hat Enterprise Linux (RHEL) High Availability 使用 4 种类型的 IP 通信。
1、广播:一个数据包被发送到子网的广播地址,子网中的所有节点都会看到该消息。所有这些集群节点都需要决定是否注意到该数据包。广播数据包没有路由,它们只是在整个网络中传输。
2、多播:数据包被发送到指定的多播地址。感兴趣的集群节点订阅多播地址,因此那些不订阅集群多播的节点看不到数据包。可以路由多播数据包(尽管许多交换机默认情况下做得很糟糕)。
3、单播:数据包被发送到特定的 IP 地址,只有特定的集群节点才能看到它。这些消息可以被路由。
4、流:上面的消息是 UDP 数据包,流是 TCP 的东西,总是单播的。成对的节点在它们之间建立连接并在任一/两个方向上交换字节流。

    三、广播模式对于集群来说可能不太可取,主要问题是性能:
1、广播模式不适用于需要高性能锁定的部署。如GFS、GFS2、cmirror,在RHEL之外使用任何需要高性能消息传输的openais或corosync,如Apache Qpid消息传递。
2、在广播模式下,数据包被发送到网络的广播地址,并由网络上的所有节点接收。节点必须接收并忽略不属于它们的数据包。这在网络上产生了大量不必要的流量,并增加了节点的处理负载。
3、在单播模式下,UDP数据包被直接发送到目标群集节点。本应广播或多播到所有集群节点的数据包现在必须发送N-1次(其中N是集群中集群节点的数量),因此与其他系统相比,流量增加,增加了节点的处理负载
4、多播允许我们将所有这些负载卸载到交换机。这意味着集群节点在发送和接收数据包方面的处理更少,并且网络上的负载更少,因为数据包只发送到需要它们的目的地。交换机达到组播最大数量可能导致异常。

    四、Redhat cluster 的心跳机制
Redhat cluster软件的架构分为两层:
底层的cluster messaging layer(集群信息层)负责在所有节点之间传递集群信息包括心跳信息
RHEL6及之前是CMAN,从RHEL7开始是Corosync。上层的cluster resource manager(集群资源管理器)管理划归集群所属的资源,包括IP地址、逻辑卷、文件系统等
RHEL6及之前是RGManager,从RHEL7开始是Pacemaker。心跳机制使用的是Totem协议,Totem是一个巨复杂的协议,心跳只是其中一个很小的部分,可以这么理解:Totem协议负责处理集群内部所有节点之间的通信问题,包含四个主要组件:Total Ordering Protocol, Membership Protocol, Recovery Protocol, Flow Control Mechanism。这里只讲与心跳有关的部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值