高可用性是一种用于确保系统正常运行时间、最小化或防止计算机故障情况下的数据丢失的技术。 与其他 ArcGIS Enterprise 组件类似,可以通过第三方网络负载均衡器将 ArcGIS Server 部署于具有高可用性的配置中。
该配置是单机高可用性(主动 - 被动)部署的一个变化,其中负载均衡器配置为随时在所有站点中分布负载。 该配置中不存在备用站点。
在该架构中,将在第三方负载均衡器后台配置两个或多个 ArcGIS Server 站点以提高 ArcGIS Server 部署的容量。 可使用该技术来适应单机部署和使用反向代理服务器的单机部署部署方案中所述的一些高可用性限制,或通过添加更多机器进行扩展。
虽然可通过使用多机站点来扩展和实现高可用性,但主动 - 主动部署仍具有其优势和限制,这将在下文中进行讨论。
主动 - 主动架构将克隆单机站点,并将其独立的实例放置在负载均衡器之后。 从技术角度讲,该配置不能被描述为多机站点,因为所有站点都是彼此独立的,其中每个站点都包含单个 ArcGIS Server 计算机,并具有其自己的本地配置存储和服务器目录。
多机 ArcGIS Server 站点部署极大地简化了服务器管理。 但是,主动 - 主动架构可用于服务的数量和设置以定义完成并保持静态的场景。 在这些情况下,该配置可提供相对于多机站点的出众的性能优势,特别是针对缓存的地图服务。
该架构使得替换过时或出错计算机、应用升级或根据需要从站点添加和移除计算机(在不中断服务或中止请求的情况下)变得十分简单。 但是,如果使用主动 - 主动架构,您需要使所有站点保持同步。 这将增加管理开销,使得该部署模式不适用于具有许多更改频繁的计算机或服务或缓存的情况。 您或者您的 IT 员工必须对第三方负载均衡器具有较深的了解。
ArcGIS Server 计算机、服务器目录和配置存储
每个 ArcGIS Server 计算机都必须拥有其自己的本地配置存储和缓存、作业以及系统目录。 这样可以确保最大性能并最小化相关性。 相反,必须在各个站点之间共享输出目录。 有关更多信息,请参阅以下其他注意事项。
数据
如果在 GIS 服务中使用基于文件的数据源,则建议将这些数据源存储在每个本地 ArcGIS Server 计算机上(而并非存储在网络共享上)以实现服务性能的最大化。 在某些情况下,例如在处理大量影像时,在网络上共享文件可能是唯一可行的选择。 如果在网络上使用共享资源中的文件,则选择高可用性配置的存储设备十分重要。
如果使用数据库,则可以为每个站点指定一个数据库:为主站点指定一个数据库,并为备用站点指定一个单独的数据库。 为使数据库保持同步,可利用数据库复制,或根据需要利用地理数据库复制技术。 或者,可利用数据库提供程序中的其他高可用性技术。
反向代理服务器
在此配置中,需要第三方负载均衡器。 该组件将至少在所有站点中分配负载。 负载均衡器具有用于分配负载的不同配置,例如轮询和最少连接。 选择正确的负载分配取决于您在 ArcGIS Server 站点上运行的 web 服务及其使用模式。
通常,负载均衡器还通常使用多个选项处理故障。 例如,您可以将规则应用于负载均衡器,以阻止其将请求转发至因硬件或网络故障或特殊 ArcGIS Server 服务不可用而无法使用的计算机。 如果按照该模式使用单机站点,则会保证发送至特殊计算机的请求将由该计算机进行管理。
仅当想要使用 web 层身份验证时才需要使用 ArcGIS Web Adaptor,通常情况下可选择使用。 您可以选择在 ArcGIS Server 所在的计算机上对其进行配置,或在指定计算机上进行配置。 无论在哪种情况下,如果使用 ArcGIS Web Adaptor,则必须在主动 - 主动配置下为每个站点配置一个单独的 ArcGIS Web Adaptor。
通常,负载均衡器本身还承担反向代理服务器的角色。 在某些情况下,您可能已独立于负载均衡器配置了反向代理服务器。
如果您的网络负载均衡器支持健康检查功能,您可以使用 ArcGIS Server 健康检查端点来确定站点是否可以接收请求。 这有助于快速确定站点中是否存在软件或硬件故障。 有关详细信息,请参阅 ArcGIS REST API 中的健康检查。
主动 - 主动配置的注意事项
使用具有高可用性的主动 - 主动配置规划 ArcGIS Server 站点时,需要考虑以下注意事项。
同步服务
与真实的多机站点不同,该配置要求负载均衡器的所有后台站点均托管完全相同的内容并遵循相同的安全性模型。 您负责确保所有站点对于负载均衡器都是完全相同的。
有几种技术可帮助您使主站点和故障站点中的 ArcGIS Server 服务保持同步:
- 脚本 - ArcGIS Server 包括可用于脚本管理任务(例如发布服务和更改安全性设置)的 REST API。 可创建自己的脚本以对部署中包含的所有 ArcGIS Server 计算机进行统一更改。 如果需要进行微调,例如更改服务的安全性或对其进行覆盖,则脚本编写将尤为有用。
注:
每个站点都可以通过脚本来创建。 创建所有站点后,从其中一个站点创建备份,并恢复备份到其他各个站点。 这样可以确保所有计算机均使用相同的加密密钥。
- 虚拟化 - 创建虚拟机模板并用其启动新的站点。 如上所述,这可确保所有计算机均使用相同的加密密钥。 此外,每个模版都将具有 GIS 服务及所有已发布和配置的服务所需数据的副本(除非使用数据库)。 如果需要进行更改,例如添加或更新现有服务,则可创建模板以启动后续虚拟计算机,该计算机将替换负载均衡器中使用的现有 ArcGIS Server 计算机池。 您还可以使用虚拟机模板来恢复过时的 ArcGIS Server 计算机。
要在此部署模式中将更改应用于站点,建议使用以下过程:
- 对首先进入备用模式的站点进行管理更改。 例如,添加新服务并更改站点中没有积极处理请求的其他服务的安全性。 这将确保使用主站点不会对应用程序产生任何影响。
- 手动配置负载均衡器以将所有请求移交至已进行更改的备用站点。
- 对空闲站点应用相同的更改。
- 恢复负载均衡器,这样请求将返回初始的主站点,并使备用站点一直处于备用模式。
可通过 ArcGIS Server Manager、脚本或虚拟影像手动应用上述过程中的站点更改。
输出目录共享
某些 ArcGIS Server 服务操作会引用一个或多个输出目录中的资源。 例如,地图服务可能会将影像写入到输出目录,并在请求响应中通过 URL 引用这些影像。 为使客户端成功获取影像,使用主动-主动配置的所有站点所引用的输出目录必须相同。 通过将输出目录放置在网络资源上并将其与您的站点共享,可实现这一点。
以下列出了将使用输出目录的服务操作:
异步执行地理处理服务
ArcGIS Server 地理处理服务支持两种执行模式:同步和异步。 同步执行遵循无状态请求-响应的模式,且完全受主动-主动配置的支持。 异步执行遵循有状态的请求-响应模式,且为默认模式。 要在主动-主动配置下使用异步执行,需考虑以下内容:
- 提交异步地理处理作业时,将返回给您一个作业 ID,指出所提交的作业及其输出。 只有收到原始请求的 ArcGIS Server 站点才能识别此 ID。 因此,如果想要使用异步执行,主动-主动配置需要您定义负载均衡器的密切度(也称为粘滞会话)。 这将会为异步地理处理和地图服务输出提供高可用性。 要了解启用粘滞会话的含义,请联络您的负载均衡器供应商。
- 如果您的地理处理服务未使用地图服务来渲染输出,并且尚未定义类型“文件”的输出,则可为您的地理处理服务选择同步执行。 无需在负载均衡器中使用粘滞会话。
使用基于令牌的安全性
如果使用基于令牌的身份验证(也称为服务器层身份验证),则该配置中的所有站点使用完全相同的共享令牌密钥十分重要。 否则,针对一个计算机生成的令牌在用于其他计算机时将无效。 要在多个站点之间复制共享令牌密钥,您可以在管理器中编辑令牌设置。
升级方法
为了确保停机时间最短,您可以按顺序升级您的 ArcGIS Server 站点。 在升级站点时,您可以配置负载均衡器以防止其将请求转发到不可用的站点,并在主动 - 主动架构中的其他独立站点之间分配负载。
另一种方法是并行升级所有 ArcGIS Server 站点,如果您的组织可以容许存在一定程度的停机时间和数据丢失,则这种方法将十分实用。 由于主动 - 主动架构中的所有站点彼此独立,您可以同时对其进行升级,且不会出现相关性问题。