Identity Manager 在设计上能够利用可用的 HA 基础结构。例如,Identity Manager 不需要通过应用服务器群集来实现高可用性,但是它可以利用现有的群集。
下图显示了在非冗余体系结构中部署的主要 Identity Manager 组件。随后的几节将描述如何使 Identity Manager 系统信息库、应用服务器和网关具有高可用性。
有关为了尽可能减少因延迟和网络拥塞所造成的性能问题,而应当使哪些组件相邻放置的信息,请参见了解系统分隔和物理接近性准则。
Identity Manager 将其所有的置备和状态信息都存储在 Identity Manager 系统信息库中。
用来存储 Identity Manager 系统信息库的数据库实例的可用性是实现高可用性 Identity Manager 部署的最关键部分。系统信息库代表整个 Identity Manager 安装,其中的数据必须与其他重要数据库应用程序一起进行保护。至少,必须定期执行备份。
不要将 Identity Manager 系统信息库放在虚拟平台(如 VMware 虚拟机)上,因为性能(每秒的事务数)将会受到显著影响。
系统信息库只能有一个映像。对于 Identity Manager 不可能有两个不同的数据库,而且不要尝试在夜间同步它们。Sun 建议使用数据库的群集或镜像功能来提供容错。
Identity Manager 可以在一个应用服务器群集内运行,而且可以利用群集所提供的附加可用性和负载平衡。但是,Identity Manager 不使用任何需要群集的 J2EE 功能。
Identity Manager 使用可通过 Servlet API 访问的 HTTP Session 对象。此会话对象在用户登录和执行操作时跟踪用户的访问情况。在群集内,可以选择在给定会话期间让多个节点处理用户请求。但通常不建议这样做,因为多数安装都配置为将用户针对给定会话的整个请求发送到同一台服务器。
可以为运行 Identity Manager 的应用服务器额外增加可用性和容量,即使您未设置群集也是如此。可通过以下方法来增加可用性和容量:安装多台带有 Identity Manager 的应用服务器,将这些服务器连接到同一个系统信息库,并在所有的应用服务器前面放置一个具有会话关联的负载平衡器。
有关会话关联的详细信息,请参见与会话关联和会话持久性有关的常见问题解答。
Identity Manager 在后台运行某些任务(例如,预定的协调任务)。这些任务存储在数据库中,而且可以由任何 Identity Manager 服务器选取运行。Identity Manager 使用数据库来确保这些任务始终完成运行,即使数据库必须故障切换到另一个节点也是如此。
Waveset.properties 文件中的 sources.hosts 设置控制多实例环境中的哪些主机可用于执行 Active Sync 请求。此设置提供有关可在其上运行源适配器的主机的列表。将该设置配置为 localhost 或 null 将允许源适配器在 Web 群中的任何主机上执行。(这是默认行为。)通过列出一个或多个主机,可以只允许该列表中的主机执行。如果存在来自另一个系统且进入某个主机的入站更新,请使用 sources.hosts 设置记录主机名。
另外,可以定义一个名为 sources. resourceName.hosts 的属性来控制将在何处运行资源的 Active Sync 任务。将 resourceName 替换为要指定的资源对象的名称。
Identity Manager 要求用轻量网关来管理不能直接从服务器访问的资源。这些资源包括需要执行特定于平台的客户端 API 调用的系统。例如,如果 Identity Manager 在基于 UNIX 的应用服务器上运行,则不可能对所管理的 NT 或 Active Directory 域进行 NTLM 或 ADSI 调用。由于 Identity Manager 需要用网关来管理这些资源,因此一定要确保使 Identity Manager Gateway 具有高可用性。
为了防止 Gateway 成为单个故障点,Sun 建议在多台计算机上运行 Gateway 实例。网络路由设备应当配置为在主 Gateway 实例终止时提供故障转移。应当针对粘性会话设置故障转移设备,并让故障转移设备使用一个简单的循环方案。请不要将 Gateway 放在负载平衡设备后面!因为该配置不受支持,而且将导致某些 Identity Manager 功能失败。
由 网关 管理的所有 Windows 域必须属于同一个林。不支持跨林边界管理域。如果您有多个林,请在每个林中至少安装一个 网关。
Win32 监视工具可以配置为在 Win32 主机上监视 gateway.exe 进程。如果 gateway.exe 失败,该进程会自动重新启动。