全部产品
Search
文档中心

在线迁移服务:迁移实施

更新时间:Nov 27, 2024

本文介绍数据迁移的注意事项、迁移限制说明和操作步骤。

注意事项

使用在线迁移服务迁移数据时需要注意以下事项:

  • 创建目的数据地址时,待迁移目录请使用绝对路径,必须以正斜线(/)开头和结尾,不支持环境变量和特殊字符。

  • 创建目的数据地址时,需确保待迁移目录存在且正确有效。

  • 在线迁移服务使用源站存储服务提供商公开的标准接口来访问源数据,其行为依赖于源站存储服务提供商的具体实现。

  • 在线迁移会占用源地址和目的地址的资源。若您的业务比较重要,建议您对迁移任务设置限速,或在空闲时间启动迁移任务。

  • 在线迁移前会检查源地址和目的地址的文件。如果您源地址和目的地址有相同文件名的文件,且在迁移任务中配置了覆盖方式为覆盖,则迁移时会直接覆盖目的地址的文件。若两个文件内容不同,必须更改文件名或做好备份。

警告

请您务必在迁移任务完成后,校验目的端迁移数据,确保数据无误。您在删除源数据前,未校验目的端迁移数据无误,导致数据丢失所引起的一切损失和后果均由您自行承担。

迁移限制说明

  • 若您迁移的源地址中设置了静态网站托管,数据迁移时会额外扫描出实际不存在的目录。例如,上传文件myapp/resource/1.jpg,开启静态网站托管后,迁移服务扫描会得到3个对象,分别为myapp/myapp/resource/myapp/resource/1.jpg,其中myapp/myapp/resource/会迁移失败,但不影响myapp/resource/1.jpg的正常迁移。

  • 若您源bucket中存在以'/'结尾的对象,在迁移该对象时,会忽略任务覆盖方式,该对象的属性总是会设置到目的LocalFs对应的目录属性中。

  • 若您的源地址中有以正斜线(/)结尾的文件,迁移到目的地址后 ,会以目录形式展示,如源端存在a/、a/b/a/b/c/三个文件,迁移到目的地址后会展示为a/b/c/的目录形式。

  • 目前仅支持单次迁移单个Bucket数据,无法将整个账号的数据一次性迁移。

  • 不支持金融云、政务云的数据迁移。

  • 迁移阿里云OSS数据至LocalFS的属性说明如下所示:

    • 支持迁移的属性:LastModifyTime -> ModifyTime(LocalFS)。

    • 不支持迁移的属性(包括但不限于):x-oss-meta-*、Content-Type,Cache-Control,Content-Encoding,Content-Disposition、Content-Language 、Expires、StorageClass、Acl、服务端加密、标签Tagging、用户自定义header x-oss-persistent-header等。

      说明

      不支持迁移的属性包括但不限于以上列举的内容,其他未列举的属性行为暂无法确定,以实际迁移完成的内容为准。

步骤一:选择地域

  1. 使用创建的RAM用户登录阿里云在线迁移服务管理控制台

  2. 在顶部菜单栏左上角处,选择代理所在的地域,如下图所示。

    image.png

    重要
    • 不同地域内的通道、代理、数据地址和迁移任务不通用,请谨慎选择。

    • 优先选择代理所在的地域。如果没有代理所在地对应的地域,请尽可能选择接近代理所在的地域创建迁移任务。

步骤二:创建通道

  1. 在左侧导航栏,选择在线迁移服务>通道管理,单击新建通道

  2. 新建通道对话框,配置如下参数,然后单击确定

    参数

    是否必填

    说明

    名称

    通道的名称。

    • 通道名称不能为空,最大长度为100个字符。

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

    带宽上限

    通道可以使用的带宽上限。

    • 不填写:默认值为0,表示不限制带宽。

    • 设置该值:取值范围请参考控制台提示。

    重要

    可用带宽取决于网络链路的实际带宽。

    请求数/秒

    通道每秒请求数上限。

    • 不填写:默认值为0,表示不限制每秒请求数。

    • 设置该值:取值范围请参考控制台提示。

    警告

    请根据数据源存储系统的能力认真评估,过大会影响业务正常运行,建议根据控制台提示设置。

说明

关于通道的更多信息,请参见通道管理

步骤三:创建代理

  1. 在左侧导航栏,选择在线迁移服务>代理管理,单击新建代理

  2. 新建代理对话框,配置如下参数,然后单击确定

    参数

    是否必填

    说明

    名称

    代理名称。

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

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

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

    网络类型

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

    • 公网(公网):此代理通过公网进行数据迁移。此方式要求代理机器必须可以访问与迁移服务部署地域的在线迁移服务公网域名。例如,您当前控制台在华北2(北京)地域,则此代理机器必须可以访问在线迁移服务华北2(北京)地域的公网域名cn-beijing.mgw-tc.aliyuncs.com

    • 专线/VPN(VPC):此代理通过专线进行数据迁移。此方式要求代理机器必须可以访问与迁移服务部署地域的在线迁移服务内网域名。例如,您当前控制台在华北2(北京)地域,则此代理必须可以访问在线迁移服务华北2(北京)地域的内网域名cn-beijing.mgw-tc-internal.aliyuncs.com。建议您使用与迁移服务部署地域的ECS部署代理。

    部署方式

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

    通道

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

    例如:名称为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的带宽可用,请提前规划并谨慎分配带宽。

  3. 生成部署代理脚本。具体操作,请参见生成部署代理脚本

说明

关于代理的更多信息,请参见代理管理

步骤四:创建源地址

  1. 在左侧导航栏,选择在线迁移服务>地址管理,单击新建地址

  2. 新建地址面板,配置如下参数,然后单击确定

    参数

    是否必选

    说明

    名称

    输入源数据地址名称。名称命名规则如下:

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

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

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

    类型

    选择Alibaba OSS

    区域

    选择源地址所在的地域,例如华东1(杭州)

    授权角色

    存储桶(Bucket)

    输入当前控制台所在账号下待迁移数据所在的存储桶(Bucket)名称。

    代理

    选择需要使用的代理名称。

    重要
    • 仅通过专线或VPN迁移数据上云、自建存储数据迁移上云需要使用该参数。

    • 指定通道下,最多可同时选择30个代理。

步骤五:创建目的地址

  1. 在左侧导航栏,选择在线迁移服务 > 地址管理,单击新建地址

  2. 新建地址面板,配置如下参数,然后单击确定。

    参数

    是否必选

    说明

    名称

    输入目的数据地址名称。名称命名规则如下:

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

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

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

    类型

    选择LocalFS

    待迁移目录

    您可以指定数据路径前缀将源数据迁移至指定目录下。

    请使用绝对路径,必须以正斜线(/)开头和结尾,不支持环境变量和特殊字符。

    例如,设置源数据地址前缀为/example/src/,此路径下有文件example.jpg,设置目的数据地址前缀为example/dest/,则迁移后文件example.jpg的完整路径为example/dest/example.jpg

    通道

    选择需要使用的通道名称。

    重要
    • 仅通过专线或VPN迁移数据上云、自建存储数据迁移上云需要使用该参数。

    • 目的数据地址是LOCALFS的以及需要走专线(金融云、专有云等)的场景需要关联代理。

    代理

    选择需要使用的代理名称。

    重要
    • 仅通过专线或VPN迁移数据上云、自建存储数据迁移上云需要使用该参数。

    • 指定通道下,最多可同时选择30个代理。

步骤六:创建迁移任务

  1. 在左侧导航栏,选择在线迁移服务 > 迁移任务,单击新建任务

  2. 选择地址页面,配置如下参数,然后单击下一步

    参数

    是否必选

    说明

    名称

    输入迁移任务名称。名称命名规则如下:

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

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

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

    源地址

    选择已创建的源地址。

    目的地址

    选择已创建的目的地址。

  3. 配置任务页面,配置如下参数。

    参数

    是否必选

    说明

    迁移带宽

    选择迁移带宽。

    • 默认:默认最大带宽,实际速度取决于文件大小和文件数量。

    • 指定上限:根据控制台提示指定具体的带宽上限。

    重要
    • 实际迁移带宽与数据源、网络、目的限流、文件大小等因素有关,不一定能达到指定上限。

    • 请您评估数据源、迁移目的、业务情况、网络带宽等,并根据实际情况选择合理数值,限流不恰当可能会影响业务的正常运行。

    每秒迁移文件数

    选择每秒迁移文件数。

    • 默认:每秒迁移文件数。

    • 指定上限:根据控制台提示指定具体的每秒迁移文件数。

    重要
    • 实际迁移带宽与数据源、网络、目的限流、文件大小等因素有关,不一定能达到指定上限。

    • 请您评估数据源、迁移目的、业务情况、网络带宽等,并根据实际情况选择合理数值,限流不当可能会影响业务的正常运行。

    覆盖方式

    选择同名文件的覆盖方式。

    • 不覆盖:不迁移该文件。

    • 全部覆盖:源地址中的文件会覆盖目的地址中的文件。

    • 根据最后修改时间覆盖

      • 当源地址中的文件最后修改时间晚于目的地址中的文件最后修改时间时,目的地址中的文件会被覆盖。

      • 当源地址中的文件最后修改时间与目的地址中的文件最后修改时间相同时,若二者的Size和Content-Type有一项不同,则目的地址中的文件会被覆盖。

    • 警告
      • 根据最后修改时间覆盖无法严格保证一定不会覆盖更新的文件,存在旧文件覆盖新文件的风险。

      • 若您选择根据最后修改时间覆盖的覆盖方式,请务必确保源端文件能返回最后修改时间SizeContent-Type等信息,否则覆盖策略可能失效,产生非预期的迁移结果。

      • 选择不覆盖根据最后修改时间覆盖时,为执行后续覆盖判断,会分别请求源端和目的端meta信息一次,因此会在源端和目的端产生对应的请求费用。

    迁移报告

    迁移报告推送方式。

    • 不推送(默认):不推送迁移报告至目的LocalFS。

    • 推送:将迁移报告推送至目的LocalFS,详细路径请参考后续操作

    重要
    • 迁移报告推送会占用目的端一定的存储空间。

    • 迁移报告的推送存在一定的时间延时,请您耐心等待迁移报告的生成。

    • 每个任务执行记录都有一个唯一的ID,请注意,迁移报告只会推送一次,请谨慎删除!

    迁移日志

    迁移日志推送方式。

    • 不推送(默认):不推送迁移日志。

    • 推送:将迁移日志推送至日志服务SLS,可在SLS上查看迁移日志。

    • 仅推送文件错误日志:仅将错误迁移日志推送至日志服务SLS,可在SLS上查看错误迁移日志。

    当选择推送仅推送文件错误日志时,在线迁移服务会在日志服务SLS中创建名称为aliyun-oss-import-log-阿里云账号ID-当前迁移服务部署地域的Project,例如aliyun-oss-import-log-137918634953****-cn-hangzhou。

    重要

    请务必完成以下操作后,再选择推送仅推送文件错误日志,否则可能会导致迁移任务异常。

    • 已开通SLS服务。

    • 已在日志服务授权项授权页面中同意授权。

    日志服务授权

    迁移日志选择推送仅推送文件错误日志时出现该选项。

    单击授权进入云资源访问授权页面,页面会对应创建AliyunOSSImportSlsAuditRole角色,并对角色做授权,请单击同意授权完成授权。

    文件名

    文件名过滤器。

    支持包含排除两种过滤规则,请参见RE2库的正则表达式语法(仅支持部分表达式语法)。例如:

    • .*\.jpg$表示以.jpg结尾的所有文件。

    • ^file.*默认表示根目录下以file开头的所有文件。

      如果源数据地址设置了前缀,例如源数据地址前缀为data/to/oss/,则需要使用^data/to/oss/file.*来匹配指定前缀下以file开头的所有文件。

    • .*/picture/.*表示匹配某一级为picture的子目录。

    重要
    • 当过滤规则为包含时,符合规则的文件都会被迁移,如果有多条规则,符合任意一个条件的文件都会被迁移。

      例如2个文件picture.jpgpicture.png,设置一条包含规则过滤.*\.jpg$,此时只会迁移picture.jpg文件,如果同时也设置了包含规则过滤.*\.png$,则2个文件都会被迁移。

    • 当过滤规则为排除时,符合规则的文件都不会被迁移,如果有多条规则,符合任意一个条件的文件都不会被迁移。

      例如2个文件picture.jpgpicture.png,设置一条排除规则过滤.*\.jpg$,此时只会迁移picture.png,如果同时也设置了排除规则过滤.*\.png$,则2个文件都不会被迁移。

    • 排除规则优先。当一个文件既在排除规则中又在包含规则中,则文件不会被迁移。

      例如文件file.txt,设置排除规则过滤.*\.txt$文件,并同时设置包含规则过滤file.*,则此时file.txt文件不会被迁移。

    文件修改时间

    文件最后一次修改时间过滤器。

    可指定文件最后一次修改时间作为过滤规则。如果指定了时间范围,则只迁移文件最后一次修改时间在指定时间范围内的文件,具体规则如下。

    • 当仅指定开始时间为2019年01月01日,不指定结束时间时,则只迁移文件最后一次修改时间晚于等于2019年01月01日的文件。

    • 当仅指定结束时间为2022年01月01日,不指定开始时间时,则只迁移文件最后一次修改时间早于等于2022年01月01日的文件。

    • 当指定开始时间为2019年01月01日,结束时间为2022年01月01日,则迁移文件最后一次修改时间范围在晚于等于2019年01月01日,且早于等于2022年01月01日的文件。

    是否迁移

    是否迁移特殊类型的实体。勾选表示启用迁移,不勾选表示禁用。

    软链接:

    • 启用时,源地址中所有的Symlink对象也会被加入待迁移队列,同时会被统计到迁移任务的【文件数】、【存储量】字段。会在目的地址中创建对应的软链接文件,并将源Symlink对象的UserMeta中(支持迁移)的属性设置到软链接文件的属性中,软链接文件的Target属性值取决于【是否转换Target】选项。

    • 禁用时,源地址中所有的Symlink对象将会被忽略,不会被统计到迁移任务的【文件数】、【存储量】字段。

    重要

    任何情况下,都不会额外迁移源地址中Symlink对象所指向的目标对象(除非该目标对象也在本次迁移范围内)。

    是否转换Target

    对源地址中软链接文件的Target属性进行转换,以尽可能使迁移后的软链接文件仍可正常指向其目标文件。勾选表示启用转换,不勾选表示禁用转换。

    重要
    • 此选项仅在启用迁移软链接时才生效。

    • 无论是否转换Target,迁移总是不会检查目标文件是否存在、目标文件类型是否合法以及目标文件是否有访问权限等。

    启用时,执行字符串替换操作,将源软链接的Target属性中的SrcPrefix(若匹配)替换成DestPrefix,并将替换后的结果值设置到目的软链接文件的Target属性上。

    说明

    示例:假设迁移任务配置的SrcPrefix="cloud_base/",DestPrefix="/mnt/nas1/",cloud_base/links/a.lnk是源地址下的一个Symlink对象,假设其Target属性:

    • 为"cloud_base/data/a.txt"。则替换后的最终Target结果值为"/mnt/nas1/data/a.txt"。

    • 为"cloud_outer/data/a.txt"。则替换未能匹配,最终Target结果值仍为"cloud_outer/data/a.txt"。

    禁用时:不转换,将源软链接的Target属性原始值设置到目的软链接文件的Target属性上。

    执行时间

    重要
    1. 正在迁移中的任务,在下一个指定时间前仍未结束本轮迁移,则会在本轮迁移结束后,自动顺延至下一个指定时间启动任务,直至完成指定次数的迁移。

    2. 迁移任务并发数量限制:迁移服务部署地域选择中国香港或中国内地时最多支持10个任务并发,选择海外地域时最多支持5个,超出限制后可能导致定时任务调度无法按预期执行。

    确定迁移任务的执行时间。

    • 立即执行:立即执行当前任务。

    • 指定执行时间:指定任务执行期间每天的执行时间段。默认情况下,任务将在指定的起始时间启动,在指定的停止时间暂停。

    • 周期调度:通过调整执行频率和执行次数来启动任务。

      • 执行频率:支持以每小时、每天、每周、一周中某些天、自定义等5种频率,具体请查看执行频率参考

      • 执行次数:指定任务的执行次数,如不设置则默认执行一次,最大执行次数请参考控制台提示。

    重要

    可随时手动启动和暂停任务,不受自定义执行时间的影响。

  4. 阅读在线迁移服务协议,选中我已理解并确认,合规承诺声明且当迁移任务完成时,我有确认迁移数据一致性的义务和责任,然后单击下一步

  5. 检查配置信息,确认无误后,单击确定,等待迁移任务执行。

执行频率参考

执行频率

说明

示例

每小时

选择以每小时为频率,可搭配执行次数一起使用。

当前时间为8:05分,指定每小时为频率,执行3次任务,则会在下一个整点9点钟开始第一次任务。

  • 若任务在下一个整点前结束,则会在下一个整点10点钟开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在下一个整点尚未结束,在当日12:30分结束,则会在下一个整点13点钟开始第二次迁移,以此类推直到完成指定次数的迁移。

每天

选择以每天为频率时,需设置0~23小时中任意整点时间启动任务,可搭配执行次数一起使用。

当前时间为8:05分,指定每天10点,执行5次,会在当天10点开始第一次任务。

  • 若任务在次日10点前结束,则会在次日10点开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在次日10点前尚未结束,在次日12:05分结束,则会在第三日的10点开始第二次任务,以此类推直到完成指定次数的迁移。

每周

选择每周时,需指定周内任意一天,并设置0~23小时中任意整点时间启动任务,可搭配执行次数一起使用。

当前时间为周一8:05分,指定每周一的10点,执行10次,则会在当天10点时开始第一次任务。

  • 若任务在下周一10点前结束,则会在下周一10点开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在下周一10点前尚未结束,实际在下周一12:05分结束,则会在下下周的10点开始第二次任务,以此类推直到完成指定次数的迁移。

一周中某些天

选择一周中某些天时,支持选择周内任意几天,并设置0~23小时中任意整点时间启动任务。

当前为周三8:05,指定每周一、三、五的10点,则会在当天的10点时开始第一次任务。

  • 若任务在周五10点前结束,则会在周五10点开始第二次任务,以此类推直到完成指定次数的迁移。

  • 若任务在周五10点前尚未结束,实际在下周一12:05分结束,则会在下周三的10点开始第二次任务,以此类推直到完成指定次数的迁移。

自定义

使用Cron表达式自定义设置任务启动时间。

说明

Cron表达式由6个字段组成,每个字段之间使用空格分隔,依次表示任务的执行时间规则:秒 分钟 小时 日 月 星期。

以下Cron表达式示例仅供参考,更多请参照Cron表达式生成器:

  • 0 0 * * * *:表示每小时的0分0秒执行任务。

  • 0 0 0/1 * * ?:表示每隔1小时执行任务(最小间隔1小时)。

  • 0 0 12 * * MON-FRI:表示每周一至周五的12点执行任务。

  • 0 30 8 1,15 * *:表示每月1日和15日的8点30分执行任务。

步骤七:校验数据

迁移服务仅负责数据的迁移,无法保证数据的一致性和完整性。迁移任务完成后,请您全量校验迁移的数据,务必自行做好源端和目的端数据一致性校验。

警告

请您务必在迁移任务完成后,校验目的端迁移数据。您在删除源数据前,未校验目的端迁移数据无误,导致数据丢失所引起的一切损失和后果均由您自行承担。