Sun Cluster 3.0 发行说明

使用群集互连进行应用程序通信

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

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

要使用群集互连来在节点间进行通信,应用程序必须使用安装群集时配置的专用主机名。例 如,如果节点 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 地址在所有点上的应用程序中保持一 致,请配置应用程序,使单节点地址同时绑定到客户端和服务器端,从而使所有的连接看起来是通过 单节点地址出入。