你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
排查 Azure 运营商关系服务器问题
本文介绍如何使用 Azure 运营商关系裸机计算机 (BMM) 上的重启、重置映像和更换操作来排查服务器问题。 出于维护方面的原因,可能需要在服务器上执行这些操作,这会导致特定 BMM 短暂中断工作。
完成上述每个操作所需的时间类似。 重启的速度最快,而更换需要稍长一些时间。 这三个操作都是用于故障排除的方法,均简单高效。
注意
在未先咨询 Microsoft 支持人员的情况下,请勿对管理服务器执行任何操作, 否则可能会影响运营商关系群集的完整性。
先决条件
- 请通过查看 BMM 操作,自行熟悉本文中引用的功能。
- 收集以下信息:
- BMM 的受管理资源组的名称
- 需要生命周期管理操作的 BMM 的名称
- 订阅 ID
重要
如果已经针对另一个 Kubernetes 控制平面 (KCP) 节点运行另一个中断性操作命令,或者完整的 KCP 不可用,则针对当前 KCP 节点的中断性命令请求将被拒绝。
重启、重置映像和更换都被视为中断性操作。
此检查是为了维护 Nexus 实例的完整性,并确保多个 KCP 节点不会由于同时发生的中断性操作而立即关闭。 如果多个节点关闭,则会突破 Kubernetes 控制平面的正常仲裁阈值。
确定纠正措施
排查 BMM 故障并确定最合适的纠正措施时,了解可用选项至关重要。 重启或重置 BMM 映像可能是解决问题或将软件还原到已知良好状态的既高效又有效的方法。 如果服务器上的一个或多个硬件组件发生故障,可能需要完全替换 BMM。 本文概述这三项操作中各项的最佳做法。
排查技术问题需要系统性的方法。 一种有效的方法是从最不侵入性的解决方案开始,并在必要时逐步采用更复杂和剧烈的措施。
故障排除的第一步是尝试重启设备或系统。 重启有助于清除可能导致问题的任何临时故障或错误。
如果重启无法解决问题,下一步是尝试重置设备或系统的映像。
如果重置映像无法解决问题,最后一步是更换出故障的硬件组件。 虽然更换是一种更为严重的措施,但如果问题源于硬件缺陷,则可能不得不更换。
请注意,这些故障排除方法可能无法始终奏效,并且导致故障的其他因素可能需要不同的方法来处理。
使用重启操作进行故障排除
重启 BMM 是通过 API 调用轻松重启服务器的过程。 当主机上的租户虚拟机没有响应或卡死时,此操作对于故障排除很有帮助。
要缓解问题,第一步通常是重启。
以下 Azure CLI 命令将 power-off
指定的 bareMetalMachineName。
az networkcloud baremetalmachine power-off \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
以下 Azure CLI 命令将 start
指定的 bareMetalMachineName。
az networkcloud baremetalmachine start \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
以下 Azure CLI 命令将 restart
指定的 bareMetalMachineName。
az networkcloud baremetalmachine restart \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
使用重置映像操作进行故障排除
重置 BMM 映像是用于在 OS 磁盘上重新部署映像的过程,不会影响租户数据。 此操作通过执行一些步骤来使用相同的标识符重新加入群集。
通过将 OS 还原到已知的正常工作状态,重置映像操作对于故障排除很有帮助。 可通过重置映像解决的常见故障原因包括因对主机完整性的怀疑而导致的恢复、可疑或已确认的安全泄露或“破窗”(Break Glass) 写入活动。
重置映像操作是以最低操作风险确保 BMM 完整性的最佳做法。
最佳做法是,确保在执行 reimage 命令之前使用 cordon 命令且 evacuate 为 True,来耗尽 BMM 的工作负载。
若要确定 BMM 上当前是否有任何工作负荷正在运行,请运行以下命令:
对于虚拟机:
az networkcloud baremetalmachine show -n <nodeName> /
--resource-group <resourceGroup> /
--subscription <subscriptionID> | jq '.virtualMachinesAssociatedIds'
对于关系 Kubernetes 群集节点:(需要登录关系 Kubernetes 群集)
kubectl get nodes <resourceName> -ojson |jq '.metadata.labels."topology.kubernetes.io/baremetalmachine"'
以下 Azure CLI 命令将 cordon
指定的 bareMetalMachineName。
az networkcloud baremetalmachine cordon \
--evacuate "True" \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
以下 Azure CLI 命令将 reimage
指定的 bareMetalMachineName。
az networkcloud baremetalmachine reimage \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
以下 Azure CLI 命令将 uncordon
指定的 bareMetalMachineName。
az networkcloud baremetalmachine uncordon \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
使用更换操作进行故障排除
服务器包含许多可能随着时间的推移而出现故障的物理组件。 请务必了解哪些物理修复需要更换 BMM,以及何时建议更换 BMM。
调用硬件验证过程,以确保在部署 OS 映像之前物理主机保有完整性。 与重置映像操作一样,在更换期间不会修改租户数据。
重要
从 2024-07-01 GA API 版本开始,RAID 控制器会在 BMM 替换期间重置,擦除服务器虚拟磁盘中的所有数据。 除非存在其他物理磁盘和/或 RAID 控制器警报,否则可以忽略在 BMM 替换期间触发的基板管理控制器 (BMC) 虚拟磁盘警报。
最佳做法是先发出 cordon
命令,从工作负载计划中删除裸机计算机,然后在执行物理修复之前关闭 BMM。
以下 Azure CLI 命令将 cordon
指定的 bareMetalMachineName。
az networkcloud baremetalmachine cordon \
--evacuate "True" \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
执行物理热交换电源修复时,不需要执行更换操作,因为 BMM 主机在修复后将继续正常运行。
执行以下物理修复时,建议执行更换操作,尽管不需要让 BMM 恢复服务:
- CPU
- 双列直插式内存模块 (DIMM)
- 风扇
- 扩展板抬升器
- 收发器
- 更换以太网或光纤电缆
执行以下物理修复时,需要执行更换操作才能使 BMM 恢复服务:
- 底板
- 系统板
- SSD 盘
- PERC/RAID 适配器
- Mellanox 网络接口卡 (NIC)
- Broadcom 嵌入式 NIC
完成物理修复后,执行替换操作。
以下 Azure CLI 命令将 replace
指定的 bareMetalMachineName。
az networkcloud baremetalmachine replace \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--bmc-credentials password=<IDRAC_PASSWORD> username=<IDRAC_USER> \
--bmc-mac-address <IDRAC_MAC> \
--boot-mac-address <PXE_MAC> \
--machine-name <OS_HOSTNAME> \
--serial-number <SERIAL_NUM> \
--subscription <subscriptionID>
以下 Azure CLI 命令将取消隔离指定的 bareMetalMachineName。
az networkcloud baremetalmachine uncordon \
--name <bareMetalMachineName> \
--resource-group "<resourceGroup>" \
--subscription <subscriptionID>
总结
重启、重置映像和更换是可用于解决技术问题的有效故障排除方法。 但是,在尝试采取任何剧烈措施之前,必须采取系统性的方法并考虑其他因素。 有关 BMM 操作的更多详细信息,请参阅 BMM 操作一文。
如果仍有疑问,请联系支持人员。 有关支持计划的详细信息,请参阅Azure 支持计划。