Sun Java Enterprise System 2005Q4 部署规划指南

确定可用性策略

开发可用性要求策略时,应研究组件交互和用量分析,以确定要考虑的可用性解决方案。对组件进行逐个分析,以确定最适合可用性和故障转移要求的解决方案。

下列项目是为帮助确定可用性策略而需收集的信息类型的示例:

所选的可用性策略还必须考虑设计最佳资源使用方案中阐述的可维护性要求。避免需要太多管理和维护的复杂解决方案。

可用性策略

Java Enterprise System 部署的可用性策略包括以下各项:

后续各节给出一些提供不同级别的负载平衡、故障转移和复制服务的可用性解决方案示例。

单服务器系统

将服务的所有计算资源置于单个服务器上。如果服务器发生故障,整个服务便终止运行。

图 5–2 单服务器系统

显示可满足性能要求的安装了 10 个 CPU 的单个服务器。

Sun 提供具有下列优点的高端服务器:

一台高端服务器的价格通常高于具有可比性的多服务器系统。不过,单个服务器可节省对数据中心多台服务器的管理、监视和驻扎成本。多服务器系统在负载平衡、故障转移和解除单个故障点方面的灵活性更强。

水平冗余系统

利用可提供负载平衡和故障转移两种功能的平行冗余服务器提高可用性的方法有若干种。下图显示的是组成一个 N+1 故障转移系统的两台复制服务器。其中一台服务器发生故障时,N+1 系统通过一个额外服务器继续提供 100% 容量。

图 5–3 具有两台服务器的 N+1 故障转移系统

显示用于满足 10 CPU 性能要求的两台复制服务器,每台服务器上安装有 10 个 CPU。

上面水平冗余系统中每台服务器的计算能力都完全相同。一台服务器即可满足性能要求,另一台服务器作为备份服务器调入服务时,也可提供 100% 的性能。

N+1 故障转移设计的优点是,故障转移情况下仍可达到 100% 的性能。缺点是增加了硬件成本,而总体性能却未得到相应提升(因为一个服务器只在发生故障转移的情况下使用,平时备用)。

下图所显示的是这样一种系统:通过在两台服务器间分配性能负载来实现负载平衡和故障转移。

图 5–4 两台服务器间的负载平衡和故障转移

显示用于满足 10 CPU 性能要求的两台服务器,每台服务器上安装有 6 个 CPU。

在上面水平冗余系统中所示的系统内,如果一台服务器发生故障,所有服务仍然可用,只不过性能只能达到完全性能的某一百分比。另一台服务器提供 6 CPU 计算能力,为要求的 10 CPU 的 60%。

这种设计的一个优点是,两台服务器均可用时有 2 个 CPU 的额外潜潜在容量。

下图显示的是,在多台服务器间分配负载来满足性能和负载平衡要求。

图 5–5 在 n 台服务器间分配负载

显示的是用于满足 10 CPU 性能要求的五台服务器,每台服务器上安装有 2 个 CPU。

由于水平冗余系统所示的设计中有五台服务器,如果一台服务器发生故障,其余服务器可继续提供总计 8 个 CPU 的计算能力,达到 10 个 CPU 性能要求的 80%。如果在设计中增加一个具有 2 CPU 计算能力的服务器,实际得到的便是 N+1 设计。如果一台服务器发生故障,其余服务器可满足 100% 的性能要求。

这种设计具有下列优点:

不过,增加服务器数量会使管理和维护成本大幅增加,还应考虑在数据中心驻扎服务器的成本。达到某一数量后,再增加服务器所得到的性能提升会越来越少。

Sun Cluster 软件

对于要求高可用性(如四或五个九)的情况,可以考虑将 Sun Cluster 软件纳入可用性设计。群集系统是冗余服务器、存储器及其他网络资源相结合的产物。群集中的服务器彼此间不间断地通信,如果其中一台服务器脱机,群集中的其余设备会将该服务器隔离,并将故障节点上的任何应用程序或数据故障转移到另一节点。这一故障转移过程所需时间较短,几乎不用中断为系统用户提供的服务。

配置、管理和维护 Sun Cluster 软件需要额外的专用硬件和专门技能。

可用性设计示例

本节包含两个可用性策略示例,基于员工数为 1,000 至 5,000 人的中型企业基于身份的通信解决方案,如先前在基于身份的通信示例一节中所述。第一个可用性策略说明了用于 Messaging Server 的负载平衡。第二个说明了使用 Sun Cluster 软件实现故障转移的解决方案。

Messaging Server 的负载平衡示例

下表中列出了逻辑体系结构中每个逻辑 Messaging Server 组件的 CPU 能力估计。此表重复了在更新 CPU 数量估计一节中计算出的最终估计数量。

表 5–6 支持组件的 CPU 数量估计调整

组件 

CPU 

内存 

Messaging Server(MTA,入站) 

4 GB 

Messaging Server(MTA,出站) 

4 GB 

Messaging Server (MMP) 

4 GB 

Messaging Server (Message Store) 

4 GB 

对于本例,假设在技术要求阶段指定了下列服务质量要求:

为满足可用性要求,应为每个 Messaging Server 组件提供两个实例,每一个都位于不同的硬件服务器上。如果一个组件的服务器发生故障,另一个组件可提供服务。下图显示了此可用性策略的网络示意图。

显示 Messaging Server MMP 和 MTA 组件的可用性的体系结构示意图。

上图中,CPU 数量为原估计数量的两倍。CPU 数量加倍的原因如下:

使用 Sun Cluster 软件的故障转移示例

下图显示了一个对 Calendar Server 后端和 Messaging Server 消息存储实施故障转移策略的示例。Calendar Server 后端和消息存储都在单独的硬件服务器上复制,并且使用 Sun Cluster 软件配置了故障转移。Sun Cluster 中每台服务器上的 CPU 数量和相应内存都被复制。

图 5–6 使用 Sun Cluster 软件的故障转移设计

体系结构示意图,显示了为实现故障转移而使用 Sun Cluster 软件部署的 Calendar Server 和 Message Server 存储。

目录服务复制示例

可对目录服务进行复制,以便在不同服务器间分配事务,从而提供高可用性。Directory Server 提供各种复制服务策略,其中包括:

Directory Server 的可用性策略是个复杂的问题,不在本指南的讨论范围之内。以下两节,单主复制多主复制提供了对基本复制策略的概括说明。有关详细信息,参见《Sun Java System Directory Server 5 2005Q1 Deployment Plannning Guide》的第 12 章 "Designing a Highly Available Deployment"。

单主复制

下图显示了一个说明基本复制概念的单主复制策略。

图 5–7 单主复制示例

显示单主复制策略的数据流的示意图。

在单主复制中,一个 Directory Server 实例管理主目录数据库,并记录所有变化。主数据库被复制为任意数量的使用者数据库。Directory Server 的使用者实例按读取和搜索操作进行了优化。使用者接收的任何写操作都被引用回主数据库。主数据库定期更新使用方数据库。

单主复制的优点包括:

多主复制

下图显示了一个可用于全局分配目录访问的多主复制策略。

在多主复制中,一个或多个 Directory Server 实例管理主目录数据库。每个主数据库都有一个指定同步主数据库的过程的复制协议。每个主数据库都被复制为任意数量的使用者数据库。与单主复制相同,Directory Server 的使用者实例都按读取和搜索访问进行了优化。使用者接收的任何写操作都被引用回主数据库。主数据库定期更新使用方数据库。

图 5–8 多主复制示例

显示多主复制策略的数据流的示意图。

多主复制策略除具有单主复制的所有优点之外,还提供了一个在更新主数据库时提供负载平衡的可用性策略。还可以实现一个对目录操作提供本地控制的可用性策略,这对于在全球分布数据中心的企业是一个很重要的考虑事项。