在按照第 1 章,产品概念中的所述估计与性能相关的因素后,请为 Application Server 选择拓扑。拓扑是指计算机、Application Server 实例、HADB 节点以及这三者之间的通信流的排列方式。
共有两种基本的部署拓扑。两种拓扑具有一些通用的构件:群集中的多个 Application Server 实例、一组镜像 HADB 节点以及 HADB 备用节点。两种拓扑都需要一组通用的配置设置才能正常工作。
本章讨论了以下内容:
通用要求(适用于两种拓扑)。
两种拓扑:
本节介绍了两种拓扑的通用要求:
两种拓扑必须满足以下一般要求:
承载 HADB 节点的计算机必须成对存在。也就是说,计算机个数必须为偶数。
每个数据冗余单元 (Data Redundancy Unit, DRU) 必须具有相同数量的计算机。创建 HADB 数据库时,应确保镜像(成对)节点位于与主节点不同的 DRU 上。
承载 HADB 节点的计算机必须运行相同的操作系统。最好使用在配置和性能方面相同或几乎相同的计算机。
要在 HADB 中永久保留 HTTP 和 SFSB 会话信息,Application Server 实例必须位于群集中并满足所有相关要求。有关配置群集的更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的第 6 章 “使用 Application Server 群集”。
承载 Application Server 实例的计算机在配置和性能方面必须尽可能相同。这是因为负载平衡器插件使用循环策略进行负载平衡;如果使用不同类型的计算机来承载实例,则无法以最佳方式在这些计算机之间平衡负载。
最好为每个 DRU 配备单独的不间断电源 (Uninterruptible Power Supply, UPS)。
每个 DRU 包含完整的 HADB 数据副本;如果一个 DRU 变得不可用,另一个 DRU 可以继续处理请求。但是,如果某个 DRU 中的节点及其在另一个 DRU 中的镜像同时出现故障,则会丢失一部分数据。为此,在设置系统时,请务必确保两个 DRU 不会受到单个故障的影响,例如电源故障或磁盘故障。
在设置 HADB 节点和计算机时,请遵循以下准则:
应为每个 DRU 设置一定数量的备用节点,该数量与每台计算机上运行的节点数相同。这是因为,如果该配置中的每台计算机运行 n 个数据节点,当一台计算机出现故障时,这 n 个节点也会随之关闭。
应在所有计算机上运行相同数量的 HADB 节点,以便尽可能均等地平衡负载。
不要在同一台计算机上运行来自不同 DRU 的节点。如果必须在同一台计算机上运行来自不同 DRU 的节点,请确保计算机可以处理任何单点故障(与磁盘、内存、CPU、电源和操作系统崩溃等相关的故障)。
两种拓扑均将 Application Server 实例放在群集中。这些实例将会话信息永久保留到 HADB 中。请将负载平衡器配置为包含群集中所有 Application Server 实例的配置信息。
有关建立群集以及在群集中添加 Application Server 实例的更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的第 6 章 “使用 Application Server 群集”。
在同位拓扑中,Application Server 实例和 HADB 节点位于同一台计算机上(因此称为同位)。这种拓扑需要的计算机数量比分层拓扑少。同位拓扑可以更有效地使用 CPU:Application Server 实例和 HADB 节点位于同一台计算机上,并在它们之间平均分配处理负载。
这种拓扑最少需要两台计算机。要提高吞吐量,请成对添加计算机。
同位拓扑非常适于大型对称多重处理 (Symmetric Multiprocessing, SMP) 计算机,因为您可以充分利用这些计算机的处理能力。
下图展示了一个示例同位拓扑配置。
计算机 SYS0 承载 Application Server 实例 A,计算机 SYS1 承载 Application Server 实例 B,计算机 SYS2 承载 Application Server 实例 C,计算机 SYS3 承载 Application Server 实例 D。
这四个实例组成一个群集,用于将信息永久保留到两个 DRU 上:
DRU0 包含两台计算机,即 SYS0 和 SYS2。HADB 活动节点 0 位于计算机 SYS0 上。HADB 备用节点 2 位于计算机 SYS2 上。
DRU1 包含两台计算机,即 SYS1 和 SYS3。HADB 活动节点 1 位于计算机 SYS1 上。HADB 备用节点 3 位于计算机 SYS3 上。
要获得更好的可伸缩性和更大的吞吐量,请添加更多的计算机以增加 Application Server 实例和 HADB 节点数。例如,您可以添加两台计算机,每台计算机包含一个 Application Server 实例和一个 HADB 节点。请确保成对添加 HADB 节点,并为每个 DRU 分配一个节点。同位拓扑的变化形式对这种配置进行了说明。
在这种变化形式中,在示例配置所述的同位拓扑中添加了计算机 SYS4 和 SYS5。
Application Server 实例的承载方式如下:
计算机 SYS0 承载实例 A
计算机 SYS1 承载实例 B
计算机 SYS2 承载实例 C
计算机 SYS3 承载实例 D
计算机 SYS4 承载实例 E
计算机 SYS5 承载实例 F
这些实例组成一个群集,用于将信息永久保留到两个 DRU 上:
DRU0 包含计算机 SYS0、SYS2 和 SYS4。HADB 活动节点 0 位于计算机 SYS0 上。HADB 活动节点 2 位于计算机 SYS2 上。HADB 备用节点 4 位于计算机 SYS4 上。
DRU1 包含计算机 SYS1、SYS3 和 SYS5。HADB 活动节点 1 位于计算机 SYS1 上。HADB 活动节点 3 位于计算机 SYS3 上。HADB 备用节点 5 位于计算机 SYS5 上。
在这种拓扑中,Application Server 实例和 HADB 节点位于不同的计算机上(因此称为分层)。
这种拓扑需要的硬件比同位拓扑多。如果使用不同类型的计算机,这种拓扑可能会比较适合:您可以分配一组计算机来承载 Application Server 实例,而分配另一组计算机来承载 HADB 节点。例如,可以为 Application Server 实例配备功能较强的计算机,而为 HADB 配备功能次之的计算机。
下图展示了分层拓扑。
在这种拓扑中,计算机 SYS0 承载 Application Server 实例 A,计算机 SYS1 承载 Application Server 实例 B。这两个实例组成一个群集,用于将会话信息永久保留到两个 DRU 上:
DRU0 包含两台计算机,即 SYS2 和 SYS4。HADB 活动节点 0 位于计算机 SYS2 上,HADB 备用节点 2 位于计算机 SYS4 上。
DRU1 包含两台计算机,即 SYS3 和 SYS5。HADB 活动节点 1 位于计算机 SYS3 上,HADB 备用节点 3 位于计算机 SYS5 上。
DRU 上的所有节点位于不同的计算机上,因此,即使一台计算机出现故障,仍可在其他计算机上获得任何 DRU 的完整数据。
分层拓扑的一种变化形式是,在配置中水平添加更多的计算机以增加 Application Server 实例数。例如,通过创建一个新 Application Server 实例,在示例配置中添加另一台计算机。类似地,通过添加更多的计算机来承载 HADB 节点以增加 HADB 节点数。需要重申的是,必须成对添加 HADB 节点,每个 DRU 一个节点。
分层拓扑的变化形式对这种配置进行了说明。
在这种配置中,每台承载 Application Server 实例的计算机包含两个实例。因此,群集中共有六个 Application Server 实例。
HADB 节点位于计算机 SYS3、SYS4、SYS5 和 SYS6 上。
DRU0 包含两台计算机:
SYS3,用于承载 HADB 活动节点 0 和 HADB 活动节点 2。
SYS5,用于承载 HADB 备用节点 4 和 HADB 备用节点 6。
DRU1 包含两台计算机:
SYS4,用于承载 HADB 活动节点 1 和 HADB 活动节点 3。
SYS6,用于承载 HADB 备用节点 5 和 HADB 备用节点 7。
承载 HADB 节点的每台计算机承载两个节点。因此,共有八个 HADB 节点:四个活动节点和四个备用节点。
要确定最符合性能和可用性要求的拓扑(或变化形式),请对拓扑进行测试并试验不同的计算机和 CPU 组合。
确定为满足目标而需要做出的折衷处理。例如,如果维护的简便性对您至关重要,则分层拓扑更适合一些。但不利的一面是,这种拓扑需要的计算机比同位拓扑多。
在选择拓扑时,一个重要因素是可用的计算机类型。如果系统包含大型对称多重处理 (Symmetric Multiprocessing, SMP) 计算机,则同位拓扑更具吸引力,因为您可以充分利用这些计算机的处理能力。如果系统包含不同类型的计算机,则分层拓扑会更有用,因为您可以为 Application Server 层和 HADB 层分配不同的计算机组。例如,您可能希望将功能较强的计算机用于 Application Server 层,而将功能次之的计算机用于 HADB 层。
下表对同位拓扑和分层拓扑进行了比较。左列显示的是拓扑名称,中间列显示的是拓扑优点,右列显示的是拓扑缺点。
表 3–1 拓扑比较
拓扑 |
优点 |
缺点 |
---|---|---|
同位拓扑 |
需要较少的计算机。由于 HADB 节点和 Application Server 实例位于同一层中,因此,您可以在每个备用节点上创建 Application Server 实例以处理额外负载。 提高了 CPU 利用率。在位于同一台计算机上的 Application Server 实例和 HADB 节点之间平均分配处理负载。 对于大型对称多重处理 (Symmetric Multiprocessing, SMP) 计算机非常有用,因为它可充分利用这些计算机的处理能力。 |
增加了维护复杂性。例如,当需要关闭承载 HADB 节点的计算机以执行维护时,该计算机上的应用服务器实例也会变得不可用。 |
分层拓扑 |
易于维护。例如,无需关闭 HADB 节点便可在承载 Application Server 实例的计算机上执行维护。 对于不同类型的计算机非常有用。可以为 Application Server 层和 HADB 层分配不同的计算机组。例如,可以将功能较强的计算机用于 Application Server 层,而将功能次之的计算机用于 HADB 层。 |
需要的计算机比同位拓扑多。由于应用服务器实例和 HADB 节点位于不同的层中,因此,应用服务器实例不能位于承载 HADB 备用节点的计算机上。 降低了 CPU 利用率。应用服务器层和 HADB 层的负载可能不均等。当计算机数较少时(4 到 6 台),此缺点会更加显著。 |