Azure Local 部署之群集部署

文档版本:v4(2026-07-01) 适用版本:Azure Local 2503+ / 2604 / 2606 / 2607(azloc-2606 为当前 GA 默认基线) 资料来源:

  • Microsoft Learn 官方部署文档 learn.microsoft.com/en-us/azure/azure-local/deploy/

0.1 版本支持矩阵

来源:release-information-23h2

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):

  1. 引导介质 → 选择 English (United States) → Install now
  2. 接受许可 → 选择 Custom: Install the newer version of Azure Local only (advanced)
    1. 不支持升级安装(只支持全新安装)
  3. 选 OS 盘(系统盘)→ 等两次自动重启
  4. 首次登录时强制改 本地 Administrator 密码(≥14 字符,含大小写+数字+特殊字符)
  5. 安装 OEM 提供的 驱动 + 固件 + SBE

💡 企业最佳实践 :SBE 内容放到 C:\SBE,部署时自动检测并使用

  1. 打开 SConfig (Server Configuration tool)配置:

    1. 网络设置 (VLAN ID、DHCP、Gateway、DNS)
      1. ⚠️ 官方硬要求:Azure Local 部署完成后,不支持通过 Portal 修改部署网络中的 DNS 配置。如需调整,应按照官方 Network ATC 流程重新配置网络,因此建议部署前完成规划。(y 老师 v4 反馈修正)
    2. 时间服务器(w32tm):

    w32tm /config /manualpeerlist:"ntpserver.contoso.com" /syncfromflags:manual /update
    w32tm /query /status

  2. 可选:RDP、计算机名

  3. ⚠️ 官方硬要求 :不要通过 SConfigAzure Update Manager 安装 Windows Update(官方原文 "causes a deployment failure",限定 SConfig / AUM 两个渠道)

  4. 💡 企业最佳实践 :其他渠道的更新也建议避免。部署前不要手动安装 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):

  1. 每节点已加入 AD(2604+ 可在 SConfig 阶段加,见 3.4)
  2. 节点上以部署用户身份运行 az arcdown / PowerShell Connect-AzAccount + Register-AzStackHCI
  3. 节点会自动安装 Arc agent、收集系统信息
  4. 验证:在门户 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 模板:在 arcNodeResourceIdsarcGatewayResourceId 参数中传入

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.mshttps://azurestackreleases.download.prss.microsoft.com
    • Arc 注册:https://login.microsoftonline.comhttps://<region>.login.microsoft.comhttps://management.azure.comhttps://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

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

  1. Portal → Azure Local → Create instance
  2. Basics
    1. Subscription、Resource group、Instance name、Region(与 Arc Gateway 一致)
    2. Key Vault 模式:选择已有 KV(当前不支持 Private Endpoint
  3. Setup & Network
    1. 节点名(Arc 已注册列表中选)
    2. Cluster 名(NetBIOS ≤ 15 字符,FQDN 不冲突)
    3. 部署凭据(LCM 用户的用户名/密码,与 AD 准备时一致)
    4. OU 路径(与 AD 准备时一致)
    5. Network ATC intent:Portal 根据 5.1 拓扑表自动决定可用选项
    6. 💡 企业最佳实践:intent 类型(VLAN/IP/子网/MTU)由 Network ATC 统一管理,部署后建议不要再手动改网卡属性
  4. Security
    1. Cloud Witness 存储账户 :选已有 Storage Account 或新建。建议 (Recommended)Witness 存储账户与 Azure Local 实例位于相同 Region,以降低延迟并简化管理;Portal 部署时通常默认同 region。
    2. BitLocker 加密:默认开启(生产建议开)
  5. Review + Create
    1. 官方典型时间约 2--3 小时;实际部署时间受节点数量、硬件性能、网络速度及 Azure 区域响应影响(y 老师 v4 反馈软化)
    2. 部署期间不要重启节点
    3. 可在 Resource Group → cluster 资源 → Deployments 标签查看进度
    4. Seed Machine(第一台触发的节点)会先进入 ARC 资源状态轮询
    5. 耗时最长步骤 :"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。

官方两阶段流程(重要):

  1. Validation 阶段 :只创建所有 Azure 资源并验证就绪性,不实际部署 cluster
    1. 约 10 分钟完成
  2. Deploy 阶段 :实际部署 cluster
    1. 总时长 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 | ValidateDeploy |
| 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 specQuickStart 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:8084login.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

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. 关键风险与避坑

  1. 不要在 SConfig / Azure Update Manager 中装 Windows Update ------ ⚠️ 官方明示会导致部署失败;其他渠道也建议避免,由 LCM 统一管理
  2. 部署流程不推荐修改 DNS ------ Azure Local 部署完成后,不支持通过 Portal 修改部署网络中的 DNS 配置。如需调整,应按照官方 Network ATC 流程重新配置网络
  3. Arc Gateway 不可部署后启用 ------ 必须在创建 Azure Local 实例时关联
  4. Arc Gateway 不支持 TLS terminating proxy ------ 企业 SSL inspection 需放行
  5. 节点名注册后不可改 ------ AD 计算机名 → Azure Arc 资源 ID 绑定
  6. OU 路径不能含 & , " ' < > ------ 准备时避免
  7. LCM 用户名避免 admin/Administrator/本地 admin 同名 ------ 官方明文限制
  8. LCM 用户密码必须 ≥14 字符 ------ 满足 Azure 密码策略
  9. 部署失败不要暴力重试 ------ 先查 Arc agent 日志和 Cluster validation report
  10. 多实例 LCM 用户用独立账号 ------ 一台被攻陷不影响其他
  11. Cloud Witness 存储账户建议与 cluster 同 region ------ 跨 region 会增加 Quorum 判定延迟;2 节点集群 witnessType 必须 = Cloud(ARM 参数中两节点必须填 Cloud;3+ 节点可空)
  12. Re-deployment 必须用官方 Cleanup Script ------ 不要手动改注册表
  13. Network ATC 网卡必须对称 ------ 同一 intent 内的 pNIC 同品牌/型号/速度/PCI 槽位;否则会 PhysicalAdapterNotFound
  14. 默认存储 IP 段 10.71.0.0/16 冲突 ------ 部署前检查内网;冲突则关闭自动分配
  15. Remove-NetIntent 不清环境 ------ vSwitch / NetQoS 需手动清理或用官方脚本
  16. ARM 模板第一次必须先走 Validate ------ 不跳过 Validation,否则错误信息难以定位
  17. arbDeploymentAppID/Secret 仅 2503 之前需要 ------ 2512+(Preview)内部处理,不必手动创建 ARB SPN
  18. Network ATC 适配器名前后必须一致 ------ pNIC01 在所有节点上必须同名
  19. MOC + ARB 部署阶段是最长步骤 ------ 30-60 分钟(官方示例 40-45)不要中断
  20. Seed Machine 是进度参考点 ------ ARM 部署时重点观察该节点状态
  21. Storage VLAN 711/712 仅是 Toolkit/官方示例值 ------ 企业可自定义,需 TOR 同步
  22. File Share Witness 不被 Azure Local 部署流程原生支持 ------ 仅有 Cloud Witness 选项;如需 File Share Witness 需在 Windows 集群层面手动配置(不推荐)
  23. 不要删除 Azure Arc Server 资源后重新部署 Cluster(v4 新增) ------ Azure Local Deployment 依赖 Arc Resource ID;删除后重部署会触发 Deployment Validation Failed。需先卸载 Cluster 再处理 Arc 资源。
  24. 不要手动修改 Network ATC 创建的 vSwitch(v4 新增) ------ 否则 LCM 下一次更新(patch / upgrade)可能失败,因 vSwitch 配置与 LCM 期望状态失配。

参考链接

社区文档

Microsoft Learn 官方(azloc-2606 默认基线)

模板与工具

Network ATC

网络参考