Cluster Link
TIPC cluster 由通过链路互连的节点组成。节点可以是物理处理器、虚拟机或网络名称空间,例如,以Docker容器的形式。链路构成可靠的分组传输服务,有时称为“L2.5”数据链路层。
它保证所有数据包的传递和顺序性。它充当节点间连接的中继,并跟踪这些连接。当与对等节点的所有联系丢失时,将通知与该对等节点有连接的所有套接字,以便它们可以断开连接。每个端点在绑定表的本地副本中跟踪对等节点的地址绑定。当与对等节点的联系丢失时,将清除来自该对等节点的所有绑定,并向所有匹配的订阅服务器发出服务跟踪事件。
当没有常规的数据包通信时,每个链路都通过probing/heartbeats进行主动监控。故障检测容差可配置为50 ms到30秒,-默认设置为1.5秒。出于性能和冗余原因,每个节点对可以在单独的网络接口上建立两个链路。链路对可以配置为负载共享或活动待机。如果一条链路出现故障,则将对剩余链路(如果有的话)进行无干扰故障切换。
Cluster Membership(成员)
一个cluster 具有32位cluster 标识,它决定cluster 设置。
如果需要与默认值不同的任何内容(例如,如果同一子网上有多个群集),则用户可以分配群集标识。使用相同集群标识的所有节点将建立相互链接。邻居发现通过UDP多播或L2广播(如果可用)执行。如果基础设施中缺少广播/多播支持,则可以通过显式配置的IP地址执行发现
每个节点都有一个cluster 唯一的节点标识。
在Linux 4.17之前的版本中,这是一个32位的结构化地址,必须由用户设置。在以后的版本中,它是一个128位字段,没有内部结构或限制。默认情况下,此标识由系统基于MAC或IP地址设置。它也可以由用户设置,例如,基于主机名或UUID。标识在内部散列为一个保证唯一的32位节点地址,该地址成为协议使用的节点地址。这两种标识格式是兼容的,可以在同一个集群中使用。Cluster Scalability(可扩展性)
自从Linux 4.7以来,TIPC提供了一种独特的、专利挂起的、自动自适应的分级邻居监控算法。这使得建立最多1000个节点的完整网格集群成为可能,故障发现时间为1.5秒,而在较小的集群中,它可以缩短很多。
More details about this algorithm can be found in the Overlapping Ring Monitoring slide set, which was also presented at the netdev 2.1 conference in Montreal, Canada, April 2017. A white paper can be downloaded from the TIPC project page.