你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Azure 运营商关系群集中的 BMM 预配问题

作为群集部署操作的一部分,裸机 (BMM) 预配了参与群集所需的角色。 本文档支持使用 Azure CLI、Azure 门户和服务器基板管理控制器 (BMC) 排查常见的预配问题。 对于 Azure 运营商关系平台,基础服务器硬件使用集成的 Dell 远程访问控制器 (iDRAC) 作为 BMC。 预配使用预启动执行环境 (PXE) 接口在 BMM 上加载操作系统 (OS)。

先决条件

  1. 安装最新版本的相应 CLI 扩展
  2. 收集以下信息:
    • 订阅 ID (SUBSCRIPTION)
    • 群集名称 (CLUSTER)
    • 资源组 (CLUSTER_RG)
    • 托管资源组 (CLUSTER_MRG)
  3. 请求订阅访问权限以运行 Azure 运营商关系网络结构 (NF) 和网络云 CLI 扩展命令。
  4. 登录到 Azure CLI 并选择部署群集的订阅。

BMM 角色

对于特定版本,需要有相关角色才能管理和操作基础 kubernetes 群集。

将以下角色分配到 BMM 资源(请查看 BMM 角色参考):

  • 控制平面:BMM 负责运行群集的 kubernetes 控制平面代理。
  • 管理平面:BMM 负责运行平台代理,包括控制器和扩展。
  • 计算平面:BMM 负责运行实际租户工作负载,包括 kubernetes 群集和虚拟机。

列出 BMM 状态

以下命令将列出托管资源组中处于简单状态的所有 bareMetalMachineName 资源:

az networkcloud baremetalmachine list -g $CLUSTER_MRG -o table

Name          ResourceGroup                  DetailedStatus    DetailedStatusMessage
------------  -----------------------------  ----------------  ---------------------------------------
BMM_NAME      CLUSTER_MRG                    STATUS            STATUS_MSG

STATUS 进程在 BMM 预配过程中经历下表中定义的阶段(请参阅 Azure 运营商关系计算概念中的 BMM 状态):

阶段 操作
Registering 验证 BMC 连接/BMC 凭据并将 BMM 添加到预配服务。
Preparing 重启 BMM,重置 BMC 并验证电源状态。
Inspecting 更新固件、应用 BIOS 设置并配置存储。
Available 指示 BMM 已准备好安装操作系统。
Provisioning 指示正在 BMM 上安装操作系统映像。 安装操作系统后,BMM 尝试加入群集。
Provisioned 指示 BMM 已成功预配并加入群集。
Deprovisioning 指示 BMM 预配失败。 预配服务会清理资源以便重试。
Failed 指示 BMM 预配失败且需要手动恢复。 所有重试次数已用尽。

在任何阶段,BMM 详细状态都设置为 Failed。 如果出现以下任何中断,阶段会遭到阻止:

  • BMC 不可用。
  • 网络端口已关闭。
  • 硬件组件失败。

若要获取 BMM 的更详细状态,请运行:

az networkcloud baremetalmachine list -g $CLUSTER_MRG --query "sort_by([].{name:name,readyState:readyState,provisioningState:provisioningState,detailedStatus:detailedStatus,detailedStatusMessage:detailedStatusMessage,powerState:powerState,machineRoles:machineRoles| join(', ', @),createdAt:systemData.createdAt}, &name)" --output table

Name            ReadyState    ProvisioningState    DetailedStatus    DetailedStatusMessage                      PowerState    MachineRoles                                      CreatedAt
------------    ----------    -----------------    --------------    -----------------------------------------  ----------    ------------------------------------------------  -----------
BMM_NAME        RSTATE        PROV_STATE           STATUS            STATUS_MSG                                 POWER_STATE   BMM_ROLE                                          CREATE_DATE

下表列出了定义输出的位置。

输出 定义
BMM_NAME BMM 名称。
RSTATE 群集参与状态(TrueFalse)。
PROV_STATE 预配状态(SucceededFailed)。
STATUS 预配详细状态(RegisteringPreparingInspectingAvailableProvisioningProvisionedDeprovisioningFailed)。
STATUS_MSG 详细的预配状态消息。
POWER_STATE BMM 的电源状态(OnOff)。
BMM_ROLE BMM 群集角色(control-planemanagement-planecompute-plane)。
CREATE_DATE BMM 创建日期。

例如:

x01dev01c01w01  True          Succeeded            Provisioned       The OS is provisioned to the machine       On            platform.afo-nc.microsoft.com/compute-plane=true  2024-05-03T15:12:48.0934793Z
x01dev01c01w01  False         Failed               Preparing         Preparing for provisioning of the machine  Off           platform.afo-nc.microsoft.com/compute-plane=true  2024-05-03T15:12:48.0934793Z

BMM 详细信息

若要显示单个 BMM 的详细信息和状态,请运行:

az networkcloud baremetalmachine show -g $CLUSTER_MRG -n $BMM_NAME

若要显示特定于故障排除 BMM 详细信息,请运行:

az networkcloud baremetalmachine show -g $CLUSTER_MRG -n $BMM_NAME --query "{name:name,BootMAC:bootMacAddress,BMCMAC:bmcMacAddress,Connect:bmcConnectionString,SN:serialNumber,rackId:rackId,RackSlot:rackSlot}" -o table

排查失败预配状态的原因

以下情况可能会导致预配失败。

错误类型 解决方法
BMC 显示 Backplane Comm 严重错误。 1.运行 BMM 远程 flea drain。
2.执行 BMM 物理 flea drain。
3.运行 BMM replace 操作。
来自 BMC 的启动 (PXE) 网络数据响应为空。 1.重置结构设备上的端口。
2.运行 BMM 远程 flea drain。
3.执行 BMM 物理 flea drain。
4.运行 BMM replace 操作。
启动 (PXE) MAC 地址不匹配。 1.根据 BMC 数据验证 BMM MAC 地址数据。
2.运行 BMM 远程 flea drain。
3.执行 BMM 物理 flea drain。
4.运行 BMM replace 操作。
BMC MAC 地址不匹配。 1.根据 BMC 数据验证 BMM MAC 地址数据。
2.运行 BMM 远程 flea drain。
3.执行 BMM 物理 flea drain。
4.运行 BMM replace 操作。
来自 BMC 的磁盘数据响应为空。 1.移除或更换磁盘。
2.移除或更换存储控制器。
3.运行 BMM 远程 flea drain。
4.执行 BMM 物理 flea drain。
5.运行 BMM replace 操作。
无法访问 BMC。 1.重置结构设备上的端口。
2.移除或更换线缆。
3.运行 BMM 远程 flea drain。
4.执行 BMM 物理 flea drain。
5.运行 BMM replace 操作。
BMC 登录失败。 1.更新 BMC 上的凭据。
2.运行 BMM replace 操作。
BMC 上的内存、CPU、OEM 严重错误。 1.通过移除或更换硬件来解决问题。
2.运行 BMM 远程 flea drain。
3.执行 BMM 物理 flea drain。
4.运行 BMM replace 操作。
控制台停滞在启动加载程序 (GRUB) 菜单显示画面。 1.运行 NVRAM 重置。
2.运行 BMM replace 操作。

Azure BMM 活动日志

  1. 登录到 Azure 门户
  2. 在顶部“搜索”框中搜索 BMM 名称。
  3. 从搜索结果中选择“裸机(运营商关系)”。
  4. 在服务菜单中,选择“活动日志”。
  5. 确保“时间范围”值包含预配周期。
  6. 展开 BareMetalMachines_Update 操作并选择任何显示 Failed 状态的 BMM。
  7. 选择“JSON”选项卡以获取详细状态消息。

查找与无效凭据或 BMC 不可用相关的故障。

确定 BMC IPv4 地址

BMC 的 IPv4 地址 (BMC_IP) 位于从名为“BMM 详细信息”的上一个部分返回的 Connect 值中。

根据 BMC 数据验证 BMM 的 MAC 地址

若要从 BMM 获取 MAC 地址信息,请运行:

az networkcloud baremetalmachine show -g $CLUSTER_MRG -n $BMM_NAME --query "{name:name,BootMAC:bootMacAddress,BMCMAC:bmcMacAddress,SN:serialNumber,rackId:rackId,RackSlot:rackSlot}" -o table

通过 Web UI 根据 BMC 验证 MAC 地址数据:

  • BMC>Dashboard:显示 BMC MAC 地址。
  • BMC>System Info>Network>Embedded.1-1-1:显示 Boot MAC 地址。

使用 racadm 从可以访问 BMC 网络的 Jumpbox 验证 MAC 地址:

racadm --nocertwarn -r $IP -u $BMC_USR -p $BMC_PWD getsysinfo | grep "MAC Address "        #BMC MAC
racadm --nocertwarn -r $IP -u $BMC_USR -p $BMC_PWD getsysinfo | grep "NIC.Embedded.1-1-1"  #Boot MAC

如果提供给群集的 MAC 地址不正确,请使用 BMM 操作中的 BMM replace 操作来更正地址。

通过 Ping 测试 BMC 连接

尝试对 BMC IPv4 地址运行 ping 命令:

  1. 从名为“确定 BMC IPv4 地址”的上一个部分中获取 IPv4 地址 (BMC_IP)。

  2. 测试对 BMC 执行的 ping

    若要从可以访问 BMC 网络的 Jumpbox 进行测试,请运行:

    ping $BMC_IP -c 3
    

    若要使用 Azure CLI 从 BMM 控制平面主机进行测试,请运行:

    az networkcloud baremetalmachine run-read-command -g $CLUSTER_MRG -n $BMM_NAME --limit-time-seconds 60 --commands "[{command:'ping',arguments:['$BMC_IP',-c,3]}]"
    

重置结构设备上的端口

如果 BMC_IP 无响应,则重置结构设备端口会重新触发端口上的自动协商并可能使其重新联机。

若要从 Azure 查找 Network Fabric 端口,请运行:

  1. 从名为“BMM 详细信息”的上一个部分获取 RackIDRackSlot 值。

  2. 在 Azure 门户中,向下钻取到 BMM 的“网络机架”机架 ID。

  3. 选择“网络设备”选项卡,然后为机架选择管理 (Mgmt) 交换器。

  4. 在“资源”下,选择“网络接口”。 然后,选择需要重置的端口的 BMC (iDRAC) 或启动 (PXE) 接口。

    收集以下信息:

    • 网络结构资源组 (NF_RG)
    • 设备名称 (NF_DEVICE_NAME)
    • 接口名称 (NF_DEVICE_INTERFACE_NAME)
  5. 重置端口:

    若要使用 Azure CLI 重置端口,请运行:

    az networkfabric interface update-admin-state -g $NF_RG --network-device-name $NF_DEVICE_NAME --resource-name $NF_DEVICE_INTERFACE_NAME --state Disable
    az networkfabric interface update-admin-state -g $NF_RG --network-device-name $NF_DEVICE_NAME --resource-name $NF_DEVICE_INTERFACE_NAME --state Enable
    

BMM 远程放电 (flea drain)

若要通过 BMC UI 对 BMM 执行远程 flea drain,请执行以下操作:

  1. 选择“BMC”>“配置”>“BIOS 设置”>“其他设置”。

  2. 在“电源周期请求”下,选择“完整电源周期”。 然后,选择“应用并重启”。

使用 racadm 从可以访问 BMC 网络的 Jumpbox 执行远程 flea drain:

racadm set bios.miscsettings.powercyclerequest FullPowerCycle
racadm jobqueue create BIOS.Setup.1-1
racadm serveraction powercycle

BMM 物理放电 (flea drain)

对于物理 flea drain,本地站点人员会亲手断开两个电源适配器上的电源线 5 分钟,然后恢复供电。 此过程可确保服务器、电容器和所有组件完全断电,并清除所有缓存数据。

重置 NVRAM

如果由于 OEM 或硬件错误导致预配失败,则启动顺序可能会在 NVRAM 中锁定为 PXE boot,而不是在启动顺序中首先显示 hddhard drive

这种情况通常在控制台上的启动加载程序阶段显示 BMM,并且在没有手动击键干预的情况下被阻止。

若要重置 NVRAM,请在 BMC UI 中使用以下序列:

  1. 选择“维护”>“诊断”>“将 iDrac 重置为出厂默认值”。

  2. 选择“放弃所有设置,但保留用户和网络设置”,然后选择“应用并重启”。

重置 BMC 密码

如果活动日志指示 BMC 上的凭据无效,请从可以访问 BMC 网络的 Jumpbox 运行以下命令:

racadm -r $BMC_IP -u $BMC_USER -p $CURRENT_PASSWORD  set iDRAC.Users.2.Password $BMC_PWD

修复后将服务器添加回群集中

修复硬件后,按照管理裸机的生命周期中的说明运行 BMM replace 操作。