你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
有效的应用程序交付有助于确保可靠、经济高效且高性能的远程桌面和应用程序。 本文提供了优化主机池和会话主机的指南。 这些建议与 Azure Well-Architected Framework 支柱保持一致。
主机池设置
创建主机池时,有各种配置设置直接影响环境的性能和效率。
主机池类型
可以在 Azure 虚拟桌面中创建两种类型的主机池:
个人主机池 将用户分配到特定虚拟机(VM)。 用户每次都连接到同一 VM。 用户配置文件数据存储在 VM 的作系统磁盘上。 此设置会随时间推移维护用户的应用程序状态。 发生灾难时,个人主机池需要可靠的备份。
共用主机池会将多个用户分配给池内的各个 VM。 用户可能会每次连接到不同的会话主机。 FSLogix 是存储用户配置文件数据所必需的。 此设置提供公共远程体验,并因连接暂时性而提高效率。 共用主机池也可以更便宜。
若要选择主机池类型,请参阅 主机池。
一般情况下,了解用例之间的共同点,并标准化主机池以简化环境。 此方法能够实现操作的简化,并更轻松地满足可靠性和性能的预期。
建议
| 建议 | 益处 |
|---|---|
| 了解主机池及其支持的工作负荷的关键性。 确保合并的服务级别协议(SLA)满足工作负荷的要求。 定义每个工作负荷 RPO 和 RTO。 评估跨个人和共用主机池使用 Active-Active 与 Active-Passive 体系结构的好处和影响。 | 调用适当的 BCDR 策略将确保满足或超过业务领导者的期望和最终用户需求。 |
| 如果您无法容忍区域故障,请选择阶段 3 的多区域部署。 了解元数据如何在 AVD 对象和资源之间复制。 |
保持工作负荷的业务连续性,即使在区域性服务中断期间,用户也能正常运行。 |
| 使用 Azure Monitor 代理将虚拟机加入 AVD Insights,以监视 VM 的运行状况。 | 对 VM 状态的可观测性对于正常运行和稳定性至关重要。 |
| 使用来自 Azure 市场的受信任映像,并且仅从受信任的源安装软件。 定期更新基础映像和软件。 对于共用主机池,请确保更新所有会话主机并避免配置偏移。 |
提高安全态势,并减少可能危及工作负荷的漏洞的攻击面。 无论用户被分配的会话主机如何,确保一致可靠的用户体验。 |
| 为敏感工作负荷应用适当的分段,例如隔离高敏感度工作负荷,并在机密计算系列 VM 上运行它们。 | 基于硬件的 TEE 强化了来宾 OS 内存和状态,从而提高安全态势。 |
| 了解主机池中的会话主机和用户的成本结构,并运行成本建模以创建更优化的环境。 使用 Azure 定价计算器 获取解决方案的估算值。 在 Azure 中创建预算,确保部署符合成本估算。 | 建立预算有助于消除 AVD 成本上的任何意外情况,特别是在考虑到未来增长和虚拟机运行时间超过预期小时数时。 |
| 评估与基于云的桌面解决方案(如 Windows 365)相关的成本。 | 基于云的桌面解决方案可能更适合个人桌面需求,因为它们的管理开销较低,每月成本固定,而不是基于消耗的 Azure 虚拟桌面模型。 |
| 评估哪些应用程序或用户可以在多会话主机上运行。 请根据这一考虑来创建您的用例。 可以使用 FSLogix 限制应用程序访问,以便不同的用户获取与同一主机池上的其他人不同的应用。 |
多会话主机池通常为每个用户提供比个人桌面配置更低的成本。 |
| 使用 Azure Policy 促进跨 Azure 虚拟桌面环境的一致性,例如 VM 配置、启用 AVD Insights、标记等。 | 这提高了资源部署的一致性,避免了代价高昂的重新部署以及对安全架构的风险。 |
| 使用基础结构即代码 (IaC) 进行部署。 使用 Azure VM 映像生成器和 虚拟桌面加速器等资源。 | 这些方法有助于跨多个主机池实现标准化,从而促进可重复性。 它们还减少了工程和运营开销。 |
| 使用验证主机池来测试传入的 AVD 更新。 确保有多个用户经常使用环境来确保彻底测试。 | 确保所有进入 AVD 的功能都经过测试和验证。 运维团队可以在出现问题时暂时禁用 AVD 代理的自动更新。 |
折衷。 为 Azure 虚拟桌面环境支持的每个用户角色选择适当的体系结构和主机池类型。 更高的复原能力具有更高的成本和增加的复杂性,但为了简单起见,成本降低也会导致复原能力存在差距。
注释
如果使用共用主机池,则有两个负载均衡算法选项。 每一个都直接影响到你的成本和性能效率。
广度优先 负载均衡跨会话主机分配用户会话。 将用户分配到具有最低使用率的会话主机,这可以提高用户体验。
深度优先负载均衡一次使一个会话主机饱和,然后再将用户会话分配给其他会话主机,从而确保有效利用资源。 此方法特别经济高效,因为它在将用户分配到下一个会话主机之前完全使用单个主机的容量。 深度优先负载均衡在纵向缩减方案中尤其有利。
缩放计划
使用虚拟桌面中的缩放计划来帮助满足用户需求并降低维护虚拟桌面环境的成本。 使用缩放计划时,可以根据计划动态定位主机池容量,根据一天中的时间选择负载均衡行为,并管理用户会话的空闲、断开连接和注销体验。 Azure 虚拟桌面作员可以结合所有这些控件来平衡用户体验、提高性能并优化其 Azure 虚拟桌面工作负载的成本效益。
有关产品文档,请参阅 缩放计划。
若要为共用主机池创建缩放策略,请捕获以下数据点:
- 分配给主机池的用户总数和预测的增长或减少
- 预期或已知的高峰并发用户会话
- 部署的会话主机(VM)总数
- 每个会话主机的最大会话限制
- 用户角色和工作计划
要确定适当的缩放策略,请使用满足或超过总容量的分配的用户总数。 通过将最大会话限制乘以会话主机计数来查找总容量。 然后使用高峰并发用户会话来确定在计划阶段要定位的正确会话主机数量。 大多数组织都以 80-90% 主机池使用情况为目标,这有助于减少会话主机占用和过度部署和管理成本。
最常见的方法是将缩放计划计划和阶段与分配给主机池的用户角色保持一致。 根据您是优先考虑用户体验还是成本,采用适当的负载均衡算法。
重要
在增加期间使用广度优先的方法来避免过多的登录,因为过多的登录可能会因为用户开始工作而导致会话主机不堪重负。 然后,在高峰时段、下降时段和非高峰时段转向深度优先方法。 此策略因组织目标和工作负荷需求而异。
请考虑以下示例条件:
- 主机池类型: 共用桌面
- 总用户数: 300
- 最大会话限制: 8
- VM 大小:D16as_v5
- 会话主机总数: 38(此值根据公式 300 / 8 = 37.5 进行舍入)
- 主机池容量总数: 304 个会话
- 预期高峰并发会话: 280
下表显示了基于上述条件的示例缩放计划:
| 计划阶段 | 阶段配置 |
|---|---|
| 增加 |
开始时间: 上午 7 点 负载均衡算法: 广度优先 主机的最小百分比: 20%(8 个会话主机 = 64 个可供用户使用的会话) 容量阈值: 50%(当已使用主机池容量的 40% 超过 50% = 32 个会话时,缩放计划将启用更多会话) |
| 高峰时段 |
开始时间: 上午 9 点 负载均衡算法: 深度优先 容量阈值:50%(基于增加阶段固定) |
| 缩减 |
开始时间: 下午 2 点 负载均衡算法: 深度优先 活动主机的最小百分比: 10%(最小四个会话主机) 容量阈值: 90% 强制注销用户: 不 在以下情况时停止 VM:VM 没有活动会话 |
| 非高峰 |
开始时间: 下午 8 点 活动主机的最小百分比: 10%(GUI 中未显示,但反映在逻辑中) 负载均衡算法: 深度优先 容量阈值: 90% |
有关更多场景,请参阅 虚拟桌面中的自动缩放计划和示例场景。
个人主机池将每个用户分配到专用的持久性 VM,以确保他们始终连接到同一会话主机。 个人主机池策略具有更少的扩缩性考虑。 将战略更多地集中在用户体验和成本管理上,而不是主机池的总体容量。 若要为个人主机池创建缩放策略,请考虑以下因素:
- 确定您是否在连接时使用启动 VM功能。
- 确定在增加期间要启动的 VM。
- 考虑断开连接并注销设置。
- 请考虑休眠。
建议
| 建议 | 益处 |
|---|---|
| 使用 Azure 虚拟桌面缩放计划微调可伸缩性,并在不需要时关闭会话主机。 有足够的会话主机来支持 Azure 虚拟桌面工作负荷的需求。 了解订阅、服务和 VM 的规模限制。 |
缩放计划通过调整容量以匹配实时需求来帮助优化主机池效率。 它们可减少在低需求期间不必要的资源使用率,并确保在需要时有足够的会话主机可用,最终提高成本管理和工作负荷性能。 有关详细信息,请参阅 缩放计划的工作原理 和建议 ,以设计可靠的缩放策略。 |
| 将缩放计划与预期的负载模式保持一致,无论它们是静态、动态、可预测还是激增模式。 | 将缩放计划与工作负荷模式匹配可防止不必要的资源消耗,同时确保用户在需要时有足够的容量。 |
| 调整负载均衡算法。 | 优化的负载均衡算法有助于确保系统稳定性并防止重载。 它还可以减少延迟,从而提高用户满意度和效率。 |
| 利用 Azure 虚拟桌面见解来捕获扩展计划诊断日志,其中填充了使用趋势和操作。 | 这些指标有助于确保缩放计划和计划保持有效,并为团队提供可作的数据,以便他们可以相应地进行调整。 |
| 实施 Azure Monitor 警报并配置操作组,以在主机池容量不足或缩放计划操作失败时通知相关方并采取行动。 | 检测容量短缺和缩放故障,从而在用户遇到中断之前进行自动或手动干预。 帮助保持最佳会话可用性并防止意外停机。 |
| 对于 Greenfield 工作负载,请使用全面的概念验证和用户验收测试环境,以记录足够的数据进行性能测试。 | 结果可帮助你确定相应缩放计划配置的最佳值。 |
| 查看空闲超时和断开连接选项,以有效减少用户返回工作时的干扰。 | 通过减少不必要的会话注销并允许用户快速恢复工作,帮助优化用户体验。 |
| 对于个人主机池: - 将分配的 VM 设置为在启动阶段启动。 - 利用休眠。 |
在纵向扩展阶段启动的 VM 可改善用户当天开始的连接体验。 休眠可降低启动延迟并提高用户体验,同时最大程度地降低基础结构成本。 |
| 对于共用主机池: - 使用广度优先负载均衡将用户会话分散到可用主机。 - 根据分配的用户总数和高峰并发会话数,将目标设定为最大会话容量的 80-90%。 - 在故障会话主机上使用排除标记,以便缩放计划不会打开不正常的会话主机。 - 确保主机池容量可以适应突然需求、计划外维护或中断。 |
如果会话主机脱机或遇到严重错误,则广度优先负载均衡可减少对用户的影响。 80-90% 容量目标有助于优化成本,同时防止过度部署。 容量缓冲区可确保在需求激增、维护时段和基础结构故障期间实现复原能力,从而降低性能下降的风险。 |
注释
缩放计划不会创建或删除会话主机。 如果要创建或删除会话主机,必须使用 IaC 和持续集成和持续交付(CI/CD)管道的组合创建自定义自动化。
权衡。可靠的缩放操作需要成本权衡。 过度预配可能会导致支出增加,尤其是在高需求延长期间。 >
虽然虚拟桌面缩放计划优化资源使用情况,但它们不会动态创建或删除会话主机。 如果需要更精细的控制,可以使用 PowerShell、CLI 或 REST API 内部开发自定义自动缩放解决方案,以便根据实时需求缩放会话主机。 此方法需要额外的管理开销,但允许更大的灵活性和根据工作负荷需求定制的自动化。 "
应用程序组
可以使用 Azure 虚拟桌面(AVD)中的应用程序组来管理和发布一组应用程序或桌面给用户。 应用程序组定义用户可以访问哪些应用程序或桌面及其呈现方式。 它们有助于有效地组织资源和控制访问权限,从而提高安全性和用户体验。
Azure 虚拟桌面中的两种类型的应用程序组包括:
桌面应用程序组: 用户从会话主机访问完整的 Windows 桌面。 共用池和个人主机池都支持桌面应用程序组。
RemoteApp 应用程序组: 用户访问您选择并发布到应用程序组中的特定应用程序。 只有共用主机池支持 RemoteApp 应用程序组。
使用共用主机池时,可以将这两种类型的应用程序组分配给同一主机池。 但是,每个主机池只能有一个桌面应用程序组,但它可以有多个 RemoteApp 应用程序组。
| 建议 | 益处 |
|---|---|
| 评估对每个应用程序组是使用 RemoteApp 还是会话桌面。 如果用户需要根据其部门(如 HR 或 Finance)访问特定应用程序,请使用 RemoteApp 仅发布所需的应用程序。 如果用户需要具有所有应用程序的完整桌面环境,请使用 Session Desktop。 | 这可确保用户具有适当的访问权限级别,并遵循最低特权原则来提高安全性,同时简化管理和减少不必要的资源使用。 |
| 使用 Microsoft Entra ID 安全组将用户分配到应用程序组,而不是直接用户分配。 | 简化用户管理,确保可伸缩性,并在载入或卸载用户时保持一致性。 |
| 为每个应用程序组设置会话限制,并将 RemoteApp 组中的应用程序数保持在 50 以下。 | 通过避免过多的会话负载来防止性能下降。 |
| 为 Azure 虚拟桌面中的应用程序组启用诊断设置,并将其配置为将日志和指标发送到 Log Analytics。 | 改进主动监视,加快问题检测和故障排除速度。 |
评估应用程序组关键性(规模 1-5),以验证主机池配置是否符合可用性和性能需求。 Note: Each Application Group is linked to a single Host Pool. - 级别 5: 任务关键型应用(例如财务)→验证主机池是否使用可用性区域和高级 SSD。 - 级别 3:重要应用(例如文档编辑器)→确保主机池使用可用性集和标准 SSD。 - 级别 1: 低优先级应用→确认使用成本优化的 VM(如 B 系列) |
此方法可确保基础结构决策合理,并与应用程序的业务重要性保持一致,同时优化资源使用,同时满足可用性和性能目标。 |
| 根据数据类型和业务关键性将敏感度标签分配给应用程序组。 例如,对于处理财务数据的应用程序组,请分配 机密 标签。 对于具有常规管理工具的应用程序组,请分配 常规 标签。 |
通过基于数据敏感度强制实施适当的访问控制来提高安全态势。 |
| 使用 Azure Key Vault 安全地存储应用程序组中的应用程序使用的机密,例如 API 密钥和数据库凭据。 确保加密机密以帮助保护机密免受未经授权的访问。 | 通过集中机密管理和加密来提高安全性。 降低凭据公开的风险、简化凭据轮换,并提高安全策略的符合性。 例如,应用程序组中的财务应用程序连接到 Azure SQL 数据库和第三方支付 API。 如果没有 Azure Key Vault:数据库凭据和 API 密钥存储在代码或配置文件中,会增加暴露和未经授权的访问的风险。 |
| 通过 Azure Log Analytics 和 AVD Insights 跟踪和监视应用程序组的使用模式。 | 此方法可帮助你识别未使用或未使用的应用程序组。 使用此数据来确定何时解除分配资源,以便降低成本。 |
| 根据使用模式调整或减少支持应用程序组的活动 VM 的数量。 | 这种做法将过度预配的资源的成本降到最低。 |
| 利用 IaC 工具,例如 Azure 资源管理器模板(ARM 模板)、Bicep 或 Terraform。 例如,可以定义声明性 ARM 模板,该模板预配主机池、分配会话主机,以及配置具有特定应用程序分配和策略的应用程序组。 |
此方法标准化主机池和应用程序组的部署和配置,并减少人为错误。 可以跨环境创建可重复、可缩放且一致的部署。 |
会话主机设置
与主机池设置一样,充当会话主机的 VM 上的设置也会影响虚拟桌面环境的性能。
区域
会话主机的位置与用户体验的延迟直接关联。 如果使用 FSLogix,主机池位置和 FSLogix 存储位置之间的距离也会影响用户体验。 部署靠近用户位置的会话主机。
会话主机的区域也会影响虚拟桌面环境的可靠性。 部署具有冗余的会话主机非常重要。 可以启用可用性区域或虚拟机规模集。
可用性区域可增强会话主机针对区域中断的复原能力,但它们仅限于特定区域。
具有灵活编排功能的虚拟机规模集提供跨多个区域的部署选项。 在每个区域中,可以跨不同的容错域进行部署。
有关具有灵活编排的可用性区域和规模集的详细信息,请参阅以下文章:
计算大小
会话主机计算大小还会影响环境的性能。 Azure 提供各种计算大小。 还有许多系列、体系结构类型、核心计数、存储功能和特殊硬件选项,例如 GPU。 为工作负荷选择合适的大小,以帮助以最佳价位实现最佳性能。
某些大小提供特殊功能:
DCasv5 和 ECasv5 是提供可靠高安全功能的机密大小。 这些功能的示例包括基于硬件的隔离、加密和专用虚拟受信任平台模块。
某些大小提供 GPU 支持。 如果使用 OpenGL 和 DirectX 等框架,或者使用图形密集型应用程序,请使用 NVIDIA Tesla M60 GPU 支持的 NV 系列。
存储解决方案
存储解决方案还会影响虚拟桌面的性能。 会话主机使用 Azure 托管磁盘作为虚拟硬盘驱动器。 磁盘类型包括:
- Azure 高级 SSD
- Azure 标准 SSD
- Azure 标准硬盘驱动器 (HDD)
每个磁盘都有自己的最大大小、吞吐量和每秒输入/输出作(IOPS)。 选择正确的磁盘大小和系列,以帮助以最佳价格点实现最佳性能。 最佳磁盘大小有助于防止用户出现严重的性能问题,并避免在未使用的性能上过度支出。
会话主机磁盘的服务水平协议(SLA)取决于磁盘类型。 若要比较使用各种类型的磁盘的会话主机 SLA,请参阅 主机池复原能力。
容错
容错从根本上以高可用性和灾难恢复原则为中心。 若要实现高可用性,请增加会话主机数,尤其是在不同的可用性区域中。 如果将会话主机分布在可用性区域和可用性区域内的位置,则可以减少虚拟桌面环境因维护或中断而变得不可用的可能性。
对于会话主机的灾难恢复,可以使用黄金映像或备份:
如果会话主机包含不需要主动保存的数据或应用程序,请使用黄金映像。 以冗余方式保存这些映像,以帮助确保在发生灾难时可以恢复会话主机。
如果会话主机包含经常更新的宝贵数据,请考虑备份以保存这些更改。 备份成本远高于维护黄金映像的成本。
还应该对环境执行故障模式分析 (FMA)。 使用适当的 FMA,可以准备将来的中断并帮助防止中断。 潜在的故障点包括:
在单个区域中部署的会话主机。 此设置可能会导致在可用性区域中断期间完成服务关闭。
没有备份的个人池会话主机。 如果没有启用备份,用户将无法快速部署其他相同的会话主机,并且可能会遇到数据丢失。
在中断期间无法快速部署新会话主机。 如果不使用 IaC 保存会话主机信息和 VM 映像,则可能会遇到此问题。 IaC 的示例包括 ARM 模板、Bicep 和 Terraform。
建议
| 建议 | 益处 |
|---|---|
| 在靠近用户的地方部署会话主机。 | 这种做法可最大程度地减少延迟。 |
| 在可用性区域或灵活的虚拟机规模集中部署会话主机。 | 此方法有助于保护环境免受服务中断的影响。 |
| 研究 Azure 提供的各种计算大小、系列和功能。 | 适当的资源可优化工作负荷的性能和成本效益。 |
| 如果运行高安全性工作负荷,请考虑 DCasv5 或 ECasv5 系列中的 VM。 | 这些没有本地磁盘的 VM 为不需要本地临时磁盘的工作负载提供更好的价值主张。 |
| 如果使用图形密集型应用程序,请考虑 NV 系列 VM。 | NV 系列 VM 提供了一个可靠的平台,用于呈现和处理图形密集型任务。 |
| 设计存储解决方案时,请考虑各种类型的 Azure 托管磁盘的最大大小、吞吐量和 IOPS。 | 这种做法有助于优化应用程序性能 |
| 选择一种托管磁盘,以优化工作负荷的性能和成本效益。 | 为了简化预配,管理缩放存储。 |
| 将会话主机分布在不同的可用性区域。 | 此方法可提高可用性。 |
| 分散可用性区域中的会话主机。 | 减少因维护或故障而导致环境不可用的几率。 |
| 如果不需要备份会话主机数据或应用程序,请使用以冗余方式保存的黄金映像以进行灾难恢复。 | 这种做法有助于灾难恢复。 |
| 如果你会频繁更新会话主机数据,请使用备份进行灾难恢复。 | 这种做法有助于保护有价值的数据。 |
| 对你的环境执行 FMA。 | FMA 可帮助你为将来的中断做好准备,并可能阻止它们。 |
后续步骤
以下文章介绍如何建立连接、为工作负荷创建外围,以及均匀地将流量分发到工作负荷。
使用评估工具评估设计选择。