You need to enable JavaScript to run this app.
导航

配置文件说明

最近更新时间2024.04.18 17:04:35

首次发布时间2023.08.14 18:05:40

TOS Import 工具需要设置 server 和 task 配置文件用于部署迁移环境和创建迁移任务。本文介绍 server 和 Ttask 配置文件的参数。

背景说明

  • server 配置文件:指 server.yaml,用于在部署迁移环境时指定工具工作路径,server 管理端口等,不支持热加载。
  • task 配置文件:针对本地文件、URL 文件、支持 S3 协议的对象存储文件提供了三种模板,即 task-local.template.yamltask-url.template.yamltask-s3.template.yaml。该配置文件用于在创建迁移任务时配置 Access Key ID、Secret Access Key 等信息,配置一次性载入,不支持热加载。

server 配置文件

work_dir: "/root/tos-import/"
work_nodes:
  - ""
  - ""
  - ""
ssh_user: ""
ssh_password: ""
ssh_keyfile: ""
ssh_port: "22"
mgr_port: "19931"
server_port: "19932"
log_level: "Info"
process_num_per_task:  1
concur_per_process:  32
failed_num_to_abort: 0

server.yaml 文件参数说明如下:

参数

说明

work_dir

工具所在目录的绝对路径。默认为当前路径。分布式部署时,所有worker 节点工作在该路径。

work_nodes

子节点列表。默认第一个节点为 server 管理节点,其他节点为执行任务的子节点。server 管理节点为工具部署所在节点。若有扩缩容需要,可直接修改 work_nodes 参数。

说明

仅分布式模式需要配置 work_nodes 参数。

ssh_user

使用 SSH 连接子节点的用户名称。

说明

仅分布式模式需要配置 ssh_user 参数。

ssh_password

使用 SSH 连接子节点的密码。

说明

仅分布式模式需要配置 ssh_password 参数。

ssh_keyfile

子节点的公钥文件路径。密码和公钥二选一即可,同时设置密码和公钥,优先使用公钥。

说明

仅分布式模式需要配置 ssh_keyfile 参数。

ssh_port

使用 SSH 连接子节点的端口。默认为 22

说明

仅分布式模式需要配置 ssh_port 参数。

mgr_port

server 管理端口。tos-import 命令发送至该端口,默认为 19931

server_port

server 服务端口。该端口用于 server 与 worker 之间通信,默认为 19932

log_level

日志级别。该参数用于调整日志的打印级别。设置后,仅会打印高于该级别的日志。可选 TraceDebugInfoWarnErrorFatal,默认为 Info

process_num_per_task

迁移进程总数。所有 work 节点上的 executor 进程总数,默认等于 work 节点数量,至少为 1

concur_per_process

进程并发数。每个 executor 进程内的并发数,默认为 32

failed_num_to_abort

在连续的 X+1 个对象迁移失败后,暂停迁移任务,默认为 0。例如设置 failed_num_to_abort2,则连续 3 个对象迁移失败后,TOS Import 会自动暂停迁移任务。 取值说明如下:

  • failed_num_to_abort0时,只要有对象迁移失败,TOS Import 就会暂停迁移任务。
  • failed_num_to_abort 为负数时,迁移任务不会因为对象连续迁移失败而中断,将会一直迁移直至结束。

说明

failed_num_to_abort 参数用于设置连续迁移失败的对象数量,不包含断断续续迁移失败对象,且迁移过程中存在并发,暂停迁移任务后,迁移报表展示的失败对象数量可能大于 failed_num_to_abort 参数值。

task 配置文件

说明

一个迁移任务对应一次配置文件的载入,迁移过程中不支持变更已创建任务的配置,如有需要,您需要创建新的迁移任务。

task-local.template.yaml

当数据源为本地文件时,需要设置 task-local.template.yaml 文件,用于创建迁移任务。

task_name: "tesk"
src_type: "local"
src_prefix: "/root/uploads"
src_suffix: ""
dest_type: "tos"
dest_ak: "your access key"
dest_sk: "your secret key"
dest_security_token: ""
dest_region: "cn-beijing"
dest_endpoint: "http://tos-cn-beijing.volces.com"
dest_http_proxy: ""
dest_bucket: "test"
dest_prefix: ""
rename_regex: ""
rename_to: ""
is_incremental: false
incremental_interval: 3600
incremental_times: 3
import_since: ""
over_write_policy: "force"
task_bandwidth: 102400
task_file_mps: 1000
verify_data_crc64: true
failed_num_to_abort: 0

task-local.template.yaml 文件参数说明如下:

参数

是否必选

说明

task_name

迁移任务名称,且需要保持全局唯一,建议与业务相关,便于查询。

src_type

迁移源端类型,支持如下类型:

  • local:本地文件。
  • url:URL 列表文件。
  • s3:支持 S3 协议对象存储文件。

本场景取值 local

src_prefix

需要迁移的源端文件路径前缀,用于迁移指定前缀的文件。文件路径末尾有 /,说明迁移该目录下所有文件;没有 /,则说明迁移以该前缀命名的文件或目录。例如:

  • /root/dir1/ :表示迁移 /root/dir1/ 目录下所有文件。
  • /root/dir1/abc: 表示迁移 /root/dir1/ 目录下前缀为 abc 的文件或目录。

src_suffix

需要迁移的源端文件的后缀,用于迁移指定后缀的文件,例如 .doc 表示迁移后缀为 .doc 的文件。默认为空表示迁移所有文件。

dest_type

目的端类型,当前仅支持 tos

dest_ak

访问目的端对象存储的 AccessKey ID。

说明

查看 AccessKey ID 和 Secret AccessKey 的具体步骤,请参见 Access Key(密钥)管理

dest_sk

访问目的端对象存储的 AccessKey Secret。

dest_security_token

目的端的 Security Token。

说明

使用 Security Token 的详细介绍,请参见使用 STS 临时 AK/SK+Token 访问火山引擎 TOS

dest_region

目的端对象存储的 Region。

dest_endpoint

目的端对象存储的域名。

说明

关于域名的详细介绍,请参见地域和访问域名

dest_http_proxy

目的端代理服务器 IP。

dest_bucket

目的端存储桶的名称。

dest_prefix

目标对象后缀,用于为迁移后的对象自动添加该前缀。

rename_regex

文件名称替换正则表达式,用于对源端的对象名称进行正则匹配,对所有匹配成功的字符进行替换。

rename_to

文件名称替换字符串,对源端的对象名称符合正则匹配的所有字符替换成该字符串。

is_incremental

是否开启增量迁移,取值说明如下:

  • true:开启。
  • false:不开启。

默认为 false

incremental_interval

增量迁移时间间隔,单位为秒。

说明

仅开启增量迁移后,incremental_interval 参数才有效。

incremental_times

增量迁移次数。

说明

仅开启增量迁移后,incremental_times 参数才有效。

import_since

迁移时间点,即迁移该时间点之后的数据,格式为 yyyy-MM- dd HH:mm:ss,例如 2006-01-02 15:04:05。

over_write_policy

目标端存在同名文件时,文件覆盖策略,支持如下类型:

  • force:强制覆盖目标端文件。
  • none:不覆盖目标端文件。
  • mtime:源端文件修改时间晚于目标端文件修改时间时,覆盖目标端文件。

默认为 force

task_bandwidth

迁移流控总带宽速率。单位:KB/s,默认为 102400KB/s。

说明

  • 迁移流控总带宽速率单位为 KB/s,即如果您需要设置迁移流控总带宽速率为 1GB/s,则 task\_bandwidth 参数需要设置为 1048576。
  • 单个节点的带宽流控按照 executor 进程数量均分后不满 1024KB/s 时,按 1024KB/s 生效。

task_file_mps

迁移任务的总文件数流控。单位:个文件/s,默认为 1000个文件/s。

verify_data_crc64

是否开启迁移任务文件 CRC64 校验,取值说明如下:

  • true:开启。
  • false:不开启。

默认为 true

failed_num_to_abort

任务中断阈值,取值说明如下:

  • failed_num_to_abort < 0:迁移任务时,无论迁移失败多少对象,都会继续执行任务,适用于长时间、不确定源端对象能否访问,弱网环境下的业务场景。
  • failed_num_to_abort = 0:只要有一个对象迁移失败,将中断迁移任务,并显示任务失败,适用于较短时间迁移、测试、强一致性的业务场景。
  • failed_num_to_abort = X:连续第X+1个对象迁移失败后,将中断迁移任务,并显示任务失败,适用于长时间迁移,容忍网络抖动的业务场景。

说明

  • task 文件的 failed_num_to_abort 参数优先级高于 server 文件的 failed_num_to_abort 参数,即如果同时在 task 文件和 server 文件配置了该参数,将优先按照 task 文件的参数配置执行,如果没有在 task 文件配置 failed_num_to_abort 参数,则默认按照 server 文件 failed_num_to_abort 参数配置执行。
  • 您可以使用 ./tos-import retry --id <任务ID>命令,创建一个新任务,重试任务中失败对象。

task-url.template.yaml

当数据源为 URL 列表文件时,需要设置 task-url.template.yaml文件,用于创建迁移任务。

task_name: "task"
src_type: "url"
src_http_proxy: ""
url_list: "/root/url.list"
dest_type: "tos"
dest_ak: "your access key"
dest_sk: "your secret key"
dest_security_token: ""
dest_region: "cn-beijing"
dest_endpoint: "http://tos-cn-beijing.volces.com"
dest_http_proxy: ""
dest_bucket: "test"
dest_prefix: ""
task_fast_list: false   
rename_regex: ""
rename_to: ""
task_bandwidth: 102400
task_file_mps: 1000
verify_data_crc64: true
failed_num_to_abort: 0

task-url.template.yaml 文件参数说明如下:

参数

是否必选

说明

task_name

迁移任务名称,且需要保持全局唯一,建议与业务相关,便于查询。

src_type

迁移源端类型,支持如下类型:

  • local:本地文件。
  • url:URL 列表文件。
  • s3:支持 S3 协议对象存储文件。

本场景取值 url

src_http_proxy

源端代理服务器 IP。

url_list

URL 列表文件路径,例如 /root/url.list

说明

  • url.list 文件中每一行对应一个文件,格式为<文件路径> <文件名称>,例如 https://source.com/xxx/yyy/file.pdf yyy/file.pdf
  • 默认将 URL 路径(域名 / 后的部分)作为对象的名称。如果您想重命名文件,可通过 URL + 空格 + 对象文件名的方式,例如您可以通过 http://xxx.xxx.xxx/xxx/a.jpg b.jpg,将 xxx/a.jpg 文件重命名为 b.jpg

dest_type

目的端类型,当前仅支持 tos

dest_ak

访问目的端对象存储的 AccessKey ID。

说明

查看 AccessKey ID 和 Secret AccessKey 的具体步骤,请参见 Access Key(密钥)管理

dest_sk

访问目的端对象存储的 Secret AccessKey 。

dest_security_token

目的端的 Security Token。

说明

使用 Security Token 的详细介绍,请参见使用 STS 临时 AK/SK+Token 访问火山引擎 TOS

dest_region

目的端对象存储的 Region。

dest_endpoint

目的端对象存储的域名。

说明

关于域名的详细介绍,请参见地域和访问域名

dest_http_proxy

目的端代理服务器 IP。

dest_bucket

目的端存储桶的名称。

dest_prefix

目标对象后缀,用于为迁移后的对象自动添加该前缀。

task_fast_list

创建迁移任务时是否需要列举对象的元数据,取值如下:

  • true:创建迁移任务时,不会列举对象的元数据。由于没有列举对象的元数据,使用 ./tos-import list 查看迁移进度时,无法查看 Bytes-Transferred 字段,即看不到已迁移文件字节数。同时少了一个列举对象的操作,创建迁移任务的速度也会更快。
  • false:创建迁移任务时,会列举对象的元数据。

默认值为 false

说明

仅使用 URL 列表文件和对象列表文件迁移对象时支持设置 task_fast_list 参数。

rename_regex

文件名称替换正则表达式,用于对源端的对象名称进行正则匹配,对所有匹配成功的字符进行替换。

rename_to

文件名称替换字符串,对源端的对象名正则匹配的所有字符替换成该字符串。

over_write_policy

目标端存在同名文件时,文件覆盖策略,支持如下类型:

  • force:强制覆盖目标端文件。
  • none:不覆盖目标端文件。
  • mtime:源端文件修改时间晚于目标端文件修改时间时,覆盖目标端文件。

默认为 force

task_bandwidth

迁移流控总带宽速率。单位:KB/s,默认为 102400KB/s 。

说明

  • 迁移流控总带宽速率单位为 KB/s,即如果您需要设置迁移流控总带宽速率为 1GB/s,则 task\_bandwidth 参数需要设置为 1048576。
  • 单个节点的带宽流控按照 executor 进程数量均分后不满 1024KB/s 时,按 1024KB/s 生效。

task_file_mps

迁移任务的总文件数流控。单位:个文件/s,默认为 1000个文件/s。

verify_data_crc64

是否开启迁移任务文件 Crc64 校验,取值如下:

  • true:开启。
  • false:不开启。

默认为 true

failed_num_to_abort

任务中断阈值,取值说明如下:

  • failed_num_to_abort < 0:迁移任务时,无论迁移失败多少对象,都会继续执行任务,适用于长时间、不确定源端对象能否访问,弱网环境下的业务场景。
  • failed_num_to_abort = 0:只要有一个对象迁移失败,将中断迁移任务,并显示任务失败,适用于较短时间迁移、测试、强一致性的业务场景。
  • failed_num_to_abort = X:连续第X+1个对象迁移失败后,将中断迁移任务,并显示任务失败,适用于长时间迁移,容忍网络抖动的业务场景。

说明

  • task 文件的 failed_num_to_abort 参数优先级高于 server 文件的 failed_num_to_abort 参数,即如果同时在 task 文件和 server 文件配置了该参数,将优先按照 task 文件的参数配置执行,如果没有在 task 文件配置 failed_num_to_abort 参数,则默认按照 server 文件 failed_num_to_abort 参数配置执行。
  • 您可以使用 ./tos-import retry --id <任务ID>命令,创建一个新任务,重试任务中失败对象。

task-s3.template.yaml

当数据源为支持 S3 协议的对象存储文件时,需要设置 task-s3.template.yaml 文件,用于创建迁移任务。
使用 TOS Import 迁移支持 S3 协议的对象存储文件时,支持两种迁移方式,说明如下:

  • 对象迁移:使用 src_prefixsrc_suffix 参数指定需要迁移的源端文件前缀和后缀。创建迁移任务后,TOS Import 将只迁移指定前缀或后缀的文件。
  • 对象列表迁移:将需要迁移的源端文件路径写入到列表文件中,使用 src_object_listsrc_object_prefix_list 参数指定列表文件路径,创建迁移任务后,TOS Import 将只迁移列表文件中指定的文件。

    说明

    • 如果您想重命名文件,可通过源端文件路径+空格+目的端文件路径的方式,例如您可以通过 /dir1/sub_dir1/obj1 /new_dir/obj1 ,将 /dir1/sub_dir1/obj1 文件重命名为 /new_dir/obj1
    • 列表文件的格式没有限制,您可以使用.txt、.docx等扩展名的文件迁移对象。
task_name: "task"
src_type: "s3"
src_ak: "your access key"
src_sk: "your secret key"
src_security_token: ""
src_region: "oss-cn-beijing"
src_endpoint: "http://oss-cn-beijing.aliyuncs.com"
src_http_proxy: ""
src_bucket: "aaa"
src_prefix: ""
src_suffix: ""
src_object_list: ""    
src_object_prefix_list: ""   
task_fast_list: false   
dest_type: "tos"
dest_ak: "your access key"
dest_sk: "your secret key"
dest_security_token: ""
dest_region: "cn-beijing"
dest_endpoint: "http://tos-cn-beijing.volces.com"
dest_http_proxy: ""
dest_bucket: "test"
dest_prefix: ""
rename_regex: ""
rename_to: ""
is_incremental: false
incremental_interval: 3600
incremental_times: 3
import_since: ""
over_write_policy: "force"
task_bandwidth: 102400
task_file_mps: 1000
verify_data_crc64: true
failed_num_to_abort: 0

task-s3.template.yaml 文件参数说明如下:

参数

是否必选

说明

task_name

迁移任务名称,需要保持全局唯一,建议与业务相关,便于查询。

src_type

迁移源端类型,支持如下类型:

  • local:本地文件。
  • url:URL 列表文件。
  • s3:支持 S3 协议对象存储文件。

本场景取值 s3

src_ak

访问源端对象存储的 AccessKey ID。

src_sk

访问源端对象存储的 Secret AccessKey 。

src_security_token

源端的 Security Token。

src_region

源端对象存储所在的 Region。

src_endpoint

源端对象存储的 S3 访问域名。

src_http_proxy

源端代理服务器 IP。

src_bucket

源端存储桶的名称。

src_prefix

需要迁移的源端文件路径前缀,用于迁移指定前缀的文件。文件路径末尾有 /,说明迁移该目录下所有文件;没有 /,则说明迁移以该前缀命名的文件或目录。例如:

  • /root/dir1/ :表示迁移 /root/dir1/ 目录下所有文件。
  • /root/dir1/abc: 表示迁移 /root/dir1/ 目录下前缀为 abc 的文件或目录。

默认为空,表示迁移所有文件。

说明

一个任务只能设置一种迁移方式,不同同时设置对象迁移和对象列表迁移。

src_suffix

需要迁移的源端文件的后缀,用于迁移指定后缀的文件,例如 .doc 表示迁移后缀为 .doc 的文件。
默认为空,表示迁移所有文件。

src_object_list

对象列表文件路径,您可以在该列表文件中填写文件的完整路径,创建任务后,TOS Import将只迁移列表文件中指定的文件。

说明

一个任务只能设置一种迁移方式,不同同时设置对象迁移和对象列表迁移。

src_object_prefix_list

对象前缀列表文件路径,您可以在该列表中只填写文件的前缀,TOS Import 将只迁移列表文件中指定前缀的文件。

task_fast_list

创建迁移任务时是否需要列举对象的元数据,取值如下:

  • true:创建迁移任务时,不会列举对象的元数据。由于没有列举对象的元数据,使用 ./tos-import list 查看迁移进度时,无法查看 Bytes-Transferred 字段,即看不到已迁移文件字节数。同时少了一个列举对象的操作,创建迁移任务的速度也会更快。
  • false:创建迁移任务时,会列举对象的元数据。

默认值为 false

说明

仅使用 URL 列表文件和对象列表文件迁移对象时支持设置 task_fast_list 参数。

dest_type

目的端类型,当前仅支持 tos

dest_ak

访问目的端对象存储的 AccessKey ID。

说明

查看 AccessKey ID 和 Secret AccessKey 的具体步骤,请参见 Access Key(密钥)管理

dest_sk

访问目的端对象存储的 AccessKey Secret。

dest_security_token

目的端的 Security Token。

说明

使用 Security Token 的详细介绍,请参见使用 STS 临时 AK/SK+Token 访问火山引擎 TOS

dest_region

目的端存储桶 Region。

dest_endpoint

目的端对象存储的访问域名。

说明

关于域名的详细介绍,请参见地域和访问域名

dest_http_proxy

目的端代理服务器 IP。

dest_bucket

目的端存储桶的名称。

dest_prefix

目标对象后缀,用于为迁移后的对象自动添加该前缀。

rename_regex

名称替换正则表达式,用于对源端的对象名称进行正则匹配,对所有匹配成功的字符进行替换。

rename_to

名称替换字符串,对源端的对象名称正则匹配的所有字符替换成该字符串。

is_incremental

是否开启增量迁移,取值如下:

  • true:开启。
  • false:不开启。

默认为 false

incremental_interval

增量迁移时间间隔,单位为秒。

说明

仅开启增量迁移后, incremental_interval 参数才有效。

incremental_times

增量迁移次数。

说明

仅开启增量迁移后,incremental_times 参数才有效。

import_since

迁移时间点,即迁移该时间点之后的数据,格式为 yyyy-MM- dd HH:mm:ss,例如 2006-01-02 15:04:05。

over_write_policy

目标端存在同名文件时,文件覆盖策略,支持如下类型:

  • force:强制覆盖目标端文件。
  • none:不覆盖目标端文件。
  • mtime:源端文件修改时间晚于目标端文件修改时间时,覆盖目标端文件。

默认为 force

task_bandwidth

迁移流控总带宽速率。单位:KB/s,默认为 102400 KB/s。

说明

  • 迁移流控总带宽速率单位为 KB/s,即如果您需要设置迁移流控总带宽速率为 1GB/s,则 task\_bandwidth 参数需要设置为 1048576。
  • 单个节点的带宽流控按照 executor 进程数量均分后不满 1024KB/s 时,按 1024KB/s 生效。

task_file_mps

迁移任务的总文件数流控。单位:个文件/s,默认为 1000个文件/s。

verify_data_crc64

是否开启迁移任务文件 CRC64 校验,取值如下:

  • true:开启。
  • false:不开启。

默认为 true

failed_num_to_abort

任务中断阈值,取值说明如下:

  • failed_num_to_abort < 0:迁移任务时,无论迁移失败多少对象,都会继续执行任务,适用于长时间、不确定源端对象能否访问,弱网环境下的业务场景。
  • failed_num_to_abort = 0:只要有一个对象迁移失败,将中断迁移任务,并显示任务失败,适用于较短时间迁移、测试、强一致性的业务场景。
  • failed_num_to_abort = X:连续第X+1个对象迁移失败后,将中断迁移任务,并显示任务失败,适用于长时间迁移,容忍网络抖动的业务场景。

说明

  • task 文件的 failed_num_to_abort 参数优先级高于 server 文件的 failed_num_to_abort 参数,即如果同时在 task 文件和 server 文件配置了该参数,将优先按照 task 文件的参数配置执行,如果没有在 task 文件配置 failed_num_to_abort 参数,则默认按照 server 文件 failed_num_to_abort 参数配置执行。
  • 您可以使用 ./tos-import retry --id <任务ID>命令,创建一个新任务,重试任务中失败对象。