Red Hat Training

A Red Hat training course is available for RHEL 8

第 52 章 TIPC 入门

透明进程间通信(TIPC),也称为 Cluster Domain Sockets,用于群集范围的操作的进程间通信(IPC)服务。

在高可用性和动态集群环境中运行的应用程序有特殊需要。集群中的节点数量可能会有所不同,路由器可能会失败,且出于负载均衡的考虑,功能也可以移到集群中的不同节点。TIPC 可最大程度降低应用程序开发人员处理此类问题的工作,并尽可能以正确和最佳的方式处理它们。另外,TIPC 比一般协议(如 TCP)提供效率更高且容错的通讯。

52.1. TIPC 的构架

TIPC 是使用 TIPC 和数据包传输服务(bearer)的应用程序之间的一层,跨越传输层、网络和信号链路层。然而,TIPC 可以使用不同的传输协议作为 bearer,这样 TCP 连接就可以充当 TIPC 信号连接的 bearer。

TIPC 支持以下 bearer:

  • Ethernet
  • InfiniBand
  • UDP 协议

TIPC 提供了在 TIPC 端口间可靠传送信息,这是所有 TIPC 通讯的端点。

以下是 TIPC 构架图:

52.2. 系统引导时载入 tipc 模块

在您使用 TIPC 协议前,载入 tipc 内核模块。本节介绍如何在系统引导时配置 RHEL 自动载入这个模块。

流程

  1. 使用以下内容创建 /etc/modules-load.d/tipc.conf 文件:

    tipc
  2. 重启 systemd-modules-load 服务在不重启系统的情况下载入该模块:

    # systemctl start systemd-modules-load

验证步骤

  1. 使用以下命令验证 RHEL 是否已载入 tipc 模块:

    # lsmod | grep tipc
    tipc    311296  0

    如果命令没有显示 tipc 模块的条目,RHEL 无法加载它。

其它资源

  • 有关系统引导时载入模块的详情,请参考 modules-load.d(5) man page。

52.3. 创建 TIPC 网络

这部分论述了如何创建 TIPC 网络。

重要

这些命令只临时配置 TIPC 网络。要在节点上永久配置 TIPC,在脚本中使用此流程的命令,并将 RHEL 配置为在系统引导时执行该脚本。

先决条件

流程

  1. 可选:设置一个唯一的节点身份,如 UUID 或节点的主机名:

    # tipc node set identity host_name

    身份可以是任何由最多 16 个字母和数字组成的唯一字符串。

  2. 添加 bearer。例如:要将以太网用作介质,并将 enp0s1 设备用作物理 bearer 设备,请输入:

    # tipc bearer enable media eth device enp1s0
  3. 可选: 要获得冗余和更好的性能,请使用上一步中的命令附加更多 bearer。您可以配置最多三个 bearer,但在同一介质上不能超过两个。
  4. 在应该加入 TIPC 网络的每个节点中重复前面的所有步骤。

验证步骤

  1. 显示集群成员的链接状态:

    # tipc link list
    broadcast-link: up
    5254006b74be:enp1s0-525400df55d1:enp1s0: up

    此输出显示,节点 5254006b74be 上的 bearer enp1s0 和节点 525400df55d1 的 bearer enp1s0 之间的链接是 up

  2. 显示 TIPC 发布表:

    # tipc nametable show
    Type       Lower      Upper      Scope    Port       Node
    0          1795222054 1795222054 cluster  0          5254006b74be
    0          3741353223 3741353223 cluster  0          525400df55d1
    1          1          1          node     2399405586 5254006b74be
    2          3741353223 3741353223 node     0          5254006b74be
    • 有两个服务类型为 0 的条目表示两个节点是这个集群的成员。
    • 服务类型为 1 的条目代表内置拓扑服务跟踪服务。
    • 服务类型为 2 的条目显示在发布节点中看到的链接。范围限制 3741353223 代表 peer 端点的地址(基于节点身份的唯一 32 位哈希值),以十进制格式表示。

其它资源

  • 有关您可以使用的其它 bearer 以及对应的命令行参数的详情,请查看 tipc-bearer(8) man page。
  • 有关 tipc namespace 命令的详情请参考 tipc-namespace(8) man page。

52.4. 其它资源

  • 红帽建议使用其他 bearer 级别协议来根据传输介质加密节点之间的通信。例如:

  • 有关如何使用 TIPC 的示例,请使用 git clone git://git.code.sf.net/p/tipc/tipcutils 命令克隆上游 GIT 存储库。该仓库包含使用 TIPC 功能的演示和测试程序的源代码。请注意,这个软件仓库不是由红帽提供的。
  • 有关 TIPC 协议的详情请参考 http://tipc.io/protocol.html
  • 有关 TIPC 编程的详情请参考 http://tipc.io/protocol.html