代理管理

更新时间:
复制 MD 格式

本文介绍创建代理、部署代理、扩容缩容代理、升级代理的操作步骤。

创建代理

代理支持公网和专有网络(专线或VPN)两种网络类型,请按需选择适合的网络类型。创建代理时需关联已有通道,请提前创建好通道。创建通道的相关操作,请参见通道管理

重要
  • 通过专线或VPN迁移上云、自建存储迁移上云、源是LocalFs等场景,需要创建通道和代理。

  • 代理必须部署在运行内核版本为 2.6 或更高、64 位 Linux(x86_64 架构)的机器上。请提前准备好符合需求的机器。

  • 每个地域下最多可创建100个代理,请合理规划使用。

  • 推荐购买7代以上机型的ECS,如ecs.c7.xlarge。

  1. 登录阿里云在线迁移服务管理控制台

  2. 在左侧导航栏,选择代理管理

  3. 代理管理页面,单击新建代理

  1. 新建代理对话框,配置如下参数,并单击确定

    参数

    是否必填

    说明

    名称

    代理名称。

    • 代理名称不能为空,长度为3~63个字符。

      • 支持英文小写字母、数字和特殊字符短划线(-)和下划线(_),且区分大小写。

      • UTF-8编码并且不能以短划线(-)和下划线(_)开头。

    网络类型

    代理的网络连接方式,包含如下两种:

    • VPC(推荐):代理通过VPC连到在线迁移服务端。此方式要求部署代理的机器能够访问在线迁移服务对应地域的内网域名。例如,若您在华北2(北京)地域使用迁移服务,则代理机器必须能够访问在线迁移服务华北2(北京)地域的内网域名{TunnelId}.cn-beijing.mgw-tc-internal.aliyuncs.com。建议您使用与在线迁移服务控制台相同地域的ECS实例来部署代理。

    • 公网:代理通过公网连到在线迁移服务端。此方式要求部署代理的机器能够访问在线迁移服务对应地域的公网域名。例如,若您在华北2(北京)地域使用迁移服务,则代理机器必须能够访问在线迁移服务华北2(北京)地域的公网域名{TunnelId}.cn-beijing.mgw-tc.aliyuncs.com。

    说明
    • TunnelId表示通道ID。

    • 您可以通过ping命令测试代理到迁移服务的连通性。

    部署方式

    代理的部署方式。目前只支持独立进程部署方式。

    通道

    代理所属的通道,一个代理只允许关联一个通道,代理的带宽受通道总带宽影响。

    例如:名称为tunnel-1的通道,设置最高带宽为10 Gbit/s,tunnel-1关联3个代理,分别为agent-1agent-2agent-3,则3个代理的总带宽之和最高为10 Gbit/s。如果agent-1设置3 Gbit/s的带宽,则agent-2agent-3仅有7 Gbit/s的带宽可用,请提前规划并谨慎分配带宽。

生成部署代理脚本

前提条件

  • 机器的配置CPU不低于4核,内存不低于8 GB。日志空间不低于4 GB。

  • 推荐您创建新的RAM用户用于部署代理,并为该RAM用户添加AliyunOSSImportReadOnlyAccess权限,并设置授权范围整个云账号

    说明

    一个RAM用户的AccessKey可同时用于部署多个代理,并不会相互冲突。

操作步骤

  1. 代理管理页面,单击代理名称,进入代理详情页。

  2. 单击部署运行,代理部署支持密钥RAM角色两种模式。

使用密钥部署代理

  • 部署运行对话框的密钥区域,配置如下参数。

    参数

    是否必填

    说明

    AccessKeyId

    用于代理与在线迁移服务端建立传输通道时完成身份认证,必须有mgw:VerifyAgentTunnel权限。

    说明

    建议遵循最小权限原则,仅授予包含mgw:VerifyAgentTunnel的自定义策略;也可按需授予以下系统策略之一:

    • AliyunOSSImportReadOnlyAccess(只读管理在线迁移服务的权限)

    • AliyunOSSImportFullAccess(完整管理权限)

    SecretAccessKey

使用RAM角色部署代理

1. 创建RAM角色

重要
  • 使用RAM角色部署的代理,仅支持部署在阿里云ECS上,不支持其他环境的机器。

  • 若您后续将代理更换部署到新ECS实例,请务必按照下方步骤3先将RAM角色也授予到该ECS实例。

登录上文创建的RAM用户所在的RAM控制台,在身份管理-角色页面单击创建角色

  1. 信任主体类型选择云服务

  2. 信任主体名称选择云服务器ECS / ECS

  3. 点击确定,输入角色名称

2. 创建自定义权限策略并授权

登录上文创建的RAM用户所在的RAM控制台,在权限管理-权限策略页面单击创建权限策略

  1. 创建权限策略,选择脚本编辑

说明

用于代理与在线迁移服务端建立传输通道时完成身份认证,必须有mgw:VerifyAgentTunnel权限。建议遵循最小权限原则,仅授予包含mgw:VerifyAgentTunnel的自定义策略

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "mgw:VerifyAgentTunnel",
      "Resource": "*"
    }
  ]
}
  1. 点击确定,输入策略名称

  2. 策略创建完成后,进入授权策略详情页,选择授权管理,点击新增授权,选择已创建好的RAM角色,完成授权。

3. 将新建的RAM角色授予部署代理的ECS

说明

同一账号下的多个 ECS 实例可共用一个 RAM 角色,请确保ECS 实例与 RAM 角色属于同一账号。每台 ECS 实例仅支持部署一个代理。为确保代理能够成功完成身份认证,请将该 RAM 角色授予需要部署代理的 ECS 实例。

  1. 使用上面RAM用户所属账号登录云服务器管理控制台

  2. 找到要部署代理的实例,进入实例详情页

  3. 下拉到底部,其他信息选择RAM角色授予,选择上面新建的RAM角色,完成授予

  1. 单击高级设置区域后的image.png图标,配置如下参数。

参数

是否必填

说明

CPU核数

代理可使用的CPU核数。

  1. 不填写:默认使用机器所有CPU核。

  2. 设置该值:请根据实际情况谨慎评估,参考控制台提示设置该值。

最大使用内存(GB)

代理可使用的最大内存。

  1. 不填写:默认使用机器所有内存。

  2. 设置该值:请根据实际情况谨慎评估,参考控制台提示设置该值。

日志占用空间(GB)

代理日志占用的磁盘空间最大值,达到最大值后日志将会按新旧程度滚动丢弃。

  1. 不填写:默认日志占用4 GB。

  2. 设置该值:请根据实际迁移文件数进行评估,参考控制台提示设置该值。每迁移100万文件,约产生4 GB磁盘日志。

最大可用带宽

代理的最大带宽,受所关联的通道总带宽的影响,不得高于通道设置的最大带宽。例如:

  1. 如通道设置最高带宽5 Gbit/s,则单台代理最大可用带宽不得高于5 Gbit/s

  2. 如通道未设置最高带宽上限,则代理最大可用带宽不得高于100 Gbit/s。

说明

一个代理只允许关联一个通道,代理的带宽受通道总带宽影响。

例如:名称为tunnel-1的通道,设置最高带宽为10 Gbit/s,tunnel-1关联3个代理,分别为agent-1agent-2agent-3,则3个代理的总带宽之和最高为10 Gbit/s。如果agent-1设置3 Gbit/s的带宽,则agent-2agent-3仅有7 Gbit/s的带宽可用,请提前规划并谨慎分配带宽。

IP白名单

配置允许访问代理的IP地址段,支持多个IP段。默认为私有地址段:10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 100.0.0.0/8

  1. 单击通过命令部署运行代理

部署代理

重要
  • 自动生成的代理部署命令含有代理ID等唯一性信息,只能用于部署当前(单个)代理。当您有多个代理需要部署时,必须为每个代理依次生成部署命令并部署在不同的机器上,否则会导致部署失败或代理状态异常。

  • 当迁移的数据类型为LocalFS(包括LocalFS迁移至OSS、OSS迁移至LocalFSLocalFS之间迁移)时,部署代理必须以root身份运行,否则可能会导致文件迁移失败(chownchmod等系统调用)。

在线部署代理

当代理网络类型选择公网(公网)时,使用在线方式部署代理。

  1. 查看通过命令部署运行代理弹出框中内容,登录准备安装代理的部署机(可使用包括阿里云提供的连接工具,如Workbench、VNC或第三方客户端工具)。

  2. 在部署机上确认curl命令存在且可用,并在部署机上运行命令curl -I https://www.aliyun.com来确认公网的连通性。

  3. 复制弹出框中运行和部署代理命令,并在部署机上的某级本地磁盘目录(而非Nas等远程挂载目录)里运行该命令,如果运行成功则说明代理部署成功,具体命令格式与参数说明如下(后续可能有更新,请以控制台实际输出为准):

    wget https://gosspublic.alicdn.com/data_online_migration/agent/aliyun_import_agent_deploy.sh -O aliyun_import_agent_deploy.sh;chmod 755 aliyun_import_agent_deploy.sh;./aliyun_import_agent_deploy.sh -t <TunnelID> -u <UID> -i <AK> -k <SK> -n <AgentName> -v <AgentID> -e <Endpoint> -f <AgentDeployMethod> -c <CpuUsage> -m <MemoryUsage> -d <LogMemoryUsage> -b <MaxBandwidth> -a <IP> -g <EcsRoleName>

    参数

    说明

    TunnelID

    通道ID。

    UID

    阿里云账号ID。

    AK

    AccessKey ID,仅密钥方式部署代理需要。

    SK

    AccessKey Secret,仅密钥方式部署代理需要。

    EcsRoleName

    授予ECS机器的角色名称,仅RAM角色部署代理需要。

    AgentName

    代理名称。

    AgentID

    代理ID。

    Endpoint

    Endpoint,public表示公网。

    AgentDeployMethod

    代理的部署方式,default代表独立进程方式。

    CpuUsage

    指定CPU核数,仅设置该值时才会显示。

    MemoryUsage

    指定使用内存(GB),仅设置该值时才会显示。

    LogMemoryUsage

    指定日志占用空间(GB),仅设置该值时才会显示。

    MaxBandwidth

    指定最大可用带宽(MB),仅设置该值时才会显示。

    IP

    配置允许访问代理的IP地址段。

  4. 代理部署成功后,可新建数据地址并关联指定代理,用此数据地址创建的迁移任务,将会在指定代理机器上执行迁移任务。

离线部署代理

当代理网络类型选择专线/VPN(VPC)时,使用离线方式部署代理。

  1. 查看通过命令部署运行代理弹出框中内容,登录准备安装代理的部署机(可使用包括阿里云提供的连接工具,如Workbench、VNC或第三方客户端工具)。

  2. 手动下载代理安装包aliyun_import_agent_offline_bundle.tar.gz,并将代理安装包放到部署机上。

  3. 在部署机上,找到代理安装包的位置,并执行命令tar -zxvf aliyun_import_agent_offline_bundle.tar.gz解压代理安装包。

  4. 解压成功后,进入aliyun_import_agent_offline_bundle目录下,复制弹出框中运行和部署代理命令,并在部署机上的某级本地磁盘目录(而非Nas等远程挂载目录)里运行该命令,如果运行成功则说明代理部署成功,具体命令格式与参数说明如下(后续可能有更新,请以控制台实际输出为准):

    chmod 755 aliyun_import_agent_deploy.sh;./aliyun_import_agent_deploy.sh -t <TunnelID> -u <UID> -i <AK> -k <SK> -n <AgentName> -v <AgentID> -e <Endpoint> -f <AgentDeployMethod> -c <CpuUsage> -m <MemoryUsage> -d <LogMemoryUsage> -b <MaxBandwidth> -l <VPCType> -a <IP> -g <EcsRoleName>

    参数

    说明

    TunnelID

    通道ID。

    UID

    阿里云账号ID。

    AK

    AccessKey ID,仅密钥方式部署代理需要。

    SK

    AccessKey Secret,仅密钥方式部署代理需要。

    EcsRoleName

    授予ECS机器的角色名称,仅RAM角色部署代理需要。

    AgentName

    代理名称。

    AgentID

    代理ID。

    Endpoint

    Endpoint,vpc代表专线/VPN。

    AgentDeployMethod

    代理的部署方式,default代表独立进程方式。

    CpuUsage

    指定CPU核数,仅设置该值时才会显示。

    MemoryUsage

    指定使用内存(GB),仅设置该值时才会显示。

    LogMemoryUsage

    指定日志占用空间(GB),仅设置该值时才会显示。

    MaxBandwidth

    指定最大可用带宽(MB),仅设置该值时才会显示。

    VPCType

    网络类型为VPC时的特有参数。

    IP

    配置允许访问代理的IP地址段。

  5. 代理部署成功后,可新建数据地址并关联指定代理,用此数据地址创建的迁移任务,将会在指定代理机器上执行迁移任务。

代理扩容

扩容代理时,先创建新代理并生成部署脚本,完成代理部署后,在地址管理页面修改对应地址并关联新代理即可。整个扩容过程对迁移中的任务无影响,无需对任务进行任何操作。

  1. 创建新代理,详情请参见创建代理

  2. 生成部署代理脚本,详情请参见生成部署代理脚本

  3. 部署代理,详情请参见部署代理

  4. 将新创建的代理添加到数据地址中,具体操作步骤如下:

    1. 在左侧导航栏,选择地址管理

    2. 单击地址管理页面操作栏的修改选项,弹出修改地址 弹出框。

    3. 在弹出框里点击代理下拉框,勾选需要关联的代理

    4. 点击确定。

代理缩容

代理缩容时,先在地址管理页面修改对应地址,移除需要剔除的代理。完成移除后,在代理管理页面删除对应代理;如确认该机器仅用于迁移且不会影响其他业务,可选择释放代理机器。整个缩容过程对迁移中的任务无影响,无需对任务进行任何操作。

  1. 移除需要剔除的代理,具体操作步骤如下:

    1. 登录在线迁移控制台,在左侧导航栏,选择地址管理

    2. 单击地址管理页面操作栏的修改选项,弹出修改地址框。

    3. 在弹出框里点击代理下拉框,从下拉框中移除需要剔除的代理。

    4. 点击确定。

  2. 清理代理

    1. 在线迁移控制台删除代理

      1. 在左侧导航栏,选择代理管理

      2. 单击代理管理页面操作栏中的删除选项,弹出确认删除对话框。

      3. 点击确定

  3. 释放代理机器(可选)

    如果您确认该机器仅用于迁移目的,并且确保删除后不会对其他业务造成影响,则可以释放该代理机器。

代理升级

  1. 暂停迁移任务,具体操作步骤如下:

    1. 登录在线迁移控制台,在左侧导航栏,选择迁移任务

    2. 点击迁移任务页面操作栏中的管理选项,进入迁移任务详情页面。

    3. 在迁移任务详情页面的下方历史栏中,点击暂停迁移任务详情页面展示数据迁移进度(包括数据量和文件数完成比例饼图、带宽及平均迁移文件数折线图)以及历史执行记录表格。在历史表格的操作列中,单击暂停可暂停当前正在执行的迁移任务。

  2. 停止代理机器上的代理程序,具体操作步骤如下:

    1. 登录代理机器,进入到代理程序根目录(例如/root/aliyun_import_agent_online_res)。

    2. 执行bash bin/stop.sh,等待代理程序停止。

  3. 查看旧的代理版本号,具体操作步骤如下:

    1. 登录代理机器,执行./bin/drs_import_agent -v 命令,记录下版本号Version

      [r xxx : aliyun_import_agent_online_res]# ./bin/drs_import_agent -v
      Version: 1.4.2.992
      BuildTime: 2024-11-11_16:04:36_CST
      Bu xxx p_ts-1.5.6
  4. 部署代理,具体操作步骤如下:

    1. 生成部署代理脚本,详情请参见生成部署代理脚本

    2. 部署代理,详情请参见部署代理

  5. 查看代理是否升级成功,具体操作步骤如下:

    1. 登录代理机器,进入到代理程序根目录(例如/root/aliyun_import_agent_online_res)。

    2. 执行./bin/drs_import_agent -v 命令,跟旧的版本号进行比对,如果版本号更新,则说明代理升级成功。

代理进程的查看、启动与停止

说明
  • 代理部署成功后,代理进程会自动启动,通常无需额外操作。

  • 由于代理进程未加入自启动项,故当机器重启或其他原因进程被停止时,需要手动启动代理进程。

  • 当代理不再使用时,建议及时停止代理进程,并删除控制台上对应的代理实例。

  1. 查看代理进程的步骤如下:

    1. 登录代理机器,进入到代理程序根目录(例如/root/aliyun_import_agent_online_res)。

    2. 执行ps -ef | grep drs_import_agent,可看到进程信息,如进程号、运行目录等。执行以下命令,确认 drs_import_agent 进程已成功运行。

      [root@xxx aliyun_import_agent_online_res]# ps -ef | grep drs_import_agent
      root     19182     1  1 14:35 pts/0    00:00:05 /xxx/aliyun_import_agent_online_res/bin/drs_import_agent -c /xxx/aliyun_import_agent_online_res/config/agent-config.properties
      root     20305 18122  0 14:40 pts/0    00:00:00 grep --color=auto drs_import_agent
    3. 代理运行时会产生日志文件,默认生成在代理程序根目录的logs/下,日志文件会根据您部署时指定的日志占用空间参数自动滚动。

  2. 启动代理进程的步骤如下:

    1. 登录代理机器,进入到代理程序根目录(例如/root/aliyun_import_agent_online_res)。

    2. 首先查看代理进程,确认进程不存在时,执行bash bin/start.sh来启动代理进程。

  3. 停止代理进程的步骤如下:

    1. 登录代理机器,进入到代理程序根目录(例如/root/aliyun_import_agent_online_res)。

    2. 执行bash bin/stop.sh,等待代理程序停止。

    3. 当代理停止后,登录迁移服务控制台,查看此代理实例的状态,确认为“连接异常”,则说明代理已完全停止。

代理关键配置参数

部署代理时,会根据您在控制台生成的代理部署命令来个性化配置代理的运行参数。这些参数都保存在部署代理程序根目录的config/目录下的agent-config.properties文件中(例如/root/aliyun_import_agent_online_res/config/agent-config.properties)。

重要
  • 部署完成后的默认配置参数适用于常见的迁移场景,通常无需修改。

  • 以下表格中的仅为代理的部分关键参数,表格中未列出的配置参数请勿修改。

  • 在修改表格中的配置参数前,请务必确认该参数的功能、作用域和修改风险等。

配置项参数

有效值

说明

ssrfBlacklistOn

默认值:true

有效值:truefalse

重要

关闭该功能将会降低代理进程的可控性,存在一定的安全风险。

是否启用SSRF黑名单检测功能。若启用,则在建立任意网络连接前,都检测远端主机的IP地址,若其属于私网地址范围内,则拒绝建立连接。

示例:

ssrfBlacklistOn=false

私网地址范围包括:

  • 0.0.0.0/8

  • 127.0.0.0/8

  • 10.0.0.0/8

  • 11.0.0.0/8

  • 25.0.0.0/8

  • 26.0.0.0/8

  • 30.0.0.0/8

  • 33.0.0.0/8

  • 192.168.0.0/16

  • 100.64.0.0/10

  • 172.16.0.0/12

  • 169.254.0.0/16

  • ::1/128

  • fe80::/10

  • fc00::/7

allowRedirectProviders

默认值:空

有效值:任意数据地址类型,如有多个请以,分隔

说明

在线迁移服务默认所有数据地址类型都不支持重定向,若源、目标地址请求返回重定向状态码时,迁移将报UnsupportedRedirect错误码。

在访问源、目标地址时,是否支持http协议重定向特性。仅对指定的数据地址类型生效。

示例:

allowRedirectProviders=qiniu,s3

underscoreUserMetaDropOrSkipUids

默认值:空

有效值:多字段类型,格式为<UID>,drop;。其中<UID>为您当前迁移账号的阿里云主账号UID。

是否丢弃源文件的元数据Key中包含无效字符的元数据项。详细释义见错误码SourceMetaInvalid

示例:

underscoreUserMetaDropOrSkipUids=1234567890123456,drop;

当配置项修改完成并保存后,必须重新启动代理进程才能生效。