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

裸机计算机操作的最佳做法

本文提供了裸机 (BMM) 生命周期管理操作的最佳做法。 目的是突出共同的陷阱和基本先决条件。

阅读重要的免责声明

谨慎

如果不首先咨询 Microsoft 支持人员,请不要对控制或管理平面服务器采取任何措施,这样做可能会影响 Operator Nexus 群集的完整性。

重要

拒绝针对 Kubernetes 控制平面(KCP)节点的多个中断性命令请求。 进行此检查是为了维护 Nexus 群集实例的完整性,并避免由于同时发生中断操作,多个 KCP 节点一次性无法运作。 被拒绝的干扰性操作命令可能是因为其已在另一个 KCP 节点上运行,或是因为整个 KCP 不可用。 如果多个节点变得无法运行,则会突破 Kubernetes 控制平面的正常仲裁阈值。

列出的操作被认为会干扰裸机计算机 (BMM):

  • 关闭 BMM电源
  • 重启 BMM
  • 使 BMM 不可调度(封锁并撤走,排空节点)
  • 重建 BMM 映像
  • 替换 BMM

仅保留无干扰性的操作:

  • 启动 BMM
  • 使 BMM 不可调度(封锁但不撤走,不排空节点)
  • 使 BMM 可调度(解封)

先决条件

  1. 安装最新版本的相应 CLI 扩展
  2. 请求访问权限以运行 Azure 运营商关系网络结构 (NF) 和网络云 CLI 扩展命令。
  3. 登录到 Azure CLI 并选择部署群集的订阅。
  4. 收集以下信息:
    • 订阅 ID (SUBSCRIPTION)
    • 群集名称 (CLUSTER)
    • 资源组 (CLUSTER_RG)
    • 受管理资源组 (CLUSTER_MRG) - 裸机 (BMM) 资源存在于受管理资源组中
    • 需要生命周期管理操作的裸机名称 (BMM_NAME)

确定最适合的纠正方法

排查技术问题需要系统性的方法。 一种有效的方法是从最不侵入性的解决方案开始,然后根据需要逐步采用更复杂和潜在破坏性的措施。 请记住,这些故障排除方法可能并非总是对所有方案有效,并考虑各种其他因素可能需要不同的方法。 因此,在排查裸机故障来确定最合适的纠正措施时,了解可用选项至关重要。

故障排除时的常规建议

  • 熟悉相关文档,包括故障排除指南和操作指南文章。 请始终参考最新的文档,随时了解最佳做法和更新。
  • 在重试操作之前,先尝试识别失败的根本原因,以避免重复的失败操作。 逐步执行重试,以隔离和解决特定问题。
  • 在执行其他步骤之前,请等待 Az CLI 命令运行完成并验证裸机计算机资源的状态。
  • 在全新部署之前验证固件和软件版本是否是最新的,以防止硬件和软件版本之间出现兼容性问题。 有关固件兼容性的详细信息,请参阅操作员 Nexus 平台先决条件
  • 请检查 iDRAC 凭据是否正确,并确认裸机计算机已开机。

查看常规网络连接运行状况

确保网络连接稳定,以避免在此过程中中断。 忽略网络稳定性可能导致操作无法成功完成,使裸金属服务器处于错误或退化状态。

快速检查群集资源的 clusterConnectionStatus,这可用作网络连接运行状况的一个指标。

az networkcloud cluster show \
  -g $CLUSTER_MRG \
  -n $BMM_NAME \
  --subscription $SUBSCRIPTION \
  --query "clusterConnectionStatus" \
  -o table

Result
---------
Connected

通过检查 NetworkFabric 资源状态、警报和指标来更深入地了解 NetworkFabric 资源。 请参阅相关文章:

评估任何裸机计算机警告或降级条件,这可能表明需要解决硬件、网络或服务器配置问题。 有关详细信息,请参阅排查裸机计算机上的降级状态错误排查裸机计算机警告状态

确定固件更新作业是否正在运行

在启动replacereimage操作之前,请确保没有正在通过 BMC 运行的固件升级任务。 中断正在进行的固件升级可能会使裸机处于不稳定状态。

  • 可以在 iDRAC GUI 中查看 jobqueue,或使用 run-read-commandracadm jobqueque view 来确定是否正在运行固件升级作业。
  • 有关 run-read-command 功能的详细信息,请参阅裸机运行-读取执行
az networkcloud baremetalmachine run-read-command \
  -g $CLUSTER_MRG \
  -n $BMM_NAME \
  --subscription $SUBSCRIPTION \
  --limit-time-seconds 60 \
  --commands "[{command:'nc-toolbox nc-toolbox-runread racadm jobqueue view'}]" \
  --output-directory .

下面是racadm jobqueue view命令的示例输出,显示了Firmware Update

[Job ID=JID_833540920066]
Job Name=Firmware Update: iDRAC
Status=Downloading
Start Time= [Not Applicable]
Expiration Time= [Not Applicable]
Message= [RED001: Job in progress.]
Percent Complete= [50%]

下面是 racadm jobqueue view 命令的一个示例输出,显示了常见的正常路径语句。

-------------------------JOB QUEUE------------------------
[Job ID=JID_429400224349]
Job Name=Configure: Import Server Configuration Profile
Status=Completed
Scheduled Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Actual Start Time=[Tue, 25 Mar 2025 17:00:22]
Actual Completion Time=[Tue, 25 Mar 2025 17:00:32]
Message=[SYS053: Successfully imported and applied Server Configuration Profile.]
Percent Complete=[100]
----------------------------------------------------------
[Job ID=JID_429400338344]
Job Name=Export: Server Configuration Profile
Status=Completed
Scheduled Start Time=[Not Applicable]
Expiration Time=[Not Applicable]
Actual Start Time=[Tue, 25 Mar 2025 17:00:33]
Actual Completion Time=[Tue, 25 Mar 2025 17:00:58]
Message=[SYS043: Successfully exported Server Configuration Profile]
Percent Complete=[100]

使用 run-read-command 监测进度

在 2506.2 及更高版本中,可以使用 run-read-command 监视长期运行的裸机操作的进度。

  • 某些长时间运行的操作(例如 ReplaceReimage)由多个步骤(例如 Hardware ValidationDeprovisioningProvisioning)组成。
  • 下面 run-read-command 演示如何查看每个作中的不同步骤,以及每个步骤的进度或状态,包括任何潜在的错误。
  • 在操作完成期间或之后,该信息将在 BareMetalMachine Kubernetes 资源中提供。
  • 有关 run-read-command 功能的详细信息,请参阅裸机 Run-Read 执行

示例 run-read-command,用于查看裸机上的操作进度 rack2compute08

az networkcloud baremetalmachine run-read-command \
  -g <ResourceGroup_Name> \
  -n <Control Node BMM Name> \
  --limit-time-seconds 60 \
  --commands "[{command:'kubectl get',arguments:[-n,nc-system,bmm,rack2compute08,-o,json]}]" \
  --output-directory .

替换操作的输出示例:

[
  {
    "correlationId": "961a6154-4342-4831-9693-27314671e6a7",
    "endTime": "2025-05-15T21:20:44Z",
    "startTime": "2025-05-15T20:16:19Z",
    "status": "Completed",
    "stepStates": [
      {
        "endTime": "2025-05-15T20:25:51Z",
        "name": "Hardware Validation",
        "startTime": "2025-05-15T20:16:19Z",
        "status": "Completed"
      },
      {
        "endTime": "2025-05-15T20:26:21Z",
        "name": "Deprovisioning",
        "startTime": "2025-05-15T20:25:51Z",
        "status": "Completed"
      },
      {
        "endTime": "2025-05-15T21:20:44Z",
        "name": "Provisioning",
        "startTime": "2025-05-15T20:26:21Z",
        "status": "Completed"
      }
    ],
    "type": "Microsoft.NetworkCloud/bareMetalMachines/replace"
  }
]

裸机计算机重置映像的最佳做法

有关裸机计算机 (BMM) 的 reimage 操作,请参阅裸机计算机生命周期管理命令;有关应用场景过程,请参阅排查 Azure 运营商关系服务器问题

警告

不要同时为同一BareMetal Machine(BMM)资源运行多个baremetalmachine replacereimage命令。 同时执行 replacereimage 会使服务器处于无法运行的状态。 在启动另一个 BMM 之前,请确保当前 BMM 上的所有 replace/reimage 操作都已完全完成。 此外,除非正在执行指定的维护操作,否则请避免在刚完成 reimage 操作的 BMM 上执行连续 replace 操作。

可以通过执行 reimage 操作来在裸金属计算机上还原操作系统的运行时版本。 裸金属机器 reimage 不仅节省时间而且可靠,既能解决问题又能将操作系统软件还原到已知良好的状态。 此过程在目标裸机计算机上重新部署运行时映像,并执行使用相同标识符重新加入群集的步骤。reimage操作旨在与操作系统分区交互,使虚拟机的本地存储保持不变。

重要

不要对裸机计算机的文件系统进行手动或自动更改。(也称为“紧急”操作)。 需要执行 reimage 操作才能重新获得 Microsoft 支持,在将节点还原到其预期状态时,对裸机计算机所做的任何更改都将丢失。

裸机计算机重置映像之前的先决条件和验证

在进行任何 reimage 操作之前,请确保满足以下先决条件。

裸机计算机更换的最佳做法

有关裸机计算机的 replace 操作,请参阅裸机计算机生命周期管理命令;有关应用场景过程,请参阅排查 Azure 运营商关系服务器问题

警告

不要同时为同一BareMetal Machine(BMM)资源运行多个baremetalmachine replacereimage命令。 同时执行 replacereimage 会使服务器处于无法运行的状态。 在启动另一个 BMM 之前,请确保当前 BMM 上的所有 replace/reimage 操作都已完全完成。 此外,除非正在执行指定的维护操作,否则请避免在刚完成 reimage 操作的 BMM 上执行连续 replace 操作。

硬件故障在服务器的生命周期内正常发生。 可能需要更换组件以恢复功能,并确保继续运行。 在发生任何硬件维护/修复事件后,必须执行 replace 操作。 在服务器上的一个或多个硬件组件发生故障(包括多个故障)时,请在执行裸机操作之前,对所有replace进行必要的修复。

重要

使用2024-07-01GA API 版本时,RAID 控制器会在裸金属服务器replace期间重置,这会擦除服务器虚拟磁盘上的所有数据。 除非存在其他物理磁盘和/或 RAID 控制器警报,否则可以忽略在裸机计算机 replace 操作期间触发的基板管理控制器 (BMC) 虚拟磁盘警报。

裸机计算机更换之前的先决条件和验证

在进行任何 replace 操作之前,请确保满足以下先决条件。

解决硬件验证问题

当裸金属服务器被标记为硬件验证失败时,这可能表明需要进行物理修复。 在执行裸机计算机 replace 操作之前,必须识别和解决这些维修问题。 在部署 OS 映像之前,将调用硬件验证过程作为作的一部分 replace ,以确保物理主机的完整性。 裸机计算机在持续出现硬件验证失败时无法成功预配。 因此,裸机无法完成必要的设置步骤,无法正常运行并加入群集。 确保在下一作之前清除replace

若要了解硬件验证结果,请阅读 排查硬件验证失败问题的文章。

不需要更换裸机计算机

某些维修不需要裸机计算机 replace 操作即可执行。 例如,执行物理热插拔电源修复时,不需要执行 replace 操作,因为裸机计算机主机在修复后将继续正常运行。 但是,如果裸机计算机的硬件验证失败,则即使完成了热插拔修复,仍然需要执行裸机计算机 replace 操作。 检查裸机状态消息,以确定是否存在硬件验证失败或其他降级情况。

此类其他修复可能包括:

  • 中央处理器
  • 双列直插式内存模块 (DIMM)
  • 风扇
  • 扩展板抬升器
  • 收发器
  • 更换以太网或光纤电缆

需要更换裸机计算机

更换主板或网络接口卡(NIC)等组件后,裸机机 MAC 地址将发生更改。 但是,iDRAC IP 地址和主机名保持不变。 更换主板会导致 MAC 地址更改,需要执行裸机计算机 replace 操作。

执行以下物理修复时,需要执行 replace 操作,使裸机计算机恢复服务:

  • 底板
  • 系统板
  • SSD 盘
  • PERC/RAID 适配器
  • Mellanox 网络接口卡 (NIC)
  • Broadcom 嵌入式 NIC

检查裸机计算机更换操作后的状态

裸机计算机 replace 操作成功完成后,请确保 provisioningStatusSucceededreadyStateTrue。 只有这样,才能继续执行 uncordon 操作,让裸机计算机重新加入工作负载可调度的节点池。

请求支持

如果仍有疑问,请联系支持人员。 有关支持计划的详细信息,请参阅Azure 支持计划

参考