文档版本:v4(2026-07-01) 适用版本:Azure Local 2503+ / 2604 / 2606 / 2607(azloc-2606 为当前 GA 默认基线) 资料来源:
- Microsoft Learn 官方部署文档
learn.microsoft.com/en-us/azure/azure-local/deploy/
- 官方 azloc-2503+ ARM 部署模板(GitHub azure-quickstart-templates)
- Network ATC 官方文档(Windows Server Networking)
- 网络参考模式 choose-network-pattern
0.1 版本支持矩阵
Azure Local 从 2024 年 12 月(azloc-2512)起改为月度发布列车。两个 OS 主线:
|--------------|--------------|---------------------|----------------------------|
| OS 主线 | OS build | 状态 | 支持模型 |
| 23H2(旧线) | 25398.xxxx | ⚠️ 2026-04 终止支持 | 新部署不可使用 |
| 24H2(当前) | 26100.xxxx | ✅ 当前支持主线 | Azure Local 当前所有 GA 版本都基于此 |
|-----------------|-------------|--------------|--------------------------------------------|
| azloc 版本 | 公布时间 | 状态 | 关键特性 |
| azloc-2411 | 2024-11 | 旧(23H2 OS) | 23H2 基础 release train |
| azloc-2503 | 2025-03 | ✅ GA | 24H2 转换起点;可发现/导入离线更新包 |
| azloc-2504 | 2025-04 | ✅ GA | 每月双版本发布;质量更新先于累计更新 |
| azloc-2505 | 2025-05 | ✅ GA | 月度质量+安全 |
| azloc-2506 | 2025-06 | ✅ GA | Arc Gateway 可选启用;SBE 自动检测 |
| azloc-2507 | 2025-07 | ✅ GA | 24H2 列车 |
| azloc-2512 | 2025-12 | ✅ GA | ⚠️ 11.25xx 列车,需先装 12.2510 / 12.26xx 列车才可后续 |
| azloc-2601 | 2026-01 | ✅ GA | 24H2 月度功能 |
| azloc-2602-2604 | 2026-02~04 | ✅ GA | 月度功能/质量 |
| azloc-2605 | 2026-05 | ✅ GA | 月度 |
| azloc-2606 | 2026-06 | ✅ 默认文档基线 | 文档默认 moniker |
| azloc-2607 | 2026-07 | ✅ 最新 | 本文档 v4 发布时最新版本 |
重要规则:
- 23H2 OS(25398.xxxx)已终止支持,新部署必须使用 24H2 OS(26100.xxxx)列车
- Azure Arc Resource Bridge(ARB)证书需在 1 年内更新,否则 Azure Local VM 功能可能受损
- 任何 release 需在 6 个月内更新到最新,否则进入 unsupported 状态
- 即将 2511+ 更新时需先装 12.2510 (24H2)
- 2512+ 起的部分新功能(如 ARB SPN 自动化)仍处 Preview 状态(详见 §5.3)
0. 顶层心智模型与术语分层
⚠️ 官方硬要求 = Microsoft Learn 明文规定、不满足即部署失败/不被支持 📌 Portal/Toolkit 默认 = Portal 默认向导、azurelocal-toolkit(Terraform)等示例模板的默认行为,不是产品限制 💡 企业最佳实践 = 微软推荐但未强制,可由企业按合规/规模/运维偏好调整
本 Part 涉及两套部署序列,来源不同:
|----------------------------|-------------------------|------------------------------------------------------------------------|
| 序列 | 来源 | 关键差异 |
| 社区序列(azurelocal.cloud) | Phase 01-06 | 把"硬件准备"单独列;OS 准备和 AD 准备分两阶段;Cluster 部署与 Post-Deploy 分开 |
| 官方序列(azloc-2606) | deployment-introduction | 顺序:AD 准备 → OS 下载 → OS 安装 → 订阅权限 → Arc 注册 → 部署(Portal/ARM)。不含硬件准备环节 |
两套序列都可用 ,但官方序列是产品 GA 时官方真正测试过的流程。社区序列便于理解全貌,但有些 Phase 顺序可在企业实际部署中并行/合并。
术语统一约定(v4 新增)
- 产品名称 :全文统一使用 Azure Local(旧名 Azure Stack HCI 仅在历史版本说明时出现)
- 缩写:azloc-XXXX = 官方文档 moniker(用于 URL 参数),不要与产品名混用
关键术语
- LCM User:Lifecycle Manager 部署用户,AD 域中专门用于 Azure Local 部署/运维的账户
- Arc gateway:Azure Arc 网关(2506+),把所有 Arc 流量收敛到一个 FQDN,大幅缩减出站端点
- SBE :Solution Builder Extension,硬件 OEM 提供的部署前注入包,放置在
C:\SBE目录 - AzLOU:Azure Local Onboard Utility,自动化 on-prem 部署和 Arc 注册
- MOC:Microsoft On-premises Cloud,Azure Local 内的云管理栈(部署期间最耗时步骤 "Deploy Moc and ARB Stack")
- ARB :Azure Arc Resource Bridge,连接 on-prem 资源到 Azure 控制平面的桥接 VM,自动部署无需手动创建
- Network ATC:Intent-based 网络自动化机制,azlocal 2506+ 部署时自动管理网络配置
- Seed Machine:部署时第一台触发集群创建的节点(ARM 模板部署时观察第一台节点进度)
- Integrated System:Azure Local 与 OEM 联合验证的预装/认证机型
支持的网络拓扑(官方明示,azloc-2606)
来源:deployment-introduction "Validated network topologies" 表
|------------------|------------------|------------|
| 网络拓扑 | Azure Portal | ARM 模板 |
| 1 节点 - 无存储交换机 | ✅ 默认 | ✅ 支持 |
| 1 节点 - 有存储交换机 | ❌ 不适用 | ✅ 支持 |
| 2 节点 - 无存储交换机 | ✅ 支持 | ✅ 支持 |
| 2 节点 - 有存储交换机 | ✅ 支持 | ✅ 支持 |
| 3 节点 - 有存储交换机 | ✅ 支持 | ✅ 支持 |
| 3 节点 - 无存储交换机 | ❌ 不支持 | ✅ 支持 |
| 4 节点 - 有存储交换机 | ✅ 支持 | ✅ 支持 |
| 4 节点 - 无存储交换机 | ❌ 不支持 | ✅ 支持 |
| 5-16 节点 - 无存储交换机 | ❌ 不支持 | ❌ 不支持 |
| 5-16 节点 - 有存储交换机 | ✅ 支持 | ✅ 支持 |
两种存储网络选项(官方术语):
- No switch for storage (无存储交换机):节点间用交叉网线直连。Portal 当前只支持 1 节点和 2 节点。
- Network switch for storage(有存储交换机):经 TOR 交换机互联,最多 16 节点。
💡 企业最佳实践 :生产环境推荐 3+ 节点 + 有存储交换机;3 节点正好可以容忍 1 节点故障。网络参考模式 (physical connectivity layout)见 choose-network-pattern,包含 5 种典型模式:单节点、双节点无交换(单 TOR/双 TOR)、双节点有交换(非融合/全融合)、三节点无交换(单/双链接)。
1. Phase 01 --- 硬件与机架准备(社区多出章节)
💡 企业最佳实践 ------ 微软官方部署文档不包含"硬件与机架准备"环节,azurelocal.cloud 把这部分作为 Phase 01 单列。物理硬件到货、机房环境就绪后,建议按下表做交付前验收。
1.1 硬件到货验收清单
- 节点数量、机型(SKU)符合订单;至少 1+1(生产建议 2+1 或 2+2)
- 每节点至少 2 张物理网卡(建议 2-4 张供 Network ATC intent 划分)
- 每节点至少 2 个 NVMe 或 SSD(建议 4+ 盘位供 Cache + Capacity 分层)
- BMC/iLO/iDRAC 已配置 IP,可远程访问
- 电源 PDU 双路冗余;机架内走线整齐
1.2 网络物理就绪
- 25GbE/10GbE TOR 交换机端口预留、Trunk/VLAN 已放行
- 管理网(Out-of-Band)VLAN 与 BMC 网段隔离
- 计算/存储南北向 + 东西向 MTU ≥ 1674(推荐 9000 巨型帧)
- 节点间直连或经 TOR 互联,RDMA(RoCEv2/iWARP)已配置并验证
1.3 电源与散热
- 节点实际功耗测量(用 PDU 智能插座)
- 机房温度 18-27°C 范围内确认
- UPS/电池备份就绪(生产建议 15 分钟以上桥接)
1.4 机房与合规
- 防火/防水/防尘达标
- 第三方设备/人员出入记录制度
- 与 Azure 订阅的合规/许可对齐
2. Phase 02 --- 部署前 Azure 与 AD 准备(官方 Step 1+Step 4)
⚠️ 官方硬要求 ------ 这两件事必须先做,否则进入 On-Prem 部署时会被阻断
2.1 Azure 订阅与权限
详见 Part 2: Azure Foundation。重点包括:
- 订阅注册必要 RP(官方明确需要 13 个 ,详见 Microsoft Learn deployment-prerequisites):
- 核心必需(不注册 Cluster Create 直接失败):Microsoft.AzureStackHCI、Microsoft.HybridCompute、Microsoft.GuestConfiguration
- 部署期间默认需要:Microsoft.HybridConnectivity、Microsoft.ExtendedLocation、Microsoft.ResourceConnector、Microsoft.Storage、Microsoft.Insights、Microsoft.KeyVault
- 后续功能扩展(按需):Microsoft.Kubernetes、Microsoft.KubernetesConfiguration、Microsoft.HybridContainerService、Microsoft.Attestation
- 部署用户角色:Subscription Owner / Contributor + Microsoft Entra ID 中的 Azure Stack HCI Administrator (旧名 Hybrid Administrator)+ Key Vault Reader(如使用 Arc Gateway 关联 KV)
- 数据中心位置(Region)建议靠近 Azure 资源区域,降低 Storage Witness / Log Analytics / Backup / Monitor 延迟
2.2 Active Directory 准备
⚠️ 官方硬要求 ------ AD OU 与 LCM 用户是部署硬约束,缺失会直接失败
官方命令 (deployment-prep-active-directory):
# 1) 安装 AD 准备模块(注意先卸载老版本)
Uninstall-Module AsHciADArtifactsPreCreationTool -ErrorAction SilentlyContinue
Install-Module AsHciADArtifactsPreCreationTool -Repository PSGallery -Force
# 2) 准备凭据与参数(注意:用户名不能含域名;不能用 admin/Administrator)
$password = ConvertTo-SecureString "<密码>" -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ("lcmuser", $password)
# 3) 创建专用 OU 并植入 LCM 用户
New-HciAdObjectsPreCreation `
-AzureStackLCMUserCredential $credential `
-AsHciOUName "OU=AzLocal01,DC=contoso,DC=com"
OU 路径不允许的字符 :& , " ' < >
LCM 用户密码复杂度:至少 14 字符,含大小写字母+数字+特殊字符。
LCM 用户名限制(官方原文):
- 用户名只能是 1-20 字符的字母、数字、连字符、下划线
- ⚠️ 不能使用
admin(官方明文) - ⚠️ 不能使用
Administrator等保留账户名称(官方明文,y 老师 v4 反馈) - ⚠️ 不能与本地 admin 账户同名(官方明文)
- 建议同时避免
root等常见保留账户名
OU 命名规范建议(企业级):每实例独立 OU,便于 GPO 隔离与权限委托
Contoso
└─ Azure Local
├─ AzLocal-Prod-01 (单实例 OU,下含 cluster CNO + 节点 computer account)
├─ AzLocal-DR-01
└─ AzLocal-Dev-01
LCM 用户的额外要求:
- 允许"交互式登录"(Interactive logon)
- 拥有"作为批处理作业登录"(Log on as a batch job)权限
- 💡 企业最佳实践:每实例一个独立 LCM 用户 + 唯一密码,缩小被攻陷时爆炸半径
WMI Filter 与 GPO 注意事项(官方 Note):
当 OU 上阻止 GPO 继承时,带 Enforced 标志的 GPO 不会被阻止。需要用 WMI Filter 排除 Azure Local 节点,避免强制 GPO 影响部署。
2.3 Key Vault 准备(仅在用 Local Identity 模式时)
📌 Portal 默认 ------ 当选择"使用本地身份(Key Vault)"作为部署身份时需要
详见官方 deployment-local-identity-with-key-vault。要点:
- 创建 Key Vault(Standard 或 Premium 均可)
- 当前不支持 Private Endpoint(Roadmap 中可能放开)
- 启用 RBAC 授权
- 部署用户需要:Key Vault Secrets Officer + Key Vault Contributor
- 部署完成后,本地凭据(节点本地管理员 / LCM 用户的 AD 密码)存入 KV,可在门户中查询
3. Phase 03 --- OS 下载与安装(官方 Step 2+3)
⚠️ 官方硬要求 ------ 必须使用 Azure Local 操作系统(azloc-25xx 系列),不能直接装 Windows Server 2022/2025 标准版
3.1 下载 OS
官方推荐从 Azure Portal 下载 Azure Local OS ISO;对于 Azure Local Integrated System(微软与 OEM 联合验证机型),可使用 OEM 提供的官方镜像或恢复介质,生产环境必须使用OEM联合验证机型,不可以使用X86服务器自己DIY组装(Windows Server 2025 HCI例外)。
四类合法来源(不限于 Azure Portal):
|-------------------------------------------|-------------------------------------|-----------------------------------|
| 来源 | 适用 | 关键事实 |
| Azure Portal | 所有场景 | 官方推荐下载路径。获取通用 ISO,手动制作安装介质。 |
| OEM Factory Image(出厂镜像) | Azure Local Integrated System 采购 | OEM 预装在硬件上,含 OEM 驱动 + SBE。直接开机安装。 |
| OEM Recovery Image(恢复介质) | Azure Local Integrated System 修复/重装 | OEM 提供的恢复介质,含原厂驱动 + SBE。 |
| OEM Lifecycle Manager(OEM 提供的 LCM 介质) | Azure Local Integrated System 部署 | OEM 定制的 LCM 自动化部署介质。 |
⚠️ 官方硬要求 ------ 必须使用 Azure Local 操作系统(azloc-25xx 系列),不能直接装 Windows Server 2022/2025 标准版。Azure Local Integrated System 机型上应使用 OEM 提供的镜像或恢复介质。
路径 1:Azure Portal 通用 ISO (官方 download-23h2-software)
Azure Portal → Azure Local → 任意实例 → 上方菜单 "Download Azure Local OS"
- 下载后获得 ISO(约 6-8 GB),手动制作 U 盘或挂载到 BMC 虚拟光驱
- 适用于 Lab、技术验证、自定义集成场景
路径 2:OEM 官方镜像 / 恢复介质
- Azure Local 认证的 OEM(如 Dell、Lenovo 等)可从其官方网站/支持页下载 OEM 定制镜像
- OEM 镜像内已含 SBE(Solution Builder Extension)和 OEM 驱动
- 部署时系统自动检测
C:\SBE目录并应用 OEM 配置 - 适用于采购了 Azure Local Integrated System 预装/授权服务的企业
💡 企业最佳实践:生产环境如采购了 Azure Local Integrated System,推荐使用 OEM 镜像(路径 2)减少配置错误。Lab/技术验证可用 Portal 通用 ISO(路径 1)。
3.2 启动并安装 OS
⚠️ 官方硬要求 ------ 必须在每台物理节点上独立安装
安装步骤 (deployment-install-os):
- 引导介质 → 选择 English (United States) → Install now
- 接受许可 → 选择 Custom: Install the newer version of Azure Local only (advanced)
- 不支持升级安装(只支持全新安装)
- 选 OS 盘(系统盘)→ 等两次自动重启
- 首次登录时强制改 本地 Administrator 密码(≥14 字符,含大小写+数字+特殊字符)
- 安装 OEM 提供的 驱动 + 固件 + SBE
💡 企业最佳实践 :SBE 内容放到
C:\SBE,部署时自动检测并使用
-
打开 SConfig (Server Configuration tool)配置:
- 网络设置 (VLAN ID、DHCP、Gateway、DNS)
- ⚠️ 官方硬要求:Azure Local 部署完成后,不支持通过 Portal 修改部署网络中的 DNS 配置。如需调整,应按照官方 Network ATC 流程重新配置网络,因此建议部署前完成规划。(y 老师 v4 反馈修正)
- 时间服务器(w32tm):
w32tm /config /manualpeerlist:"ntpserver.contoso.com" /syncfromflags:manual /update
w32tm /query /status - 网络设置 (VLAN ID、DHCP、Gateway、DNS)
-
可选:RDP、计算机名
-
⚠️ 官方硬要求 :不要通过 SConfig 或 Azure Update Manager 安装 Windows Update(官方原文 "causes a deployment failure",限定 SConfig / AUM 两个渠道)
-
💡 企业最佳实践 :其他渠道的更新也建议避免。部署前不要手动安装 Windows Update,建议保持初始安装状态,由 Azure Local Lifecycle Manager 统一管理更新,否则可能导致版本不一致或部署验证失败。(y 老师 v4 反馈措辞)
- 清理非 OS 盘(diskpart clean),移除虚拟介质
- 重启
- 统一所有节点的本地 Administrator 凭据(用户名/密码完全一致)
3.3 Simplified Machine Provisioning(Preview)
📌 Portal 新增 ------ 2506+ 提供简化模式,OS 安装 + Arc 注册一并完成
- 见官方 simplified-machine-provisioning
- 适合全新硬件、追求最少人工介入的场景
- 💡 企业最佳实践:生产环境建议用传统手工 SConfig 路径,便于在 OS 阶段做合规基线
3.4 域加入时机选择
|----------------------|------------------|-------------------------------------|
| 策略 | 时机 | 适用 |
| 部署时自动域加入(传统) | Portal 部署阶段 | 节点还没接 AD,希望部署流程一气呵成 |
| 部署前域加入(2604+ 新增) | SConfig option 1 | 希望先把节点加进 AD,便于企业 GPO/WMI Filter 预配置 |
部署前域加入的官方命令 (deployment-install-os):
# 在每台节点上
Add-LocalGroupMember -Group "Administrators" -Member "CONTOSO\deploymentuser"
⚠️ 官方硬要求:如果不手动加,部署阶段会失败。
4. Phase 04 --- Arc 注册(官方 Step 5)
⚠️ 官方硬要求 ------ 部署前的 Arc 注册是 azloc-2606+ 的标准流程。节点 OS 装好后,必须先把每台节点以 Arc-enabled Server 身份注册到 Azure,再做 Cluster 部署。
4.1 两种 Arc 注册路径
|------------------------|-------------------|-------------------------|
| 路径 | 条件 | 优势 |
| 5A: 不走 Arc Gateway | 内网已有完备出站白名单 | 配置简单,azloc-2503 及以下默认路径 |
| 5B: 走 Arc Gateway | 2506+ 部署,需要缩减出站端点 | 可显著减少需要开放的出站终结点数量 |
4.2 不走 Arc Gateway 注册(传统)
📌 Portal 默认 ------ 2503 及以前无 Arc Gateway 概念,azloc-2604 起仍是可选项
关键步骤 (deployment-arc-register-server):
- 每节点已加入 AD(2604+ 可在 SConfig 阶段加,见 3.4)
- 节点上以部署用户身份运行
az arcdown/ PowerShellConnect-AzAccount+Register-AzStackHCI - 节点会自动安装 Arc agent、收集系统信息
- 验证:在门户 Microsoft Azure Arc → Servers 中能看到所有节点
⚠️ 官方硬要求 :节点名一旦在 Azure Arc 中注册,不再支持修改计算机名(会与 Azure 资源 ID 失配)
4.3 走 Arc Gateway 注册(2506+)
💡 企业最佳实践 ------ 出站端点受限或想收敛防火墙规则时强烈推荐
Arc Gateway 资源创建 (任选一种,详见 deployment-azure-arc-gateway-overview):
# PowerShell(推荐)
New-AzArcgateway `
-name "arcgw-prod-eastasia" `
-resource-group "rg-arc-gateway" `
-location "eastasia" `
-subscription "<subscription-id>" `
-gateway-type public `
-allowed-features *
# Azure CLI
az extension add -n arcgateway
az arcgateway create \
--name "arcgw-prod-eastasia" \
--resource-group "rg-arc-gateway" \
--location "eastasia"
⚠️ 官方当前已知问题:创建可能要 2 小时,因 Azure Front Door 临时变更偶发超时失败,重试即可。
部署时关联 Arc Gateway(azloc-2606 部署时参数):
- Portal:实例创建向导的"Networking"步骤选已有 Arc Gateway
- ARM 模板:在
arcNodeResourceIds、arcGatewayResourceId参数中传入
Arc Gateway 的关键限制(官方明示):
- 不支持 TLS terminating proxies(企业代理若做 SSL inspection 需放行或绕开)
- 不可在部署后启用 Arc Gateway ------ 必须在创建 Azure Local 实例时关联
- Azure Local 主机的 Arc HTTPS 流量统一走 Arc proxy(
http://localhost:40343) - AKS on Azure Local 的 Arc Gateway 仍处 preview
Arc Gateway 不接管的部分端点(仍需在防火墙放行):
- 官方 deployment-azure-arc-gateway-overview 表格列出 23 个端点
- 其中 5 个 Windows Update 端点(
*.windowsupdate.com等)在 2506+ 新部署中不需要放行 - 不被 Arc Gateway 接管的端点主要包括:
- Bootstrap:
https://aka.ms、https://azurestackreleases.download.prss.microsoft.com - Arc 注册:
https://login.microsoftonline.com、https://<region>.login.microsoft.com、https://management.azure.com、https://gbl.his.arc.azure.com - Key Vault:
https://<yourkeyvaultname>.vault.azure.net - Cloud Witness:
https://<yourblobstorageforcloudwitnessname>.blob.core.windows.net - 7 个 OCSP/CRL HTTP 端点(注意是 HTTP 不是 HTTPS)
- Bootstrap:
4.4 注册后的 Az Local 验证
# 在每节点上验证
Get-AzStackHci
或在门户中:Microsoft Azure Arc → Servers → 看到所有节点 Online
5. Phase 05 --- 群集部署(官方 Step 6:Portal 或 ARM)
⚠️ 官方硬要求 ------ 必须用以下两种方式之一:Azure Portal 向导 或 Azure 资源管理器(ARM)模板
5.1 部署方式总览
|------------------------------|-----------------------|----------------------|
| 方式 | 工具 | 适用 |
| 6A: Azure Portal 向导 | 浏览器 | 首次部署、UI 引导、学习路径 |
| 6B: ARM 模板 | 门户 / PowerShell / CLI | 可重复部署、CI/CD 集成、企业多环境 |
| 附: AzCLI / Az PowerShell | CLI | 介于两者之间,脚本化但仍是单实例 |
📌 Portal 默认 ------ azloc-2606 默认提供 Portal 向导。ARM 模板推荐至少第一次用门户走一遍,再导出 ARM 做后续。
5.2 Portal 部署流程(deploy-via-portal)
- Portal → Azure Local → Create instance
- Basics :
- Subscription、Resource group、Instance name、Region(与 Arc Gateway 一致)
- Key Vault 模式:选择已有 KV(当前不支持 Private Endpoint)
- Setup & Network :
- 节点名(Arc 已注册列表中选)
- Cluster 名(NetBIOS ≤ 15 字符,FQDN 不冲突)
- 部署凭据(LCM 用户的用户名/密码,与 AD 准备时一致)
- OU 路径(与 AD 准备时一致)
- Network ATC intent:Portal 根据 5.1 拓扑表自动决定可用选项
- 💡 企业最佳实践:intent 类型(VLAN/IP/子网/MTU)由 Network ATC 统一管理,部署后建议不要再手动改网卡属性
- Security :
- Cloud Witness 存储账户 :选已有 Storage Account 或新建。建议 (Recommended)Witness 存储账户与 Azure Local 实例位于相同 Region,以降低延迟并简化管理;Portal 部署时通常默认同 region。
- BitLocker 加密:默认开启(生产建议开)
- Review + Create :
- 官方典型时间约 2--3 小时;实际部署时间受节点数量、硬件性能、网络速度及 Azure 区域响应影响(y 老师 v4 反馈软化)
- 部署期间不要重启节点
- 可在 Resource Group → cluster 资源 → Deployments 标签查看进度
- Seed Machine(第一台触发的节点)会先进入 ARC 资源状态轮询
- 耗时最长步骤 :"Deploy Moc and ARB Stack"(Microsoft On-premises Cloud + Azure Arc Resource Bridge)官方文档示例 40-45 分钟,实际 30-60 分钟,取决于硬件性能和网络环境(y 老师 v4 反馈区间)
Portal 三种部署入口(2506+ 新增):
- New configuration(标准向导)
- Template spec(门户中预存的 ARM 模板)
- QuickStart template(官方快速启动模板)
5.3 ARM 模板部署(deployment-azure-resource-manager-template)
⚠️ 官方硬要求 ------ 2503+ 部署必须选
create-cluster模板;2503 之前是create-cluster-2411.3。所有参数都必须填,包含 array 占位符[""]。
官方推荐路径 :Portal → Template deployment (deploy using custom templates) → Quickstart template → 过滤 azurestackhci/create-cluster → Select template。
官方两阶段流程(重要):
- Validation 阶段 :只创建所有 Azure 资源并验证就绪性,不实际部署 cluster
- 约 10 分钟完成
- Deploy 阶段 :实际部署 cluster
- 总时长 2.5-3 小时(多步中 "Deploy Moc and ARB Stack" 单步官方示例 40-45 分钟,实际 30-60 分钟,取决于硬件性能和网络环境)
在 Portal 中切换模式:
- 初始 deploymentMode =
Validate,部署完成后 Redeploy - 重新加载参数 JSON,将 deploymentMode 改为
Deploy - 再次 Review + Create
核心参数 (azuredeploy.parameters.json 关键字段):
|--------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 参数 | 说明 |
| deploymentMode | Validate 或 Deploy |
| keyVaultName | Key Vault 名称,存 cluster 密钥 |
| softDeleteRetentionDays | 7-90 天,不能后续更改 |
| diagnosticStorageAccountName | KV 审计日志存储账户(LRS,带锁) |
| logsRetentionInDays | 0 = 永久保留 |
| storageAccountType | 如 Standard_LRS |
| clusterName | Azure 端显示名,必须与任一节点名不同 |
| location | Azure 资源 region |
| tenantId | Microsoft Entra tenant |
| witnessType | 两节点集群必须配置 Witness。Azure Portal 默认采用 Cloud Witness,也支持 File Share Witness(取决于部署方式)。Azure Local 部署流程(Portal 与 ARM 模板)默认 采用 Cloud Witness,ARM 参数中两节点必须填 Cloud;3+ 节点可留空。File Share Witness 在 Azure Local 部署流程中不被原生支持,如需在 Windows 集群层面手动配置,不在 Azure Local 集中管理范围内(仅限特殊场景)。(y 老师 v4 反馈 + 事实核实) |
| arcNodeResourceIds | 各节点的 Arc 资源 ID 数组 |
| arcGatewayResourceId | 2506+ Arc Gateway 资源 ID(可选) |
| hciResourceProviderObjectID | Azure Local RP SPN Object ID(租户内唯一) |
| arbDeploymentAppID | 2503 之前的 ARB SPN Client ID |
| arbDeploymentAppSecret | 2503 之前的 ARB SPN Client Secret |
| arbDeploymentSPNObjectID | 2503 之前的 ARB SPN Object ID |
Azure Local RP SPN Object ID 获取 (必填):
# PowerShell 方式
(Get-AzADServicePrincipal -ApplicationId "00001111-aaaa-2222-bbbb-3333cccc4444").Id
# CLI 方式
az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[0].id" -o tsv
⚠️ 官方硬要求 ------
00001111-aaaa-2222-bbbb-3333cccc4444是 Azure Local RP 在 Entra 中的固定 Application ID,所有租户通用。
2512+ 简化(Preview) :ARB SPN 流程(arbDeploymentAppID / arbDeploymentSPNObjectID / arbDeploymentAppSecret)不再需要 ,ARM 模板内部自动处理。注:自 Azure Local 2512(Preview)开始,ARB SPN 流程自动化(y 老师 v4 反馈新增 Preview 标注)。
PowerShell 部署命令:
New-AzResourceGroupDeployment `
-ResourceGroupName "rg-azlocal-prod-01" `
-TemplateUri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.azurestackhci/create-cluster/azuredeploy.json" `
-TemplateParameterFile "azuredeploy.parameters.json"
官方建议:第一次部署走 Portal 了解流程,后续多实例用 ARM 模板(at-scale 场景)。
📌 Portal 默认 ------ 2506+ Portal 新增 Template spec 和 QuickStart template 两种内置入口,不再需要手动选 Quickstart filter。
5.4 Network ATC 与 VLAN
💡 企业最佳实践 ------ Network ATC 是 Azure Local 推荐的网络自动化机制,由 Microsoft 持续更新。Azure Local 部署期间会自动配置网络 intent,部署后可手动调整。
来源:Network ATC overview + Deploy host networking with Network ATC
5.4.0 Network ATC 职责范围
⚠️ 官方硬要求 / 关键事实 ------ Network ATC 仅负责 Intent 管理的网络(Management / Compute / Storage intent),不负责业务网络(Workload VLAN)。业务网络(虚拟机 / AKS / 业务流量所在的 VLAN)需管理员自行规划和配置,不在 Network ATC 自动化范围内。
5.4.1 6 种官方 intent 模板
|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|
| 模板 | 命令 | 适用场景 |
| Fully converged | Add-NetIntent -Name ConvergedIntent -Management -Compute -Storage -AdapterName pNIC01, pNIC02 | 双网卡小规模部署(最简) |
| Compute+Storage 融合 + 独立 Management | Add-NetIntent -Name Mgmt -Management -AdapterName pNIC01, pNIC02<br>Add-NetIntent -Name Compute_Storage -Compute -Storage -AdapterName pNIC03, pNIC04 | 4 网卡,Mgmt 隔离 |
| Fully disaggregated | Add-NetIntent -Name Mgmt -Management -AdapterName pNIC01, pNIC02<br>Add-NetIntent -Name Compute -Compute -AdapterName pNIC03, pNIC04<br>Add-NetIntent -Name Storage -Storage -AdapterName pNIC05, pNIC06 | 6+ 网卡,三者完全隔离 |
| Storage-only | Add-NetIntent -Name Storage -Storage -AdapterName pNIC05, pNIC06 | 仅对存储 intent 托管 |
| Compute+Management | Add-NetIntent -Name Management_Compute -Management -Compute -AdapterName pNIC01, pNIC02 | 不需要独立存储(不常见) |
| Multiple compute | Add-NetIntent -Name Compute1 -Compute -AdapterName pNIC03, pNIC04<br>Add-NetIntent -Name Compute2 -Compute -AdapterName pNIC05, pNIC06 | 多计算交换机(虚拟化场景) |
5.4.2 Storage VLAN 与默认 IP
📌 示例值,非产品硬默认 ------ 711/712 与 10.71.x.x 是 Microsoft 官方文档示例值 ,azlocal-toolkit / QuickStart ARM 模板的 Storage VLAN / IP 默认也用这组。官方未将 Storage VLAN 固定为 711 。企业可按网络规划自定义(如 4101/4102),但需在 TOR 交换机上同步放行。
|--------------------|-------------|---------------|
| Adapter Intent | 默认 VLAN | 默认 IP 网段 |
| Management | 不修改(继承物理网络) | DHCP / 静态 |
| Storage Adapter 1 | 711(示例) | 10.71.1.X(示例) |
| Storage Adapter 2 | 712(示例) | 10.71.2.X(示例) |
| Storage Adapter 3 | 713(示例) | 10.71.3.X(示例) |
| Storage Adapter 4 | 714(示例) | 10.71.4.X(示例) |
| Storage Adapter 5 | 715(示例) | 10.71.5.X(示例) |
| Storage Adapter 6 | 716(示例) | 10.71.6.X(示例) |
| Storage Adapter 7 | 717(示例) | 10.71.7.X(示例) |
| Storage Adapter 8 | 718(示例) | 10.71.8.X(示例) |
| Future Use | 719(示例) | --- |
💡 企业最佳实践 :Microsoft 示例模板通常使用 10.71.x.x 网络,仅作为示例,生产环境建议按照企业 IP 规划配置(y 老师 v4 反馈措辞)。
覆盖示例:
# 自定义 VLAN
Add-NetIntent -Name MyIntent -StorageVLANs 4101, 4102 -AdapterName pNIC01, pNIC02
# 关闭自动 IP 分配,手动指定
$StorageOverride = New-NetIntentStorageOverrides
$StorageOverride.EnableAutomaticIPGeneration = $false
$StorageOverride.StorageIPV4Subnet = "10.50.0.0/24"
Add-NetIntent -Name MyIntent -Storage -Compute -AdapterName "pNIC01","pNIC02" -StorageOverrides $StorageOverride
💡 企业最佳实践 :如企业内网已使用 10.71.0.0/16 段,部署前先关掉自动分配,手动指定不冲突的子网。
5.4.3 默认 Cluster Network Features
|--------------------------------------------|--------------------------------|
| 属性 | 默认值 |
| EnableNetworkNaming | $true |
| EnableLiveMigrationNetworkSelection | $true |
| EnableVirtualMachineMigrationPerformance | $true |
| VirtualMachineMigrationPerformanceOption | SMB / TCP / Compression(系统自动选) |
| MaximumVirtualMachineMigrations | 1(范围 1-10) |
| MaximumSMBMigrationBandwidthInGbps | 自动计算 |
5.4.4 默认 DCB(Data Center Bridging)带宽分配
📌 Network ATC 默认 ------ 物理交换机也需按此配置
|------------|-------------------|-----------|----------------------------|
| 策略 | 用途 | 默认优先级 | 默认带宽预留 |
| Cluster | Cluster Heartbeat | 7 | 1-2%(≤10G 适配器 2%,>10G 1%) |
| SMB_Direct | RDMA 存储流量 | 3 | 50% |
| Default | 其他流量 | 0 | 剩余 |
5.4.5 Network ATC 硬性要求
- ⚠️ 官方硬要求 :每个 intent 内的物理网卡必须对称(同品牌/型号/速度/PCI 插槽位置)
- ⚠️ 官方硬要求 :每个物理网卡在所有节点上同名
- ⚠️ 官方硬要求:Windows Server 2025+(Windows Server 集群)或 azlocal 2311.2+(Azure Local)
- ⚠️ 官方硬要求:必装功能 NetworkATC、Hyper-V、Failover-Clustering、Data-Center-Bridging、FS-SMBBW
- 💡 企业最佳实践 :同一 intent 的网线插在相同 PCI 槽位,便于自动化命名
5.4.6 Remove-NetIntent 注意事项
⚠️ 官方硬要求 ------
Remove-NetIntent不会 清除已创建的 vSwitch 和 NetQoS 配置(设计上保护用户)。要彻底清理需用官方提供的完整清理脚本(详见 manage-network-atc "Remove an intent" 章节)。
6. Phase 06 --- 部署后配置(Post-Deployment)
💡 企业最佳实践 ------ 官方"部署完成"仅意味着 cluster 可用;生产就绪需做以下配置
6.1 注册 Microsoft 资源(监控/计费前提)
Register-AzResourceProvider -ProviderNamespace Microsoft.Insights
Register-AzResourceProvider -ProviderNamespace Microsoft.AlertsManagement
6.2 启用 Monitor / Log Analytics
- 在实例详情中接 Log Analytics Workspace
- 推荐 Metric Alert 规则:CPU > 80%、存储延迟 > 20ms、节点离线
6.3 备份与灾难恢复
- 配置 Azure Backup for Azure Local(System Center DPM 或 MABS 集成)
- 异地见证:第二个实例配 Remote DR,配置 Site Recovery
6.4 安全基线
- Defender for Cloud 启用 Standard 计划
- Azure Policy 分配
Azure Local 2410+ 治理策略initiative - Entra ID 启用 PIM(Privileged Identity Management)控制订阅管理员角色
- 关闭 LCM 用户对 Azure 资源的写权限,只保留只读 + 凭据旋转
6.5 更新与补丁
- Azure Update Manager 接管 Windows Update 调度
- SBE 升级:OEM 渠道获取
- OS 季度更新(azloc-2604/2605/2606/...)按需滚动
6.6 工作负载接入
- 创建 Workload 网络(atc 之外的自定义 VLAN)
- 部署 AKS on Azure Local(可选)
- 创建 Arc 化的 VM、AKS 集群
7. 官方 Azure 准备 + 部署核对表
|----------------------------------------------|--------|-------------------------------------|
| 项 | 状态 | 备注 |
| 订阅已注册 13 个 RP | ☐ | 见 Part 2 §3.2 |
| 部署用户有 Owner + 3 个 Entra 角色 | ☐ | 见 Part 2 §4.2 |
| AD 中创建专用 OU | ☐ | New-HciAdObjectsPreCreation |
| LCM 用户符合密码策略 | ☐ | 14 字符 + 复杂度 |
| LCM 用户名避免 admin/Administrator/本地 admin 同名 | ☐ | y 老师 v4 反馈 |
| OU 路径不含禁用字符 | ☐ | & , " ' < > 禁用 |
| 节点 OS 装好且 Administrator 凭据统一 | ☐ | SConfig 阶段 |
| 节点未在 SConfig / AUM 触发 Windows Update | ☐ | ⚠️ 会导致部署失败 |
| DNS 服务器规划好 | ☐ | 部署后不推荐通过部署流程改 |
| 时间服务器同步成功 | ☐ | w32tm 验证 |
| 节点已加入 AD(部署前/部署时) | ☐ | 2604+ 可前加 |
| 节点已注册为 Arc-enabled Server | ☐ | 5A 或 5B |
| Arc Gateway 已创建(如选 5B) | ☐ | 2506+ 支持 |
| Cloud Witness Storage Account 就绪(建议同 region) | ☐ | portal/ARM 部署时选 |
| Key Vault 就绪(如选本地身份模式) | ☐ | RBAC 启用,PE 不支持 |
| 出站端点全部放行 | ☐ | 见 Part 2 §7 |
| Environment Checker 全部通过 | ☐ | Test-AzStackHciEnvironmentChecker |
8. Environment Checker 出站端点 + 部署检查
⚠️ 官方硬要求 ------ 部署前必须用 Environment Checker 跑一遍;任意关键项失败都应先解决
8.1 Environment Checker 用法
# 安装与运行
Install-Module AzStackHci.EnvironmentChecker -Force
$Parameters = @{
ComputerNames = "node01.contoso.com", "node02.contoso.com"
DeploymentUserCredential = (Get-Credential)
}
Invoke-EnvironmentChecker @Parameters
8.2 部署前必检
- AD 连通性
- 凭据权限
- 网络连通性
- 硬件合规
- 已注册 RP
8.3 完整出站端点清单
详见 Part 2 §7。不重复列,Part 4 强调以下三类在部署期间高频用到:
- Arc 注册:
*.his.arc.azure.com、*.obo.arc.azure.com:8084、login.microsoftonline.com - Cluster 部署:
management.azure.com、*.graph.windows.net - Key Vault(如使用):
<vault>.vault.azure.net
9. Arc Gateway 关键事实速查
|-----------------------|-----------------------------------------------------|
| 维度 | 事实 |
| 可用版本 | 2506+ 部署 |
| 创建方式 | Portal / AzCLI / PowerShell |
| 创建时长 | 官方文档示例 9-10 分钟(当前因 Azure Front Door 临时变更,可能最长 2 小时) |
| 出站端点缩减 | 官方表格列出 23 个端点,2506+ 部署其中 18 个仍需放行(仅接管其中一部分) |
| TLS terminating proxy | ❌ 不支持 |
| 部署后启用 | ❌ 不支持 |
| 跨订阅使用 | 同租户可;Azure Local 必须在同订阅;Workload 可分订阅 |
| HTTP 流量 | ❌ 不代理;仍需放行 |
| 关联存储 | Cluster metadata、Arc Agent |
| 删除约束 | 必须先 detach 所有 Arc-enabled resource |
| AKS 关联 | Preview 状态 |
10. Azure Policy 与治理(新增)
💡 企业最佳实践 ------ azloc-2410+ 起 Azure Policy 接管大部分配置巡检
10.1 内置 Initiative
- Configure Azure Local machines to run Azure Arc agent
- Azure Local machines should be configured securely
- 详见 Microsoft Learn Azure Policy 索引
10.2 常见自定义策略
- 强制实例必须接 Log Analytics
- 强制实例必须开 Defender
- 强制实例必须用 CSE Witness
11. 完整交付物清单
11.1 Azure 端
- Resource Group(建议每实例一 RG)
- Azure Local instance 资源
- 13 个 RP 全部 Registered
- Key Vault(如用 Local Identity 模式)
- Storage Account(Cloud Witness,建议同 region)
- Arc Gateway 资源(如用)
- Log Analytics Workspace
- Azure Backup Vault
- Defender for Cloud 配置
- Azure Policy Assignment
11.2 AD 端
- 专用 OU
- LCM 用户(部署用 + 永久保留)
- 部署用户对 OU 有创建/修改权限
11.3 节点端
- OS 安装完成
- 统一本地 Administrator 凭据
- 加入域(如选预加入)
- Arc 注册完成
- BMC 配置
- 时间同步
11.4 文档化
- 节点序列号、IP 分配表
- 部署凭据的密钥保管位置
- 灾备切换预案
- 更新/补丁窗口
12. 关键风险与避坑
- 不要在 SConfig / Azure Update Manager 中装 Windows Update ------ ⚠️ 官方明示会导致部署失败;其他渠道也建议避免,由 LCM 统一管理
- 部署流程不推荐修改 DNS ------ Azure Local 部署完成后,不支持通过 Portal 修改部署网络中的 DNS 配置。如需调整,应按照官方 Network ATC 流程重新配置网络
- Arc Gateway 不可部署后启用 ------ 必须在创建 Azure Local 实例时关联
- Arc Gateway 不支持 TLS terminating proxy ------ 企业 SSL inspection 需放行
- 节点名注册后不可改 ------ AD 计算机名 → Azure Arc 资源 ID 绑定
- OU 路径不能含
& , " ' < >------ 准备时避免 - LCM 用户名避免 admin/Administrator/本地 admin 同名 ------ 官方明文限制
- LCM 用户密码必须 ≥14 字符 ------ 满足 Azure 密码策略
- 部署失败不要暴力重试 ------ 先查 Arc agent 日志和 Cluster validation report
- 多实例 LCM 用户用独立账号 ------ 一台被攻陷不影响其他
- Cloud Witness 存储账户建议与 cluster 同 region ------ 跨 region 会增加 Quorum 判定延迟;2 节点集群 witnessType 必须 =
Cloud(ARM 参数中两节点必须填Cloud;3+ 节点可空) - Re-deployment 必须用官方 Cleanup Script ------ 不要手动改注册表
- Network ATC 网卡必须对称 ------ 同一 intent 内的 pNIC 同品牌/型号/速度/PCI 槽位;否则会 PhysicalAdapterNotFound
- 默认存储 IP 段 10.71.0.0/16 冲突 ------ 部署前检查内网;冲突则关闭自动分配
- Remove-NetIntent 不清环境 ------ vSwitch / NetQoS 需手动清理或用官方脚本
- ARM 模板第一次必须先走 Validate ------ 不跳过 Validation,否则错误信息难以定位
- arbDeploymentAppID/Secret 仅 2503 之前需要 ------ 2512+(Preview)内部处理,不必手动创建 ARB SPN
- Network ATC 适配器名前后必须一致 ------ pNIC01 在所有节点上必须同名
- MOC + ARB 部署阶段是最长步骤 ------ 30-60 分钟(官方示例 40-45)不要中断
- Seed Machine 是进度参考点 ------ ARM 部署时重点观察该节点状态
- Storage VLAN 711/712 仅是 Toolkit/官方示例值 ------ 企业可自定义,需 TOR 同步
- File Share Witness 不被 Azure Local 部署流程原生支持 ------ 仅有 Cloud Witness 选项;如需 File Share Witness 需在 Windows 集群层面手动配置(不推荐)
- 不要删除 Azure Arc Server 资源后重新部署 Cluster(v4 新增) ------ Azure Local Deployment 依赖 Arc Resource ID;删除后重部署会触发 Deployment Validation Failed。需先卸载 Cluster 再处理 Arc 资源。
- 不要手动修改 Network ATC 创建的 vSwitch(v4 新增) ------ 否则 LCM 下一次更新(patch / upgrade)可能失败,因 vSwitch 配置与 LCM 期望状态失配。
参考链接
社区文档
- azurelocal.cloud Part 4 总览
- azurelocal.cloud Part 4 子页
- 社区 6 phase:phase-01 ~ phase-06
Microsoft Learn 官方(azloc-2606 默认基线)
- Release information (version matrix)
- Deployment introduction
- Deployment prerequisites
- Prepare Active Directory
- Download OS
- Install OS with SConfig
- Register with Arc (no gateway)
- Register with Arc via Gateway
- Arc Gateway overview
- Local Identity with Key Vault
- Deploy via Portal
- Deploy via ARM template
- Arc register server permissions
- Simplified Machine Provisioning (Preview)
模板与工具
- azloc-2503+ ARM Template (GitHub)
- azurelocal-toolkit(Terraform)
- AzStackHci.EnvironmentChecker PowerShell Module
- AsHciADArtifactsPreCreationTool 10.2402
- Azure Local Supportability TSG