Sun Cluster 3.0 12/01 概念

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

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

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

要使用群集互连来在节点间进行通信,应用程序必须使用安装群集时配置的专用主机名。 例如,如果节点 1 的专用主机名是 clusternode1-priv,则使用该名称通过群集互连与节点 1 进行通信。使用该名称打开的 TCP 套接字是通过群集互连进行路由的,而且在网络出现故障时可对其透明地进行重新路由。

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

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

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

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

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

注意:在群集互连上接受连接并为安全起见验证 IP 地址的应用程序必须检查从 gethostbyname 中返回的所有 IP 地址,而不应只检查第一个 IP 地址。

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