在 Azure 本地添加节点

适用于:Azure Local 2311.2 及更高版本

本文描述如何通过向 Azure Local 实例添加节点(通常称为横向扩展)来管理容量。 在本文中,每个服务器都被称为一个节点。

关于添加节点

通过向现有系统添加节点,可以在 Azure Local 上同时轻松缩放计算和存储。 Azure Local 实例最多支持 16 个节点。

添加到系统中的每个新物理节点都必须在 CPU 类型、内存、驱动器数量以及驱动器的类型和大小方面与其余节点紧密匹配。

可以将 Azure Local 实例从 1 个节点动态缩放到 16 个节点。 针对扩展,协调器(也称为生命周期管理器)会调整驱动器复原能力、网络配置(包括内部代理,如协调器代理)和 Arc 注册。 动态缩放可能需要将网络体系结构从无交换机连接更改为通过网络交换机连接。

重要说明

  • 在这个版本中,每次只能添加一个节点。 但是,可以依次添加多个节点,这样存储池只需重新均衡一次。
  • 不可能从系统中永久删除节点。

添加节点工作流

以下流程图显示了添加节点的整个过程:

说明添加节点的过程的图表。

要添加节点,请执行以下高级步骤:

  1. 在计划添加的新节点上安装操作系统、驱动程序和固件。 有关详细信息,请参阅安装 OS
  2. 通过 Add-server PowerShell cmdlet 添加准备好的节点。
  3. 在向系统添加节点时,系统会在实际添加节点之前验证新的传入节点是否满足 CPU、内存和存储(驱动器)要求。
  4. 添加节点后,还将验证系统以确保其正常运行。 接下来,存储池将自动重新平衡。 存储重新平衡是一项低优先级任务,不会影响实际工作负荷。 根据节点数量和使用的存储,重新平衡可以运行数天。

注意

如果使用自定义存储 IP 部署 Azure Local 实例,则必须在添加节点后手动将 IP 分配给存储网络适配器。

支持的方案

对于添加节点,支持以下横向扩展方案:

开始方案 目标方案 复原能力设置 存储网络体系结构 见证设置
单节点 双节点系统 双向镜像 使用或不使用交换机进行配置 目标场景所需的见证人。
双节点系统 三节点系统 三向镜像 仅使用交换机进行配置 目标方案的见证可选。
三节点系统 N 节点系统 三向镜像 仅交换机 目标方案的见证可选。

将系统从双节点升级到三个节点时,存储复原能力级别将从双向镜像更改为三向镜像。

复原能力设置

在此版本中,对于添加节点操作,不会在部署后创建的工作负载卷上执行特定任务。

对于添加节点操作,将更新部署期间创建的所需基础结构卷和工作负荷卷的复原设置。 对于在部署后创建的其他工作负荷卷,设置将保持不变(因为这些卷的有意复原设置尚不清楚,而且你可能只想要一个双向镜像卷,而不考虑系统规模)。

但是,默认复原能力设置在存储池级别更新;因此在部署后创建的任何新工作负荷卷都将继承复原能力设置。

硬件要求

添加节点时,系统会验证新的传入节点的硬件,并确保该节点在添加到系统之前满足硬件要求。

组件 合规性检查
CPU 验证新节点是否具有相同数量或更多的 CPU 核心数。 如果传入节点上的 CPU 核心数不符合此要求,则会显示警告。 但允许进行此操作。
内存 验证新节点是否安装了相同数量或更多的内存。 如果传入节点上的内存不符合此要求,则会显示警告。 但允许进行此操作。
驱动器 验证新节点是否具有相同数量的可用于存储空间直通的数据驱动器。 如果传入节点上的驱动器数量不符合此要求,则会报告错误并阻止操作。

先决条件

在添加节点之前,你需要完成硬件和软件先决条件。

硬件先决条件

确保完成以下先决条件:

  1. 第一步是从原始 OEM 获取新的 Azure Local 硬件。 添加要在系统中使用的新节点硬件时,请始终参考 OEM 提供的文档。
  2. 将新的物理节点放置在预定位置,例如机架,并通过线缆连接。
  3. 在网络环境中酌情启用并调整物理交换机端口。

软件必备项

确保完成以下先决条件:

  • AzureStackLCMUser 在 Active Directory 中处于活动状态。 有关详细信息,请参阅准备 Active Directory
  • AzureStackLCMUser 身份或以具有同等权限的其他用户身份登录。
  • AzureStackLCMUser 的凭据没有改变。

添加节点

本节介绍如何使用 PowerShell 添加节点,监视 Add-Server 操作的状态,并在出现任何问题时进行故障排除。

使用 PowerShell 添加节点

确保你已经检查并完成了先决条件

在计划添加的新节点上,执行以下步骤。

  1. 在计划添加的新节点上安装操作系统和所需的驱动程序。 按照 安装 Azure Stack HCI 操作系统版本 23H2中的步骤操作。

    注意

    • 对于 2503 及更高版本,您需要使用与在现有群集上运行的解决方案相同的操作系统镜像。
    • 使用 “获取解决方案版本 ”标识在群集上运行的解决方案版本。
    • 使用 OS 映像 表标识和下载相应的 OS 映像版本。
  2. 向 Arc 注册节点。按照向 Arc 注册并设置权限中的步骤操作。

    注意

    必须使用与现有节点相同的参数才能向 Arc 注册。例如:资源组名称、区域、订阅和租户。

  3. 为新添加的节点分配以下权限:

    • Azure Stack HCI 设备管理角色
    • 密钥保管库机密用户 有关详细信息,请参阅为节点分配权限

如果要从单节点横向扩展,请先执行以下步骤:

  1. 为 Azure 本地实例配置仲裁见证

  2. 如果在 Azure 本地实例的初始部署过程中未执行此作,请配置存储意向。 修改参数以匹配环境。

    Set-StorageNetworkIntent -Name "StorageNet" -StorageIntentAdapters "Ethernet1, Ethernet2" -Switchless $false -VLANID "877, 888"
    

在系统上已存在的节点上,执行以下步骤:

  1. 使用在部署系统期间提供的域用户凭据(AzureStackLCMUser 或其他具有同等权限的用户)登录。

  2. 运行以下命令,使用新节点的本地管理员凭据添加新传入节点:

    $HostIpv4 = "<IPv 4 for the new node>"
    $Cred = Get-Credential 
    Add-Server -Name "<Name of the new node>" -HostIpv4 $HostIpv4 -LocalAdminCredential $Cred 
    
  3. 记下 Add-Server 命令输出的操作 ID。 稍后你将使用此操作 ID 来监视 Add-Server 操作的进度。

监视操作进度

要监视添加节点操作的进度,请按照这些步骤操作:

  1. 运行以下 cmdlet,并提供上一步中的操作 ID。

    $ID = "<Operation ID>" 
    Start-MonitoringActionplanInstanceToComplete -actionPlanInstanceID $ID 
    
  2. 操作完成后,后台存储重新平衡作业将继续运行。 等待存储重新平衡作业完成。 要验证此存储重新平衡作业的进度,请使用以下 cmdlet:

    Get-VirtualDisk|Get-StorageJob
    

    如果存储重新平衡作业已完成,cmdlet 将不会返回输出。

几个小时后,新添加的节点会显示在 Azure 门户的 Azure Local 实例列表中。 要强制节点显示在 Azure 门户中,请运行以下命令:

Sync-AzureStackHCI

恢复方案

下面列出了添加节点的恢复方案和建议的缓解步骤:

方案描述 缓解措施 支持?
在不使用协调器的情况下添加了一个新的带外节点。 删除添加的节点。
使用协调器来添加节点。
添加了带有业务流程协调程序的新节点,操作失败。 要完成操作,请对故障进行调查。
使用 Add-Server -Rerun 重新运行失败的操作。
添加了带有业务流程协调程序的新节点。
操作部分成功,但必须重新安装操作系统。
在这种情况下,业务流程协调程序已经使用新节点更新了其知识存储。 使用修复节点方案。

排查问题

从 2508 版本开始,执行命令后将运行 Add-Server 验证。 如果测试失败,验证程序将返回信息以帮助解决失败。

下面是验证失败消息的示例:

验证错误消息的屏幕截图。

如果在添加节点时遇到失败或错误,可以在日志文件中捕获失败的输出。 在系统上已存在的节点上,执行以下步骤:

  • 使用在系统部署期间提供的域用户凭据登录。 在日志文件中捕获问题。

    Get-ActionPlanInstance -ActionPlanInstanceID $ID|out-file log.txt
    
  • 若要重新运行失败的操作,请使用以下 cmdlet:

    Add-Server -Rerun
    

如果在添加节点操作过程中遇到问题,并需要 Microsoft 支持部门的帮助,可以按照收集Azure Local(预览版)的诊断日志中的步骤收集诊断日志并将其发送给 Microsoft。

可能需要提供来自要添加到群集的新节点的诊断日志。 请确保从新节点运行 Send-DiagnosticData cmdlet。

后续步骤