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

管理存储移动程序代理的网络带宽

本文介绍如何为存储移动程序代理设置带宽管理计划。

将文件和文件夹迁移到 Azure 时,需要仔细考虑要提供给每个存储移动程序代理的上传带宽。 其他工作负载可能还取决于是否有足够的可用带宽。 若要使存储移动程序代理与网络中的其他工作负载和谐共存,可以为每个代理计划限制。

先决条件

在设置带宽计划之前,首先需要在其中一个资源组中部署存储移动程序资源,然后再注册代理。 按每个已注册的代理设置和存储带宽限制计划。

了解带宽管理的基本概念

计划是已注册代理的一个属性。 在门户中,可以在“存储移动程序”资源中的注册代理页面上设置和更改此计划。

带宽管理计划描述了一周中的时间窗口,在此期间,可以设置存储移动程序代理允许使用的上传带宽限制。

Azure 门户对话框的屏幕截图,其中显示了日历(类似于 Outlook)以及计划的带宽限制时窗。

此计划看起来与 Outlook 中的日历非常类似,但存在一些重要的区别:

  • 计划本身会重复。 它有七个工作日,在一周结束后,计划会重复。
  • 计划中的条目是代理不得超过的指定限制。 一天中的空闲时段没有任何限制,允许代理根据需要使用尽可能多的带宽。
  • 不能为特定日期计划限制,但可以为重复工作日计划限制。 例如,你可以指定:“在周日的云备份时窗中,将代理的带宽限制为不超过 x。”
  • 计划不存储时区。 例如,如果你将限制设置为上午 9 点开始,则这表示代理的当地时间。 可以查看为代理配置了哪些时区。 请注意,代理的时区可能与部署代理的站点的时区不同。

提示

可以将存储移动程序代理的时区设置为其部署位置。
1. 连接到代理控制台并登录
2. 选择菜单选项:1) System configuration
3. 选择菜单选项:3) Change timezone 并按照提示进行选择。

启用或更改带宽管理计划

使用 Azure 门户,可以在已注册的代理资源上启用带宽计划。

  1. 当门户显示存储移动程序资源时,在左侧菜单中选择“已注册代理”。
  2. 现在有两个选项可用于设置或查看计划。 可以找到“带宽管理”列,然后单击所选代理对应的链接。 或者,可以选中代理前面的复选框。 这将启用代理列表上方的命令按钮,其名称为“管理带宽限制”Azure 门户中“已注册的代理”边栏选项卡的屏幕截图,其中显示首先选择了一个代理,然后选择了“带宽管理”命令。
  3. 带宽管理窗口随即打开,并显示当前生效的代理计划。 显示空计划时,则表明没有为此代理定义带宽限制。

设置带宽限制

打开带宽计划窗口。 (请参阅上一部分

可以在此处为此所选代理创建自定义计划,也可以重用之前为另一个代理创建的计划

  • 若要创建自定义计划,请选择“添加限制”命令。 此时会打开一个对话框,你可以在其中定义时间片,以设置代理在这段时间可以使用的 WAN 链接的最大带宽。 Azure 门户对话框的屏幕截图,其中显示了为自定义时间段设置限制的输入。
    该对话框要求你设置要为代理应用上行链路限制的开始时间和结束时间。 然后,可以选择在一周中的哪几天应用新限制。 选择要应用相同限制的所有工作日。 然后,需要以 Mbps(每秒兆位数)指定限制。 不允许重叠的时间。 设置的任何限制都将在代理时区中显示的时间应用。 可以在带宽管理窗口顶部找到代理的时区。 可能需要偏移计划或调整代理的时区。
  • 若要“重用另一个代理的计划”,请参照指向以下部分的这个链接。
  • 要将更改应用于此代理,请选择“带宽管理”窗口底部的“保存”按钮

注意

只有代理在 Azure 的目标存储中创建的迁移数据流才受此计划的控制。 除了此数据流之外,还有从代理到 Azure 的控制平面流量。 控制消息、进度遥测和复制日志通常只需要少量带宽。 为了确保代理在整个迁移过程中正常运行,代理的控制平面不受你设置的计划的约束。 在极端情况下,代理可能会略微超出你定义的限制。

提示

可以将存储移动程序代理的时区设置为其部署位置。
1. 连接到代理控制台并登录
2. 选择菜单选项:1) System configuration
3. 选择菜单选项:3) Change timezone 并按照提示进行选择。

更改或删除带宽限制

打开所选代理的带宽管理计划。 (请参阅上一部分

如果要编辑或删除特定限制,请选择该限制并打开“编辑限制”对话框。 可以调整时间段或删除限制。 没有批量编辑选项,因此必须单独编辑每个工作日的每个限制。

如果目标是完全禁用代理的带宽管理,请选择“清除所有限制”命令。

不要忘记将更改应用到此代理。 选择“带宽管理”窗口底部的“保存”按钮

重用另一个代理的计划

可以重用另一个代理的带宽限制计划。

  1. 打开所选代理的带宽管理计划。 请参阅上一段。
  2. 选择命令“从其他代理导入限制”,然后选择要从中复制计划的代理。 如果列表中没有代理,则没有其他启用了带宽限制的代理。

    警告

    使用此选项将覆盖此代理当前配置的计划。 无法还原导入计划之前可能所做的任何未保存的更改。

  3. (可选)现在可以修改这一复制的计划。
  4. 要将更改应用于此代理,请选择“带宽管理”窗口底部的“保存”按钮

重要

计划在存储时没有时区。 这使它们能够在其他代理上重复使用。 无论代理的时区是什么,计划的限制都将在此期间生效。 如果代理的时区与你部署代理的位置使用的时区不同,则需要确保偏移带宽管理计划。 例如,如果代理的时区为 UTC,但代理实际上部署在太平洋时区 (PST),则需要将计划偏移 -7 小时。 或者,可以将代理的时区调整为适合该位置的正确时区。 这样做可以消除偏移计划的需求,并且还可以让你的计划自动调整到夏令时(如果你的时区采用夏令时)。

提示

可以将存储移动程序代理的时区设置为其部署位置。
1. 连接到代理控制台并登录
2. 选择菜单选项:1) System configuration
3. 选择菜单选项:3) Change timezone 并按照提示进行选择。

使用 PowerShell 配置带宽限制计划

使用最新版本的 Azure PowerShell 模块时,可以管理此功能。

准备 Azure PowerShell 环境

你需要 Az.StorageMover 模块:

## Ensure you are running the latest version of PowerShell 7
$PSVersionTable.PSVersion

## Your local execution policy must be set to at least remote signed or less restrictive
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

## If you don't have the general Az PowerShell module, install it first
Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force

## Lastly, the Az.StorageMover module is not installed by default and must be manually requested.
Install-Module -Name Az.StorageMover -Scope CurrentUser -Repository PSGallery -Force

管理带宽限制计划

## Set variables
$subscriptionID        = "Your subscription ID"
$resourceGroupName     = "Your resource group name"
$storageMoverName      = "Your storage mover resource name"
$registeredAgentName   = "Name of the agent, registered to your storage mover resource"

## Log into Azure with your Azure credentials
Connect-AzAccount -SubscriptionId $subscriptionID # -DeviceLogin #Leverage DeviceLogin if you need to authenticate your PowerShell session from another machine. # -TenantID #In some environments you may you need to specify the EntraID tenant to authenticate against.

#------------
# GET the schedule configured on an agent:
$schedule = @(Get-AzStorageMoverAgent -ResourceGroupName $resourceGroupName -StorageMoverName $storageMoverName -AgentName $registeredAgentName).UploadLimitScheduleWeeklyRecurrence
# $schedule then contains a JSON structure with elements for each configured time windows and the upload limit in Mbps that applies during this window.

# Output the entire schedule
$schedule

# Schedule elements can be addressed like an array.
$schedule[0]

添加新带宽限制

$newLimit = New-AzStorageMoverUploadLimitWeeklyRecurrenceObject `
    -Day "Monday", "Tuesday" ` # Mandatory. An array, limited to the English names of all 7 days, Monday through Sunday in any order.
    -LimitInMbps 900 ` # Mandatory. Limit in "Mega bits per second"
    -StartTimeHour 5 ` # Mandatory. 24-hour clock: 5  = 5am
    -EndTimeHour 17 `  # Mandatory. 24-hour clock: 17 = 5pm
    -EndTimeMinute 30  # Optional. Time blocks are precise to 30 Minutes. -EndTimeMinute 0 is equivalent to omitting the parameter. The only other acceptable value is the half hour mark: 30. 

$schedule += $newLimit # Appends the new limit to the exiting schedule. The JSON structure does not need to be ordered by days or time.

# Updates the bandwidth limit schedule for the selected agent by adding the defined "time block" to the schedule.
# Ensure that the new limit does not overlap with an already configured limit in the schedule, otherwise the operation will fail.
Update-AzStorageMoverAgent `
    -ResourceGroupName $resourceGroupName `
    -StorageMoverName $storageMoverName `
    -AgentName $registeredAgentName `
    -UploadLimitScheduleWeeklyRecurrence $schedule 
    # This command sets and overwrites a bandwidth limit schedule for the selected agent. Be sure to preserve an existing schedule if you want to only add a new limit. If you are building an entirely new schedule, you can form all your limit objects and then supply a comma-separated list of your new limits here. 
    # Ensure the new limit's time span is not overlapping any existing limits. Otherwise, the operation will fail.

禁用代理的带宽限制

Update-AzStorageMoverAgent `
    -ResourceGroupName $resourceGroupName `
    -StorageMoverName $storageMoverName `
    -AgentName $registeredAgentName `
    -UploadLimitScheduleWeeklyRecurrence @() # Supply an empty array to remove all previously configured limits. This operation cannot be undone. You have to build and supply a new schedule if you want to enable bandwidth limitations for this agent again.

更改现有带宽限制

可以合并前面所述的管理操作,以选择性地将现有带宽限制更新为新的限制或更新的时间范围。

# Step 1: define the new limit object you want to use to replace an existing limit:
$limit = New-AzStorageMoverUploadLimitWeeklyRecurrenceObject `
    -Day "Monday", "Tuesday" ` # Mandatory. An array, limited to the English names of all 7 days, Monday through Sunday in any order.
    -LimitInMbps 900 ` # Mandatory. limit in "Mega bits per second"
    -StartTimeHour 5 ` # Mandatory. 24-hour clock: 5  = 5am
    -EndTimeHour 17 `  # Mandatory. 24-hour clock: 17 = 5pm
    -EndTimeMinute 30  # Optional. Time blocks are precise to 30 Minutes. -EndTimeMinute 0 is equivalent to omitting the parameter. The only other acceptable value is the half hour mark: 30. 

# Step 2: Find the bandwidth limitation window you want to change:
$schedule = @(Get-AzStorageMoverAgent -ResourceGroupName $resourceGroupName -StorageMoverName $storageMoverName -AgentName $registeredAgentName).UploadLimitScheduleWeeklyRecurrence

$schedule[<n>] = $limit # Replace the limit (start count at zero) with your newly defined limit.

#Step 3: Update the bandwidth limit schedule for the selected agent:
Update-AzStorageMoverAgent `
    -ResourceGroupName $resourceGroupName `
    -StorageMoverName $storageMoverName `
    -AgentName $registeredAgentName `
    -UploadLimitScheduleWeeklyRecurrence $schedule # Apply your entire, updated schedule. Performing this step on an agent with other limits already configured will override them with this new schedule. Ensure there are no overlapping time spans, otherwise the operation will fail.

了解带宽限制计划的 JSON 架构

带宽限制计划以 JSON 构造的形式存储在已注册代理的属性 UploadLimitScheduleWeeklyRecurrence 中。

前面的 PowerShell 部分演示了如何使用 Azure PowerShell 创建和更新此代理属性的示例。 但是,可以手动生成该 JSON,并直接将其作为属性的参数提供。 以下部分可帮助你了解此 JSON 构造的带宽计划元素。

重要

该计划包含一个或多个时间范围,在此期间代理不得超过应用的带宽限制。 这些时间范围不得重叠。 在任何给定时间,只能应用一个限制。 指定时间重叠的计划的 JSON 将视为格式错误,不能应用于代理。

带宽限制计划的以下两种表示形式是等效的:

Azure 门户的屏幕截图,其中显示了具有计划带宽限制的日历。

{
  {
    "startTime":
    {
      "hour": 7,
      "minute": 0
    },
    "endTime":
    {
      "hour": 9,
      "minute": 0
    }
    "days": ["Monday"],
    "limitInMbps": 500
  },
  {
    "startTime":
    {
      "hour": 9,
      "minute": 0
    },
    "endTime":
    {
      "hour": 12,
      "minute": 0
    }
    "days": ["Monday", "Tuesday", "Wednesday"],
    "limitInMbps": 200
  }
}

注意

计划中的项未涵盖的时间范围允许代理利用可用带宽。 在这些时间范围,代理可能不会使用所有可用的带宽。 可以在性能文章“为何迁移性能有所不同”部分找到有关该内容的更多详细信息。

后续步骤

请继续阅读下一篇文章,了解如何部署存储移动程序代理或创建迁移项目。