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

Service Fabric 基础结构服务简介

本文介绍基础结构服务,它是 Azure Service Fabric 的一部分,用于在 Azure 基础结构更新与群集运行状况之间进行协调,以安全地更新底层基础结构。

基础结构服务详细信息

Service Fabric 基础结构服务是 Azure 群集的一个系统服务,可确保所有基础结构操作都以安全的方式完成。 该服务负责协调对持久性级别为银级或更高级别的底层虚拟机规模集进行的所有基础结构更新。 通常,每种节点类型有一个基础结构服务,但区域可复原节点类型则有三个。 与这些节点类型对应的虚拟机规模集上的所有平台和租户更新都会考虑群集的状态以及更新造成的潜在影响。 然后,服务确定是否可以在不损害群集上运行的副本和实例的运行状况的情况下进行操作。

本文档的余下内容涵盖了有关基础结构服务的常见问题:

常见问题解答

基础结构服务管理哪些不同类型的更新?

  • 平台更新 - 对虚拟机规模集的底层主机进行的更新由 Azure 平台发起,并由升级域 (UD) 以安全方式执行。
  • 租户更新 - 用户发起的规模集更新,例如修改 VM 计数、配置或修改来宾 OS。
  • 租户维护 - 用户对虚拟机规模集的单个实例发起的修复,例如重新启动。
  • 平台维护 - Azure 计算在虚拟机规模集中的某个虚拟机或一组虚拟机上发起的维护。

如何在群集上启用基础结构服务?

如果节点类型设置为银级或更高的持久性,则默认会在 Azure Service Fabric 群集中启用基础结构服务。 若要将现有的铜级节点类型迁移到银级持久性,请遵循此处所述的步骤

实例计数需有多少才能安全地进行操作租户/平台更新?

若要安全地执行租户或平台更新,至少需要有五个虚拟机规模集实例。 但是,有五个实例也不能保证操作会继续进行。 工作负载可能会配置或需要额外的限制或资源,从而增加所需的最少实例计数。 对于跨区域的虚拟机规模集,每个区域中至少需有五个实例才能确保操作安全。

为何我的虚拟机规模集不更新?

出于以下任何原因,虚拟机规模集上的更新可能会停滞较长时间:

  • 你已对虚拟机规模集执行了多次更新,同时 Service Fabric 正在尝试以安全的方式更新虚拟机。 Service Fabric 每次执行一项更新,因此持续时间较长。
  • 由于与基础结构更新对应的修复任务未获批准,因此你在虚拟机规模集上尝试的更新并未进行。 批准可能出于多种原因而受到阻碍,但常见原因是没有足够的资源用于确保更新安全进行。 需将现有副本和实例放在其他位置,以便可以关闭节点,使更新安全进行。
  • 对相应节点类型的其他 Azure 平台更新和租户维护操作当前正在进行。 在平台更新完成之前,Service Fabric 会限制虚拟机规模集更新,以便以安全方式执行更新。 默认情况下,Service Fabric 每次最多允许在规模集上进行两项基础结构更新。 平台更新不会停止,因此它们优先于租户更新。

我看到多个租户更新修复作业停滞在“正在准备”状态。 我该怎么办?

租户更新作业停滞在“正在准备”状态意味着 Service Fabric 无法将现有副本置于可在其他位置更新的节点上。 在出现容量不足或者删除种子节点,从而导致修复任务被阻止等情况时,通常会发生作业停滞问题。 使用 Service Fabric Explorer 检查与租户更新关联的对应修复任务,以确定租户更新停滞的原因。

平台或租户更新长时间处于正在执行状态,导致我的更新受阻。 我该怎么办?

Service Fabric 已确认的平台和租户更新将由底层计算执行。 成功应用更新后,Service Fabric 将等待计算平台的确认。 如果更新长时间处于正在执行状态,客户应联系计算团队支持人员,以确定平台更新没有进展的原因。

如何确保群集中的所有更新都安全?

仅当 Service Fabric 判定 Service Fabric 群集中的所有租户更新操作都安全时,才会批准这些操作。 当 Service Fabric 无法确保操作安全时,将阻止更新。 虽然在一般情况下,此机制使得客户无需担心给定的操作是否安全,但建议在了解操作的影响后才执行操作。

我想绕过基础结构服务并在我的群集上执行操作。 我该怎么做?

绕过基础结构服务进行任何基础结构更新是一项风险操作,如果安全检查阻止修复获得批准,可能会导致更新停滞。 在某些方案中,如果默认限制由于现有更新未取得进展而阻止其他更新,则客户可以选择手动允许更多更新。 连接到 SF 群集后,可通过以下命令完成此操作:

   Invoke-ServiceFabricInfrastructureCommand -ServiceName "fabric:/System/InfrastructureService/<nodetype name>" -Command AllowAction:<MR_Jobid_Guid>:*:Prepare

在 Service Fabric Explorer 根目录的“基础结构作业”选项卡下,可以找到上文使用的 MR_Jobid_Guid 作为挂起更新的 JobId。 如果上述信息没有帮助,请联系 Service Fabric 客户支持