排查 Azure Stack HCI 版本 23H2 的Azure 门户部署验证问题
适用于:运行 2405 或更高版本的 Azure Stack HCI 版本 23H2
本文提供有关如何通过 Azure 门户 部署 Azure Stack HCI 群集期间遇到的部署验证问题进行故障排除的指导。
错误 - 部署验证失败
通过 Azure 门户 部署 Azure Stack HCI 版本 23H2 时,可能会遇到部署验证失败。 “Azure Stack HCI 网络 - 检查网络要求”验证任务失败,并出现以下错误:
Could not complete the operation. 400: Resource creation validation failed. Details:
[{"Code":"AnswerFileValidationFailed","Message":"Errors in Value Validation:\r\nPhysicalNodesValidator
found error at deploymentdata.physicalnodes[0].ipv4address: The specified for
\u0027deploymentdata.physicalnodes[0].ipv4address\u0027 is not a valid IPv4 address.
Example: 192.168.0.1 or 192.168.0.1","Target":null,"Details":null}].
如果转到Azure 门户部署中的“网络”选项卡,在“网络意向”配置中,可能会看到以下错误:
The selected physical network adapter is not binded to the management virtual switch.
原因
此问题发生在 8 月 6 日之后触发的部署上。 如果在群集上触发部署验证并且验证结果为失败,随后会重试验证,则会出现此问题。
出现此问题的原因如下:
- 设备上的验证为网络相关测试创建 VM 交换机,并在测试结束时被删除。
DeviceManagementExtension
扩展未检测 VM 交换机的删除。
建议的解决方案
多步骤解决过程包括以下步骤:
注意
本文中的所有步骤都需要在种子节点上执行。
从种子节点中删除锁
按照以下步骤从种子节点中删除锁:
- 若要删除锁,在Azure 门户中,请通过资源组或计算机 - Azure Arc 转到该对象。
- 在左窗格中,转到 “设置 > 锁定”。 应会看到名为 DoNotDelete 的锁。 这是在载入节点时创建的自动资源锁。
- 针对锁选择“ 删除 ”。
如果在不删除锁的情况下尝试下一部分中的步骤,“ 删除 ”命令将失败,并出现以下错误:
Some resources failed to be deleted (run with `--verbose` for more information):
/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default
下面是使用开关运行时 --verbose
的示例输出:
(ScopeLocked) The scope '/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' cannot perform delete operation because following scope(s) are locked: '/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>'. Please remove the lock and try again.
Code: ScopeLocked
Message: The scope '/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' cannot perform delete operation because following scope(s) are locked: '/subscriptions/<subid>/resourceGroups/<rgname>/providers/Microsoft.HybridCompute/machines/<Machine Name>'. Please remove the lock and try again.
删除验证错误
删除锁后,请按照以下步骤删除验证错误。
连接到种子节点。 运行以下 PowerShell 命令:
Get-VMSwitch
检查命令的输出中是否有任何意外的
Get-VMSwitch
VM 交换机,例如,在网络验证步骤中创建的交换机,其名称类似于:"ConvergedSwitch(compute_management)"
交换机的确切名称取决于所选的网络意向配置。如果未有意创建的 VM 交换机存在,请删除该交换机。 运行以下 PowerShell 命令:
Remove-VMSwitch -Name "<VM Switch Name>" -Force
请确保使用命令中的
Get-VMSwitch
VM 交换机名称。 如果未有意创建 VM 交换机,该Get-VMSwitch
命令没有结果。 失败的原因是网络验证步骤清理了 VM 交换机,但DeviceManagementExtension
未检测到清理。
继续执行清理步骤。
使用不正确的 VM 交换机信息清理 Edge 设备 Azure 资源
删除设备上的 VM 交换机后,通过 Azure CLI 清理包含不正确 VM 交换机信息的边缘设备 ARM 资源。
在可访问 Azure 的客户端上,验证安装或安装 AZ CLI: 在 Windows 上安装 Azure CLI
- 可以通过运行以下方法验证安装:
az
- 如果已安装,则输出包含
"Welcome to Azure CLI!"
可用命令的消息。
- 可以通过运行以下方法验证安装:
使用 Azure CLI 登录到 Azure。 运行以下命令:
az login --tenant <tenant ID> --use-device-code
有关详细信息, 请使用 Azure CLI 以交互方式登录
若要设置特定订阅,请运行以下命令:
az account set --subscription "<Subscription ID>"
将上述示例命令中的值替换为相应的值
<Subscription ID>
。输出资源中
edgeDevices
存储的数据,该数据存储错误存储的 VM 交换机信息。 运行以下命令:az resource show --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default"
将上述示例命令中的值替换为相应的值:
<Subscription ID>
、<Resource Group Name>
和<Machine Name>
。下面是示例输出:
az resource show --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/ASRR1N26R15U33/providers/Microsoft.AzureStackHCI/edgeDevices/default"
此命令的输出显示有关 <命令中使用的计算机名称> 的相当详细的信息。 在输出底部附近,有一个部分
"switchDetails"
可能显示以下内容(这是在设备上创建和清理的验证 VM 交换机),但 DeviceManagementExtension 未检测到并更新了云端):"switchName": "ConvergedSwitch(managementcompute)",
"switchType": "External"
确认
show
通过输出edgeDevices
数据并确认"switchDetails"
命令后,可能需要从 ARM 获取资源,delete
以便从种子节点适当地刷新该命令。注意
edgeDevices
删除数据是一项安全操作,但只能在显式声明时执行。 除非建议执行此操作,否则不要执行此操作。edgeDevices
删除资源,该资源存储的 VM 交换机信息不正确。 运行以下命令:az resource delete --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default"
将值(还记得删除 <> 字符)替换为以下项的相应值:
<subGUID>
<resourceGROUPNAME>
<Machine Name>
这是同一资源
--ids
show
,因此只能使用相同的字符串。 事实上,你只需在控制台中“向上箭头”并替换为show
delete
。下面是示例输出:
`az resource delete --ids "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default"
运行时,此命令没有输出。 该命令正常工作并返回命令提示符,或显示错误。 它不应显示错误,但如果出现错误,则需要进行更多故障排除。
再次运行
show
命令,验证是否删除了资源。 下面是示例输出:(ResourceNotFound) The resource 'Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' could not be found. Code: ResourceNotFound Message: The resource 'Microsoft.HybridCompute/machines/<Machine Name>/providers/Microsoft.AzureStackHCI/edgeDevices/default' could not be found.
刷新云 edgeDevices
数据
删除 ARM 资源并删除所有意外的 VM 交换机后,请再次刷新云端 edgeDevices
数据。
按照以下步骤刷新云数据:
DeviceManagementService
重启种子节点上。 运行以下 PowerShell 命令:Restart-Service DeviceManagementService
等待几分钟,然后验证云
edgeDevices
数据是否已更新并反映当前状态。show
再次运行该命令并查看输出。 确保输出不再包含任何意外的 VM 开关,即:"switchName": "ConvergedSwitch(managementcompute)",
"switchType": "External"
通过Azure 门户重启部署
现在,使用设备和云数据重新同步,可以转到Azure 门户并提供部署输入。 上一步阻止先前尝试的任何缓存信息。
在 Azure 门户中执行以下步骤:
在“基本信息”选项卡上,提供输入(通过再次从下拉列表中选择)到顶部的字段。
取消选中页面底部的节点。
重新验证重新选择的节点。
确认后续页面上的信息。 应会看到以下更改:
- 在 “网络 ”页上,不应再看到
The selected physical network adapter is not binded to the management virtual Switch
以前可能看到的错误。 - 在末尾的 “验证 ”页上,如果超过原始问题,
deploymentdata.physicalnodes[0].ipv4address is not a valid IPv4 address
则不会显示错误。
- 在 “网络 ”页上,不应再看到
如果未出现其他验证问题,请启动部署。
在种子节点资源上重新创建锁
缓解完成后,强烈建议在资源上重新创建锁。
按照以下步骤重新创建锁:
- 在Azure 门户中,通过资源组或计算机 - Azure Arc 转到对象。
- 转到 “设置 > 锁定”。
- 选择页面顶部的“ + 添加 ”。
- 对于 锁定名称,请输入 DoNotDelete。
- 对于 “锁定类型”,请从下拉列表中选择“ 删除 ”。
- 选择“确定”保存锁。