区域
如果部署横跨分布广泛且通过 WAN 进行连接的位置,则会面临网络延迟和可靠性带来的挑战。可以通过两种方案来缓解这些挑战:
-
部署多个站点,每个站点都有自己的 SQL Server 站点数据库。
建议对大型企业部署使用此方案。分别管理多个站点,每个站点需要有各自的 SQL Server 站点数据库。每个站点是一个独立的 Citrix Virtual Apps 部署。
-
在单个站点内配置多个区域。
配置区域可帮助远程地理区域的用户连接到资源,而不需要强制其连接遍历大部分 WAN。使用区域可实现从单个 Citrix Studio 控制台、Citrix Director 和站点数据库有效地管理站点。这样可以节约部署、配备人员、许可和操作包含远程位置中的多个数据库的更多站点的成本。
区域在各种大小的部署中会非常有用。可以使用区域来保持应用程序和桌面对最终用户触手可用,从而提高性能。一个区域可以包含一个或多个安装在本地的 Controller 以实现冗余并具有恢复能力,但并非必须安装一个或多个 Controller。
站点中配置的 Controller 数会影响某些操作(例如,向站点自身添加新 Controller)的性能。为了避免此问题,建议将您的 Citrix Virtual Apps 或 Citrix Virtual Desktops 站点中的区域数限制在 50 以内。
区域的网络延迟超过 250 毫秒 RTT 时,我们建议您部署多个站点来代替区域。
在本文中,术语“本地”是指正在讨论的区域。例如,“VDA 注册到本地 Controller 中”是指 VDA 注册到 VDA 所在的区域中的 Controller。
本版本中的区域非常相似,但与 XenApp 6.5 及更早版本中的区域不同。例如,在此区域的实现中,不包含数据收集器。站点中的所有 Controller 都与主要区域中的一个站点数据库进行通信。此外,在本版本中,故障转移和首选区域的工作方式不同。
区域类型
一个站点始终有一个主要区域。一个站点也可以有一个或多个卫星区域。可以为灾难恢复、地理位置相隔很远的数据中心、分支机构、云或云中的可用区域使用卫星区域。
主要区域:
主区域的默认名称为“Primary”。此区域中包含 SQL Server 站点数据库(和高可用性 SQL Server,如果使用)、Studio、Director、Citrix StoreFront、Citrix 许可证服务器和 Citrix Gateway。始终将站点数据库保留在主要区域中。
主区域应至少具有两个 Controller 以实现冗余。主要区域可以具有与数据库和基础结构紧密配对的应用程序的 VDA。
卫星区域:
一个卫星区域包含一个或多个 VDA、Controller、StoreFront 服务器和 Citrix Gateway 服务器。在正常情况下,卫星区域中的 Controller 直接与主要区域中的数据库进行通信。
卫星区域(特别是大型卫星区域)可能还包含虚拟机管理程序,用于预配和存储该区域的计算机。配置卫星区域时,可以将虚拟机管理程序或其他服务连接与其关联。(请确保使用该连接的所有目录都位于相同的区域。)
站点可以包含不同配置的卫星区域,具体取决于您的独特需求和环境。下图显示了一个主要区域以及卫星区域的示例。
在该图中:
-
主要区域: 包含两个 Controller、Studio、Director、StoreFront、许可证服务器和站点数据库(以及高可用性 SQL Server 部署)。主要区域还包含多个 VDA 和一个 Citrix Gateway。
-
卫星区域 1:包含 Controller 的 VDA: 卫星区域 1 包含一个 Controller、多个 VDA 和一个 StoreFront 服务器。此卫星区域中的 VDA 注册到本地 Controller 中。本地 Controller 与主要区域中的站点数据库和许可证服务器进行通信。
如果 WAN 出现故障,本地主机缓存功能将允许该卫星区域中的 Controller 继续中转与该区域中的 VDA 的连接。如果办公室里的工作人员使用本地 StoreFront 站点和本地 Controller 访问其本地资源,则此类部署会非常有效。
-
卫星区域 2:包含冗余 Controller 的 VDA: 卫星区域 2 包含两个 Controller、多个 VDA 和一个 StoreFront 服务器。这是复原能力最强的区域类型,能够在 WAN 和其中一个本地 Controller 同时出现故障时提供保护。
VDA 注册的位置以及 Controller 故障转移的位置
在包含主要区域和卫星区域的站点中,VDA 的最低版本为 7.7:
- 主要区域中的 VDA 注册到主要区域中的 Controller。主要区域中的 VDA 永不尝试注册到卫星站点中的 Controller。
- 卫星区域中的 VDA 注册到本地 Controller 中(如有可能)。(这称为首选 Controller)。如果本地 Controller 都不可用(例如,由于本地 Controller 无法接受更多 VDA 注册,或者本地 Controller 出现故障),VDA 将尝试向主要区域中的 Controller 注册。在这种情况下,VDA 保持注册到主要区域中,即使卫星区域中的 Controller 再次可用也是如此。一个卫星区域中的 VDA 永不尝试注册到另一个卫星站点中的 Controller。
- 如果为 Controller 的 VDA 发现启用了自动更新,并且在 VDA 安装期间指定了一个 Controller 地址列表,则会从该列表中随机选择一个 Controller 以完成初始注册(无论 Controller 驻留在哪个区域)。重新启动包含该 VDA 的计算机后,该 VDA 将启动,以便首先选择注册到其本地区域中的 Controller。
- 如果卫星区域中的 Controller 出现故障,则会故障转移到另一个本地 Controller(如有可能)。如果所有本地 Controller 都不可用,则会故障转移到主要区域中的 Controller。
- 如果您将 Controller 移入或移出某个区域,并且启用了自动更新,则这两个区域中的 VDA 会收到更新后的列表,指出哪些属于本地 Controller,哪些位于主要区域中,这样可以确定其能够注册到哪个 Controller 以及接受来自哪个 Controller 的连接。
- 如果将某个目录移动到另一个区域,该目录中的 VDA 将重新注册到移动了该目录的区域中的 Controller。(将某个目录移动到另一个区域时,请确保此区域以及包含关联主机连接的区域的连接状况良好。如果带宽有限或者存在高延迟现象,请将主机连接移动到包含关联计算机目录的相同区域。)
如果主要区域中的所有 Controller 都出现故障:
- Studio 无法连接到站点。
- 无法与主要区域中的 VDA 建立连接。
- 站点性能将下降,直至主要区域中的 Controller 可用。
对于包含版本 7.7 之前的 VDA 的站点:
- 卫星区域中的 VDA 接受来自其本地区域和主要区域中的 Controller 的请求。(最低版本为 7.7 的 VDA 可以接受来自其他卫星区域的 Controller 请求。)
- 卫星区域中的 VDA 随机注册到主要区域或本地区域中的 Controller。(最低版本为 7.7 的 VDA 首先选择本地区域。)
区域首选项
要使用区域首选项功能,您必须至少使用 StoreFront 3.7 和 Citrix Gateway 11.0-65.x。
在多个区域的站点中,区域首选项功能为管理员提供更多的灵活性来控制哪些 VDA 可用于启动一款应用程序或桌面。
区域首选项的工作方式
有三种形式的区域首选项。您可能更喜欢使用特定区域中的 VDA,基于:
- 应用程序数据的存储位置。这称为应用程序的主区域。
- 用户的主区域数据的位置,例如配置文件或主区域共享。这称为用户的主区域。
- 用户的当前位置(Citrix Workspace 应用程序正在运行的位置)。这称为用户位置。
下图显示了多区域配置示例。
在此示例中,VDA 分布在三个卫星区域中,但都处在同一个交付组中。因此,Broker 可以选择针对用户启动请求使用哪个 VDA。此示例指示用户可以运行其 Citrix Workspace 应用程序端点的几个位置:
- 用户 A 使用卫星区域 1 中安装了 Citrix Workspace 应用程序的设备。
- 用户 B 使用卫星区域 2 中的设备。
-
用户的文档可以存储在不同的位置。
- 用户 A 和 B 使用卫星区域 1 中的共享。
- 用户 C 使用来自卫星区域 C 的共享。
- 其中一个已发布的应用程序使用位于卫星区域 1 中的数据库。
您可以通过为用户或应用程序配置一个主区域的方法将其与某个区域关联。然后,Delivery Controller 中的 Broker 会使用这些关联来帮助选择将会在其中启动会话的区域(如果资源可用)。您可以:
- 通过向某个区域添加用户的方法来为用户配置主区域。
- 通过编辑应用程序属性来为某个应用程序配置主区域。
一名用户或一个应用程序一次只能有一个主区域。(在由于用户组成员身份而出现多个区域成员身份时,可能会出现用户的例外;请参阅“其他注意事项”部分。但是,即使在这种情况下,Broker 只能使用一个主区域。)
尽管可以配置用户和应用程序的区域首选项,Broker 一次启动只能选择一个首选的区域。选择首选区域的默认优先次序为应用程序主区域 > 用户主区域 > 用户位置。您可以限制顺序;请参阅定制区域首选项。用户启动应用程序时:
- 如果该应用程序具有一个已配置的区域关联(一个应用程序主区域),那么首选的区域就是该应用程序的主区域。
- 如果该应用程序不具有配置的区域关联,但用户具有配置的区域关联(用户主区域),则首选的区域为该用户的主区域。
- 如果应用程序和用户都没有配置的区域关联,则首选区域为用户正运行 Citrix Workspace 应用程序实例的区域(用户位置)。如果该区域未定义,则使用随机的 VDA 和区域选择。负载平衡适用于首先区域中的所有 VDA。如果没有首选区域,负载平衡适用于交付组中所有 VDA。
定制区域首选项
配置(或删除)某个用户或应用程序的主区域时,也可以进一步限制如何使用区域偏好。
- 强制用户主区域使用: 在交付组中,可以指定会话在用户的主区域(如果已配置)中启动,如果主区域没有可用资源,则不会故障转移到另一区域。在您必须避免在多个区域间复制大型配置文件或数据文件而带来的风险时,这一限制会很有用。换而言之,您宁可拒绝一次会话启动,也不愿在不同的区域中启动会话。
- 强制应用程序主区域使用:同样,配置某个应用程序的主区域时,可以指示仅在该区域启动应用程序,且在应用程序的主区域中资源不可用时不会故障转移到另一个区域。
- 无应用程序主区域,且忽略配置的用户主区域:如果不指定某个应用程序的主区域,还可以指示在启动该应用程序时不考虑配置的任何用户区域。例如,您可能希望用户使用用户位置区域首选项在设备附近的 VDA 上运行应用程序,即使某些用户可能具有不同的主区域亦如此。
首选区域如何影响会话使用
用户启动一个应用程序或桌面时,Broker 希望使用首选的区域,而不是使用现有的会话。
如果启动应用程序或桌面的用户已经具有一个适合被启动资源的会话(例如,可以使用某个应用程序的会话共享,或一个已经在运行被启动资源的会话),但该会话正在不同于该用户/应用程序首选区域的区域中的 VDA 上运行,那么系统可能会创建新的会话。这满足了在正确的区域中启动的需求(如果具有可用的容量),而无需重新连接到该用户会话要求的较不理想区域中的会话。
要防止出现无法访问的孤立会话,允许对现有的断开连接的会话进行重新连接,即便它们处在非首选的区域中也是如此。
可满足一次启动的会话的理想顺序为:
- 重新连接到首选区域中的现有会话。
- 重新连接到不同于首选区域的区域中已断开连接的现有会话。
- 在首选区域中启动新的会话。
- 重新连接到不同于首选区域的区域中的现有已连接会话。
- 在不同于首选区域的区域中启用一个新的会话。
其他区域首选项注意事项
- 如果您配置一个用户组(例如安全组)的主区域,该组的用户(通过直接或间接成员身份)关联到指定的区域。但是,用户可以是多个安全组的成员,因此可能具有通过其他组成员关系配置的不同主区域。在这种情况下,可能无法清晰确定该用户的主区域。
如果用户具有一个不通过组成员身份获得的已配置主区域,该区域将用于区域首选项。任何通过组成员身份获得的区域关联将被忽略。
如果该用户具有多个仅通过组成员身份获得的不同区域关联,则 Broker 会在这些区域中进行随机选择。Broker 完成选择之后,该区域将用于后续的会话启动,直到用户的组成员身份变更为止。
- 用户位置区域首选项要求由用来连接设备的 Citrix Gateway 来检测端点设备上的 Citrix Workspace 应用程序。必须对 Citrix Gateway 进行配置,以将 IP 地址范围与特定区域关联,同时必须通过 StoreFront 将已发现的区域标识传递到 Controller。
有关区域首选项的详细信息,请参阅 Zone preference internals(区域首选项内部)。
注意事项、要求和最佳做法
-
您可以将以下项目放置在一个区域中:Controller、计算机目录、主机连接、用户和应用程序。如果某个目录使用主机连接,请确保该目录和连接都位于相同的区域中。(但是,如果低延迟、高带宽连接可用,则可以位于不同的区域中。)
-
如果将多个项目放置在一个卫星区域中,会影响站点与这些项目以及与跟它们相关的其他对象的交互方式。
- 将 Controller 放置在一个卫星区域中时,假定这些计算机与同一区域中的虚拟机管理程序和 VDA 的(本地)连接情况良好。那么,在处理这些虚拟机管理程序和 VDA 计算机时,优先使用该卫星区域中的 Controller,而不是主要区域中的 Controller。
- 某个虚拟机管理程序连接放置在一个卫星区域中时,假定通过该虚拟机管理程序连接管理的所有虚拟机管理程序也都位于该卫星区域中。那么,通过该虚拟机管理程序连接进行通信时,优先使用该卫星区域中的 Controller,而不是主要区域中的 Controller。
- 某个计算机目录放置在一个卫星区域中时,假定该目录中的所有 VDA 计算机都位于该卫星区域中。首次注册了各个 VDA 后,并且激活了 Controller 列表自动更新机制后,尝试向站点注册时,优先使用本地 Controller,而不是主要区域中的 Controller。
- Citrix Gateway 实例也可以与区域关联。对于此处所述的其他元素,这是在 StoreFront 最佳 HDX 路由配置中完成的,而不是在站点配置中完成的。某个 Citrix Gateway 与某个区域关联后,使用与该区域中的 VDA 计算机的 HDX 连接时,优先使用该 Citrix Gateway。
-
创建生产站点,然后创建第一个目录和交付组时,所有项目都位于主要区域中;完成该初始设置之后才能创建卫星区域。(如果您创建一个空站点,主要区域最初将仅包含 Controller。您可以在创建目录和交付组之前或之后创建卫星区域。)
-
创建第一个包含一个或多个项目的卫星区域时,站点中的所有其他项目将保留在主要区域中。
-
主要区域的默认名称为“主要”;可以更改该名称。尽管 Studio 显示内容指示哪个区域是主要区域,但是,最佳做法是为主要区域使用易于识别的名称。可以重新分配主要区域(即,将另一个区域设为主要区域),但应始终包含站点数据库和高可用性服务器。
-
始终将站点数据库保留在主要区域中。
-
创建区域后,稍后可以将项目从一个区域移动到另一个区域。这种灵活性允许您将在近距离内处于最佳运行状态的项目分隔开来。例如,将某个目录移动到与创建该目录中的计算机的连接不同的区域会影响性能。在区域之间移动项目之前,请考虑预料之外的潜在影响。请保持目录与其使用的主机连接位于相同的区域中,或者位于连接信号良好的区域中(例如,通过低延迟、高带宽网络建立连接)。
-
要实现最佳性能,请仅在主要区域中安装 Studio 和 Director。如果希望另一个 Studio 实例位于卫星区域中(例如,如果主要区域变得不可用,包含 Controller 的某个卫星区域将用作故障转移区域),请运行 Studio 作为本地发布的应用程序。也可以从卫星区域访问 Director,因为 Director 属于 Web 应用程序。
-
理想情况下,请对从其他区域或外部位置传入到该区域的用户连接使用卫星区域中的 Citrix Gateway,即使您能够对该区域内部的连接使用 Citrix Gateway 也是如此。
-
谨记:要使用区域首选项功能,您必须至少使用 StoreFront 3.7 和 Citrix Gateway 11.0-65.x。
连接质量限制
卫星区域中的 Controller 直接执行与站点数据库的 SQL 交互。这对卫星区域与包含站点数据库的主要区域之间的链接的质量造成了一些限制。具体限制与该卫星区域中部署的 VDA 数和那些 VDA 上的用户会话数相关。因此,与具有大量 VDA 和会话数的卫星区域相比,只有少量 VDA 和会话数的卫星区域在与数据库的连接质量较差时也可以正常运行。
有关详细信息,请参阅延迟和 SQL 阻塞查询改进功能。
延迟对中转性能的影响
尽管区域允许用户使用延迟较高的链接,假定有一个本地 Broker,额外的延迟不可避免地会影响最终用户体验。对于用户执行的大多数操作,他们体验到的慢速是由卫星区域中的 Controller 与站点数据库之间的往返造成的。
对于启动应用程序,会话中转过程识别合适的 VDA 来向其发送会话启动请求时,会发生额外的延迟。
创建和管理区域
完全权限管理员可以执行所有区域创建和管理任务。但是,还可以创建允许您创建、编辑或删除区域的自定义角色。在区域之间移动项目不需要区域相关权限(区域读取权限除外);但是,必须对要移动的区域具有编辑权限。例如,要将目录从一个区域移动到另一个区域,必须对该目录具有编辑权限。有关详细信息,请参阅委派管理。
如果使用 Citrix Provisioning: Citrix Provisioning 控制台不知道区域,因此,Citrix 建议使用 Studio 为卫星区域创建目录。在 Studio 中创建目录,并指定正确的卫星区域。因此,可以使用 Citrix Provisioning 控制台在该目录中预配计算机。(如果使用 Citrix Provisioning 向导创建目录,该目录将放置在主区域中。稍后您将不得不使用 Studio 将其移动到卫星区域。)
创建区域
- 在 Studio 导航窗格中选择配置 > 区域。
- 在“操作”窗格中选择创建区域。
- 输入该区域的名称和说明(可选)。该名称在站点中必须唯一。
- 选择要放置在新区域中的项目。可以过滤或搜索要从中选择项目的列表。也可以创建空区域;不需要选择任何项目。
- 单击 Save(保存)。
作为此方法的备选方法,可以在 Studio 中选择一个或多个项目,然后在“操作”窗格中选择创建区域。
更改区域名称或说明
- 在 Studio 导航窗格中选择配置 > 区域。
- 在中间窗格中选择一个区域,然后在“操作”窗格中选择编辑区域。
- 更改区域名称、说明或两者。如果要更改主要区域的名称,请确保该区域仍可轻松识别为主要区域。
- 单击确定或应用。
将项目从一个区域移动到另一个区域
- 在 Studio 导航窗格中选择配置 > 区域。
- 在中间窗格中选择一个区域,然后选择一个或多个项目。
- 将项目拖动到目标区域,或者在“操作”窗格中选择移动项目,然后指定要将项目移动到的区域。
此时将显示一条列出所选项目的确认消息,并询问您是否确实要移动全部项目。
谨记:如果目录使用连接到虚拟机管理程序或其他服务的主机连接,则该目录和连接位于相同的区域中。否则,性能可能会受到影响。如果移动一个项目,请同时移动另一个。
删除区域
区域必须不包含任何内容才能将其删除。不能删除主要区域。
- 在 Studio 导航窗格中选择配置 > 区域。
- 在中间窗格中选择一个区域。
- 在“操作”窗格中选择删除区域。如果该区域不为空(包含项目),系统会要求您选择要移动这些项目的区域。
- 确认删除。
添加用户的主区域
配置用户的主区域也称为将用户添加到区域。
- 在 Studio 导航窗格中选择配置 > 区域,然后在中间窗格中选择一个区域。
- 在“操作”窗格中选择将用户添加到区域。
- 在将用户添加到区域对话框中,单击添加,然后选择要添加到该区域的用户和用户组。如果您指定已经具有主区域的用户,则会显示一条消息,提供两个选择:是 = 仅添加您指定的没有主区域的用户;否 = 返回用户选择对话框。
- 单击确定。
对于具有已配置主区域的用户,您可能需要仅从他们的主区域启动会话:
- 创建或编辑交付组。
- 在用户页面上,选中如果已配置,则会话必须在用户的主区域中启动复选框。
由该交付组中用户启动的所有会话必须在用户的主区域中从计算机启动。如果交付组中的用户不具有已配置的主区域,此设置无效。
删除用户的主区域
此步骤也称为从区域中删除用户。
- 在 Studio 导航窗格中选择配置 > 区域,然后在中间窗格中选择一个区域。
- 在“操作”窗格中选择从区域中删除用户。
- 在将用户添加到区域对话框中,单击删除,然后选择要从该区域中删除的用户和用户组。此操作仅从该区域中删除用户;这些用户仍保留在他们所属的交付组和应用程序组。
- 系统提示时确认删除。
管理应用程序的主区域
配置应用程序的主区域也称为将应用程序添加到区域。默认情况下,在多区域环境中,应用程序不具有主区域。
应用程序的主区域在该应用程序的属性中指定。可以在将应用程序添加到组时配置应用程序属性,也可以稍后配置。
- 在创建交付组、创建应用程序组或将应用程序添加到现有组时,请在向导的应用程序页面上选择属性。
- 要在添加应用程序后更改应用程序的属性,请在 Studio 导航窗格中选择应用程序。选择一个应用程序,然后在“操作”窗格中选择编辑应用程序属性。
在应用程序的属性/设置的区域页面上:
- 如果您想要该应用程序具有一个主区域:
- 选择使用选定的区域来决定单选按钮,然后选择该区域。
- 如果您希望该应用程序仅从选定的区域(不从任何其他区域)中启动,请选中该区域选择下方的复选框。
- 如果您不希望该应用程序具有一个主区域:
- 选择请勿配置主区域单选按钮。
- 如果您不希望 Broker 在启动该应用程序时考虑任何配置的用户区域,请选中该单选按钮下方的复选框。在这种情况下,既不会使用应用程序也不会使用用户主区域来确定此应用程序的启动位置。
包括指定区域在内的其他操作
创建至少一个卫星区域后,您可以在添加主机连接或创建目录时指定一个区域。
通常情况下,主要区域为默认区域。使用 Machine Creation Services 创建目录时,将自动选择为主机连接配置的区域。
如果站点中不包含任何卫星区域,则会假定主要区域,并且区域选择对话框不显示。