本文档页面介绍了 Horizon Cloud on Microsoft Azure 部署的高可用性特性。
从 v2204 服务版本开始,新部署默认已配置高可用性 (HA)。
如果您的容器在 v2204 版本之前已存在,并且当前未在该容器上启用高可用性,则可以使用在 Microsoft Azure 中的 Horizon Cloud 容器上启用高可用性中的步骤启用高可用性。容器的详细信息页面会报告是否在容器上启用了高可用性。
简介
Horizon Cloud on Microsoft Azure 部署的高可用性特性旨在使部署的标准操作能够在以下场景中继续运行:
- 如果一个容器管理器虚拟机发生故障或遇到问题,则发送到该容器管理器的流量将自动路由到另一个容器管理器虚拟机,而无需任何手动干预。
- 在网关配置中,如果一个 Unified Access Gateway 虚拟机出现故障或出现问题,则发送到该 Unified Access Gateway 虚拟机的流量将路由到另一个 Unified Access Gateway 虚拟机,而无需任何手动干预。
设计元素
Horizon Cloud on Microsoft Azure 部署的 HA 设计使用以下元素。
这些元素可以弹性,如果其中一个配对的虚拟机出现问题或发生故障,则会进行故障切换。
- 配对的虚拟机
- 每个虚拟机对的 Microsoft Azure 可用性集
- 连接每个虚拟机对中虚拟机的 Microsoft Azure 负载均衡器
- Azure Database for PostgreSQL Microsoft 受管服务
继续阅读本文档页面中的以下部分可了解有关如何在部署中使用每个设计元素的详细信息。
配对的虚拟机
默认情况下,Horizon Cloud on Microsoft Azure 部署程序会部署以下内容:
- 每个 Horizon Cloud on Microsoft Azure 部署的两个容器管理器虚拟机
- 每个部署的网关配置的两个 Unified Access Gateway 虚拟机。
每个虚拟机对的 Microsoft Azure 可用性集
每个虚拟机对与一个 Microsoft Azure 可用性集相关联,即每个虚拟机对一个可用性集。
通过使用可用性集,虚拟机对中的每个虚拟机将部署在同一 Microsoft Azure 数据中心内的单独物理硬件上。
根据 Microsoft Azure 可用性集的设计,可用性集会强制将配对的虚拟机驻留在该 Microsoft Azure 数据中心的单独物理硬件上。
通过这种后端硬件隔离方式,可以最大程度地降低虚拟机同时出现停机的可能性。仅当整个 Microsoft Azure 数据中心出现故障时,才会同时影响虚拟机对中的两个虚拟机。
连接每个配对虚拟机的 Microsoft Azure 负载均衡器
如配对的虚拟机一节中所述,Horizon Cloud on Microsoft Azure 部署具有一对容器管理器虚拟机,并且每个部署的网关配置具有一对 Unified Access Gateway 虚拟机。
部署程序会为每对虚拟机部署一个 Microsoft Azure 负载均衡器。
容器管理器虚拟机 - 负载均衡器
部署程序会在容器部署期间部署此 Azure 负载均衡器。此负载均衡器会根据部署程序配置的运行状况探查和规则将流量路由到容器管理器虚拟机。
- 系统会将容器管理器虚拟机添加到此负载均衡器的后端池中。
- 其中一个容器管理器虚拟机担当活动角色,负责促进最终用户客户端连接到容器置备的桌面和应用程序。
- 负载均衡器会根据定义的规则以及后端池中的容器管理器虚拟机运行状况探查来确定哪个容器管理器担当活动角色。
- 根据已确定的结果,负载均衡器将所有连接请求流量无缝路由到担当活动角色的容器管理器虚拟机,直到发生故障切换。
- 然后由另一个容器管理器虚拟机担当活动角色,负责促进客户端连接到桌面和应用程序。此时,负载均衡器将连接请求路由到该虚拟机。
- 如果发生此故障切换,系统会向控制台发送一条通知,告知哪个容器管理器虚拟机将担当活动角色。
容器管理器虚拟机部署的 Azure 负载均衡器连接到虚拟机的网卡,这些网卡具有“新建容器”向导标记为虚拟机子网 - 主的 IP,也称为主租户子网。
容器管理器虚拟机的负载均衡器位于最终用户客户端连接请求与容器管理器虚拟机之间。
为容器配置了网关配置时,来自 Unified Access Gateway 实例的流量会路由到此容器管理器虚拟机的 Microsoft Azure 负载均衡器,然后 Azure 负载均衡器会将该流量路由到活动的容器管理器虚拟机。
如果容器没有进行网关配置,并且您已为该容器配置了直接连接,则最终用户客户端连接将转到容器管理器虚拟机的 Microsoft Azure 负载均衡器,由后者将流量路由到活动的容器管理器虚拟机。
网关配置 - 负载均衡器
部署程序会在部署网关配置期间部署此 Azure 负载均衡器。此负载均衡器会根据部署程序配置的运行状况探查和规则将流量路由到部署的 Unified Access Gateway 虚拟机。
- 系统会将 Unified Access Gateway 虚拟机添加到此负载均衡器的后端池中。
- 每个 Unified Access Gateway 虚拟机在最终用户客户端流量中有一个活动角色。每个 Unified Access Gateway 虚拟机旨在管理容器的并发连接会话,数量上限如 Horizon Cloud Service on Microsoft Azure 服务限制页面中所述。
- 负载均衡器会根据定义的规则和虚拟机的运行状况探查,来确定后端池中的 Unified Access Gateway 虚拟机是否正常并可以接收连接。
- 根据其确定的结果,负载均衡器会将连接请求流量无缝路由到满足运行状况探查要求的虚拟机。
- 如果后端池中的虚拟机出现问题或出现故障,负载均衡器会将任何新的连接请求路由到正常运行的虚拟机。
- 对于到遇到问题或已经发生故障的虚拟机的现有连接,这些连接将会断开。这些用户必须手动重新连接其客户端会话,然后负载均衡器会将这些用户连接到正常运行的 Unified Access Gateway 虚拟机。
- 当不正常的虚拟机恢复正常状态并满足负载均衡器的规则和运行状况探查要求时,负载均衡器将允许向该虚拟机发出新的连接请求。
网关配置的负载均衡器位于最终用户客户端连接请求和配置的 Unified Access Gateway 虚拟机之间。
对于外部网关配置,其部署的 Azure 负载均衡器将连接到虚拟机的网卡,这些网卡具有部署程序向导标记为 DMZ 子网的 IP。使用向导在其自身的 VNet 中部署外部网关配置时,向导会将此子网标记为前端子网。
对于内部网关配置,其部署的 Azure 负载均衡器将连接到虚拟机的网卡,这些网卡具有容器主租户子网(在部署程序向导中标记为虚拟机子网 - 主)上的 IP。
部署的 Azure Database for PostgreSQL Microsoft 受管服务
部署使用 Microsoft Azure Database for PostgreSQL 受管服务及其单服务器部署选项。
使用此 Microsoft 受管服务,可以集中容器操作所需的数据,并且无需在管理器虚拟机中使用数据复制。在当前版本中,部署程序使用以下配置:
- PostgreSQL 版本 11
- 内存优化
- 计算的代:第 5 代
- vCore:2
- 存储:10 GB
- 自动增长:否
- 备份存储:本地冗余
有关其内存优化配置的信息,请参阅以下 Microsoft 文档:
在此版本级别创建的容器或更新到此版本级别的容器在 Microsoft Azure 订阅中对费用产生的影响
使用 Azure Database for PostgreSQL 和运行虚拟机对时,此版本中支持高可用性所需的元素在 Microsoft Azure 订阅中会产生一定的费用影响。截止撰写本文时,使用 Azure 负载均衡器或可用性集无需任何费用。
有关在当前版本中使用的上述 Microsoft Azure Database for PostgreSQL 配置的定价预估值,请参阅https://azure.microsoft.com/en-us/pricing/details/postgresql/server/。
相关资源组
容器管理器的 HA 相关资源与容器管理器虚拟机位于同一资源组中
网关配置的 HA 相关资源与该网关配置的 Unified Access Gateway 虚拟机位于同一网关配置的资源组中。
容器管理器的资源组还反映了部署对 Microsoft Azure Database for PostgreSQL Microsoft 受管服务的使用情况。
登录到 Microsoft Azure 门户并导航到这些资源组时,可以查看订阅中资源的详细信息。
有关标识容器的资源组的信息,请参阅为 Horizon Cloud on Microsoft Azure 部署创建的资源组。
在 Microsoft Azure 中的 Horizon Cloud 容器上启用高可用性
对于未启用高可用性的容器,您可以按照以下步骤启用高可用性。
此页面仅适用于那些具有一个或多个尚未启用高可用性的容器的管理员。
从 v2204 服务版本开始,部署的新 Horizon Cloud on Microsoft Azure 默认已配置高可用性。如果已在容器上配置高可用性,则此页面的步骤不适用。
如果容器的详细信息页面指示未启用高可用性,您可以编辑该容器以启用高可用性。在此过程中,会将第二个容器管理器虚拟机部署到容器的资源组,并在容器的 Microsoft Azure 负载均衡器和可用性集中配置该虚拟机。
执行“编辑容器”工作流步骤并确认更新后,该服务将在容器的 Microsoft Azure 订阅中实例化第二个容器管理器虚拟机,并在该虚拟机与现有 Azure 负载均衡器、Azure PostgreSQL 数据库和其他必要的容器相关任务之间建立适当的连接。整个过程可能需要大约 30 分钟才能完成。
前提条件
在使用 Horizon Universal Console 执行工作流步骤之前,请确认满足这些条件。
- 容器软件必须为清单版本 1600 或更高版本,才能启用高可用性。通过从“容量”页面导航到容器的详细信息页面,可以查看容器的清单版本。
- 确保您的订阅具有足够的配额和核心来容纳所创建的额外容器管理器虚拟机。
- 如果容器是从低于 1600 的清单版本更新的,则在对其启用高可用性之前,必须确保满足以下条件:
- 在该容器上完成了容器更新过程
- 在容器的所有映像虚拟机、场 RDSH 虚拟机和桌面分配虚拟机上,将代理更新到与更新的容器上运行的清单兼容的代理版本级别。有关容器更新与代理更新的关系的信息,请参阅Horizon Cloud 容器更新 - 实现持续代理兼容性和支持的步骤。
过程
- 从“容量”页面导航到容器的详细信息页面。
- 单击编辑。
- 在“高可用性”部分中,开启已启用选项开关。
- 单击保存并退出。
- 确认该更新操作。
结果
在容器的详细信息页面上,集群状态显示挂起状态。在完成配置活动后,集群状态显示就绪状态。整个过程需要大约 30 分钟才能完成。