Sun Cluster 概念指南(适用于 Solaris OS)

为数据服务通信使用群集互连

一群集必须有节点之间的多个网络互连,构成群集互连。群集软件使用多个互连来提高可用性并改善性能。如果是内部通信(如文件系统数据或可伸缩服务数据),消息将以循环方式在所有可用的互连间均匀进行分配。

群集互连对应用程序也是可用的,从而在节点间进行高可用性通信。例如,一个分布式应用程序的组件可能运行在不同的需要进行通信的节点上。通过使用群集互连而不使用公共传输,这些连接可承受单个链接失败。

要使用群集互连来在节点间进行通信,应用程序必须使用安装群集时配置的专用主机名。例如,如果节点 1 的专用主机名是 clusternode1-priv,请使用此主机名通过群集互连与节点 1 进行通信。使用此名称打开的 TCP 套接字通过群集互连路由并可以在网络发生故障的情况下透明地重新路由。

注意,由于在安装时可以配置专用主机名,所以群集互连可使用此时选择的任何名称。可以使用 scha_privatelink_hostname_node 参数从 scha_cluster_get(3HA) 处获取实际的名称。

如果是在应用程序级别上使用群集互连,则在每对节点之间使用单独的一个互连;但如果可能,不同的节点对会使用不同的互连。例如,试想一个运行在三个基于 SPARC 的节点上的应用程序通过群集互连进行通信。在节点 1 和 2 之间的通信可能会在接口 hme0 上进行,而节点 1 和 3 之间的通信可能会在接口 qfe1 上进行。即,任何两个节点间的应用程序通信仅限于单个互连,而内部群集通信则均匀地分配到了所有的互连上。

注意,应用程序共享与内部群集通信的互连,所以对该应用程序可用的带宽取决于用于其他群集通信的带宽。如果出现故障,内部通信会在仍正常运行的互连上循环,而失败的互连上的应用程序连接可切换到一个正常互连上。

两种类型的地址支持群集互连,且专用主机名上的 gethostbyname(3N) 通常会返回两个 IP 地址。第一个地址称为逻辑成对地址,第二个地址称为逻辑单节点地址

每对节点各分配了一个逻辑成对地址。此小型逻辑网络支持连接失效转移。每个节点还分配了一个固定的单节点地址。即,clusternode1-priv 的逻辑成对地址因节点而异,而 clusternode1-priv 的逻辑单节点地址在各个节点上相同。但是,一个节点对它自身来说并没有成对地址,所以节点 1 上的 gethostbyname (clusternode1-priv) 仅返回逻辑单节点地址。

请注意,通过群集互连接受连接、然后出于安全原因检验 IP 地址的应用程序,必须检查 gethostbyname 返回的所有 IP 地址,而不仅仅检查第一个 IP 地址。

如果需要使 IP 地址在所有点上的应用程序中保持一 致,请配置应用程序,使单节点地址同时绑定到客户端和服务器端,从而使所有的连接看起来是通过单节点地址出入。