Microsoft AZ-140: 会话主机运维、缩放和优化 — 学习指南
属于 Microsoft Azure Virtual Desktop Specialty AZ-140 — 学习指南. 使用经过验证的答案练习: Microsoft 考试中心, 或参加限时模拟考试: ExamRoll.io.
概述
Azure Virtual Desktop (AVD) 中的会话主机操作围绕三大核心准则:规模优化与性能工程、智能伸缩与电源管理以及可靠的日常运维。其目标是在高峰需求期间提供一致的用户体验,同时在非高峰时段最大限度地减少开销,并且不影响可维护性或可恢复性。本节将解释如何通过缩放计划、计划和容量配置、例如“排出模式”等操作状态以及运行状况和注册问题的排查来设计和操作 AVD 自动缩放。然后,本节会将规模调整指南(包括启用 GPU 的工作负载)和自动化与诸如 reservations、savings plans 和 Azure Hybrid Benefit 等成本优化手段联系起来。
自动缩放设计:缩放计划、计划安排和主机池目标设定
缩放计划与目标设定
- 缩放计划定义了池化主机池何时以及如何启动、排出、停止和解除分配会话主机。一个缩放计划可以面向多个主机池,甚至跨区域的主机池。
- 每个目标主机池在其各自的时区上下文中独立执行缩放计划。使用缩放计划中每个计划的时区设置,以与本地工作时间对齐。
- 排除标记:定义一个标记键/值对,使自动缩放忽略特定的虚拟机(例如,运维金丝雀或维护试点机)。
- 负载均衡模式很重要:广度优先模式将用户会话分散到各个主机(可提高瞬时性能,但会减慢缩减速度);深度优先模式将用户会话堆叠到少数主机上(可最大化整合效果并节约成本)。对于以成本为中心的自动缩放,应使用深度优先模式并配合适当的容量阈值。
计划安排:高峰预备、高峰、高峰回落、非高峰
- 高峰预备:在需求到来之前启动并预热最小规模的机群,当容量阈值被超过时进行横向扩展。
- 高峰:保持更多容量在线以最小化延迟和排队;如果超过阈值,则继续横向扩展。
- 高峰回落:将选定的主机置于排出模式,整合会话,并在宽限期后关闭空闲主机。
- 非高峰:为非工作时间的访问维持一个小的基线;其余空闲主机将被解除分配以最小化开销。
容量阈值、最小主机可用性和自动缩放行为
- 容量阈值 (%) 是根据在线主机的总会话容量来衡量的。当平均利用率超过该阈值时,自动缩放会启动额外的虚拟机。利用率由每台主机的最大会话数和当前会话数决定。根据工作负载进行调整;对于深度优先模式,建议从 60–70% 开始;对于广度优先模式,建议从 70–80% 开始。
- 最小主机可用性可以定义为在每个计划阶段保持运行的主机数量或百分比。始终保持至少一台“备用”主机以吸收突发流量。
- 缩减安全性:自动缩放使用排出模式和“无活动会话”检查来避免中断用户连接。只有空闲的主机才会被停止/解除分配。
电源管理与成本感知的解除分配
- 停止(解除分配)操作会释放计算费用;但操作系统和数据磁盘会继续产生存储费用。自动缩放会在高峰回落和非高峰阶段解除分配空闲主机。
- “在连接时启动虚拟机”功能可以补充非高峰时段的策略,在用户尝试连接时启动已解除分配的虚拟机。请确保主机池的托管标识或服务主体在会话主机资源组上拥有虚拟机启动权限。
- 避免在虚拟机内部关机而不解除分配;这会使虚拟机保持已分配状态并继续计费。
操作状态、维护与运行状况:排出模式、通知和注册
排出模式与维护窗口
- 排出模式 (AllowNewSession=false) 会阻止新用户登录,同时允许现有会话完成。可用于打补丁、更新代理、替换映像或进行缩减。
- 维护方法:将主机设置为排出模式,等待其变为空闲,在通知后正常注销滞留的会话,然后应用更新并重新启动。验证运行状况/检测信号并重新启用新会话。
用户通知策略
- 缩放计划通知:在高峰回落期间配置注销消息和宽限期。使用清晰、有时间限制的语言。
- 补充通知:使用 Azure Automation (Send-AzVMRunCommand,通过 PowerShell 发送浮出通知) 或 Endpoint Manager 在维护前显示会话内消息。
会话主机状态、检测信号和代理运行状况
- 典型状态:Available、Unavailable (NoHeartbeat)、NeedsAssistance、Unhealthy、Shutdown、NotJoinedToDomain、Upgrading。
- 检测信号/代理的先决条件:到 AVD 服务终结点的出站 443 端口(使用 AzureVirtualDesktop 服务标签)、稳定的 DNS 解析、时间同步以及(如果适用)成功的域加入。
- 代理服务:Remote Desktop Agent Loader 和 Remote Desktop Agent 必须正在运行。如果允许出站访问,AVD 代理和并行堆栈会自动更新。
注册与问题排查
- 要将现有虚拟机加入主机池,需创建一个注册令牌(有一定有效期),并使用该令牌安装/注册 AVD 代理。
- 常见的故障隔离步骤:
- 检查主机在主机池中是否显示为 Registered 和 Available;如果不是,请使用新的令牌重新注册。
- 检查事件查看器:查看 Microsoft-RDInfra-RDAgent、Microsoft-RDInfra-RDAgentBootLoader 和 RDS/TerminalServices 日志,查找连接或身份验证错误。
- 验证 DNS:域名解析和服务终结点解析必须成功;如果使用 Azure AD DS,请确保 VNet DNS 指向托管的域控制器。
- 确认 Windows 防火墙或网络安全规则允许出站 443 端口,并且没有 TLS 拦截破坏服务信任。
有用的自动化示例
# Put a session host in drain mode (no new sessions)
Update-AzWvdSessionHost -ResourceGroupName rg-avd -HostPoolName hp-finance `
-Name host1.contoso.com -AllowNewSession:$false
# Gracefully logoff idle users after notice (example)
Invoke-AzVMRunCommand -ResourceGroupName rg-avd -Name host1 `
-CommandId RunPowerShellScript -ScriptPath .\Notify-And-Logoff.ps1
成本优化:电源、自动缩放、预留、节省计划和 AHB
使缩放与业务时间保持一致
- 使用深度优先算法结合保守的容量阈值来整合会话并加速缩减。结合非高峰时段取消分配和“在连接时启动 VM”(Start VM on connect) 功能,以支持深夜或罕见的访问。
- 设置一个较小但非零的最小主机数,以避免冷启动风暴。
预留和节省计划
- 预留 (Reservations):1 年或 3 年的 VM 预留可锁定特定区域的特定 SKU,以获得最大折扣;非常适合大部分时间运行的基线容量(例如,日间高峰期机群)。
- 计算节省计划 (Compute Savings Plans):跨 VM 系列和区域提供灵活的折扣;适用于混合使用不同大小的 VM 或 SKU 可预测性较低的动态环境。
- 存储预留:Azure Files 预留容量可以大规模降低 FSLogix 的存储成本。
Azure 混合权益 (Azure Hybrid Benefit, AHB) 和许可
- 将 AHB 应用于 Windows Server 和符合条件的 Windows 客户端工作负载,以减少计算操作系统的许可费用。确保许可资格和合规性。
- 对于 Microsoft 365 部署,确认许可涵盖了适用的 Windows Enterprise 多会话版和 Microsoft 365 应用。
运维脚本和 Runbook
- 使用 Azure Automation 或 GitHub Actions 进行:
- 维护前后的机群排空/启用序列。
- 周一或公共假期后的预扩展预热脚本。
- 健康状况修复(重启代理服务,在心跳丢失时重新注册主机)。
- 基于标签的编排使选择性操作变得简单(例如,标记 Environment=Pilot 以从缩减操作中排除)。
- 使用 Azure Automation 或 GitHub Actions 进行:
# Start or stop idle hosts by tag (supplemental to native autoscale)
$hosts = Get-AzWvdSessionHost -ResourceGroupName rg-avd -HostPoolName hp-ops
foreach ($h in $hosts) {
if ($h.Session -eq 0 -and $h.Tags["KeepOnline"] -ne "true") {
Stop-AzVM -ResourceGroupName rg-avd -Name ($h.Name.Split("/")[1]) -Force -StayProvisioned:$false
}
}
实际问题场景
IKEA 在工作日面临来自 3D 规划师、产品工程师和呼叫中心员工使用远程应用的高峰。晚上和周末的需求很低。由 GPU 支持的会话必须保持响应迅速,同时最大限度地降低总体计算成本。
按工作负载细分主机池
- 创建三个池化主机池:GPU-CAD (NVads A10 v5)、KnowledgeWorker (D/E-series) 和 ContactCenter (D-series)。
- 原因:使虚拟机大小和密度与不同的性能配置文件对齐;支持独立的自动缩放和维护时段。
附加单个缩放计划,并根据业务时间设置时间表
- 定义 07:00 容量提升,09:00–17:00 高峰,17:00–19:00 容量下降,其余时间为非高峰;将时区设置为每个池所在的区域。
- 原因:保证在用户到达前容量就绪,在下班后平稳地整合和关闭主机,并遵循各区域的时间。
按池调整容量阈值和最低可用主机数
- GPU-CAD:广度优先,容量阈值 70%,最低 30% 主机在线;KnowledgeWorker:深度优先,阈值 65%,最低 10%;ContactCenter:深度优先,阈值 70%,最低 15%。
- 原因:GPU 工作负载倾向于更广泛的分布以保证响应能力;办公工作负载通过整合来削减成本;呼叫中心需要稳定的预留容量以应对轮班变更。
为 KnowledgeWorker 和 ContactCenter 启用“在连接时启动 VM”(Start VM on connect)
- 授予主机池托管标识“虚拟机启动”权限;保持较低的非高峰期最小主机数。
- 原因:在保留为意外的非工作时间登录提供即时访问能力的同时,减少空闲运行时的费用。
实施维护和通知工作流
- 在“周二补丁日”(Patch Tuesday) 之前:通过标签将每个池的 20% 置于排空模式;提前 30 分钟通知用户;在主机空闲后,进行修补、重启、验证代理/心跳,然后轮换到下一批。
- 原因:滚动排空可避免大规模用户注销,保持服务连续性,并减少服务台的压力。
使用 Azure Monitor for AVD 进行监控和迭代
- 跟踪 CPU、内存、GPU 利用率、登录持续时间、FSLogix 延迟;每月调整 MaxSessionLimit 和自动缩放阈值。
- 原因:数据驱动的调优可在使用模式演变时维持 SLA 并控制开销。
应用成本杠杆
- 为 KnowledgeWorker 和 ContactCenter 的基线工作日高峰预留 3 年容量;为可变的 GPU 需求使用 Compute Savings Plan;在符合条件的情况下应用 Azure Hybrid Benefit。
- 原因:预留为可预测的基础负载锁定了最大的折扣;节省计划则能灵活应对可预测性较低的 GPU 高峰;AHB 降低了操作系统许可成本。
强化注册和健康状况
- 维护一个常备 Runbook,以重新注册任何显示 NoHeartbeat 状态的主机,并验证 DNS/时间。为用于诊断的主机保留排除标签。
- 原因:快速、自动化的修复可限制对用户的影响,并在发生意外的代理问题时保持容量。
通过此设计,IKEA 在满足日间性能目标(包括 GPU 响应能力)的同时,积极地在非工作时间取消分配容量并自动化维护,从而实现了稳定的用户体验和可衡量的成本降低。
← FSLogix、配置文件和用户数据 · 所有领域 · 应用程序和最终用户体验 →
练习这些题目 → · 在 ExamRoll.io 上限时练习 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通过考试 →