跳到主要内容

存储数据同步工具 ADS

产品介绍

SenseCore 存储数据同步工具 ADS(SenseCore AI DataSync Service)是一款针对大装置存储系统提供的统一、高效、便捷的数据同步工具,支持多场景下本地-大装置存储、大装置不同存储系统之间、以及第三方云-大装置存储的数据同步功能,配合大装置AI存储系统提供数据同步及其管理功能。

产品功能

1.web端和cli工具同时具备

  • ADS支持用户通过web或cli快速进行数据传输。

2.支持本地和AI云存储之间的数据传输

  • ADS支持用户本地到AI云存储之间的快速数据传输。

3.支持AI云存储之间的数据传输

  • 针对AI场景中对AI存储的不同需求,支持AI云存储之间的数据同步。

4.支持第三方云和AI云存储之间的数据传输

  • ADS支持用户从第三方云到AI云存储之间的数据同步,实现快速上云。

5.支持离线同步(暂未上线)

  • 提供完善的数据同步服务,支持离线寄送。

应用场景

1.数据上云

  • 用户购买sensecore AI云存储后,用户自身在原有的机器或数据中心中,有大量的已存在的数据,需要将大量已有的数据迁移到sensecore AI存储(文件/对象)上,由此需要操作便捷,使用方便的数据同步工具,同时,数据同步任务在此场景下一般任务量较大,数据多,用户需要查看任务状态,可以监控任务状态。
  • 用户购买sensecore AI云存储后,用户自身在原有的机器或数据中心中,或持续以一定的频次产生数据,如:每月产生10TB的数据,这些每个月产生的数据需要定期迁移到sensecore AI存储(文件/对象)上,数据同步任务在此场景下一般任务量偏多,用户需要查看和管理多任务及任务状态。
  • 用户购买sensecore AI云存储后,用户原来在其他云厂商中已存在大量数据,需要将已有数据从其他云厂商中同步到sensecore AI存储(文件/对象)中。

2.AI训练场景

  • 训练场景中,研究员使用文件存储进行模型训练,而大量的图片、音视频等数据存储在对象存储上,需要频繁地将对象存储上的数据同步到文件存储中进行模型训练。

计费说明

1.计费方式

存储数据同步工具本身不收取费用。 但使用过程会产生对象存储的公网流出费用和请求费用,具体收费以对象存储为准。

2.使用规则

  • 开通即可使用

快速入门

cli工具

1.推荐开源工具rclone:https://rclone.org
2.或者使用ads-cli工具(大装置开发)

1.ads-cli下载工具包

最新版本(v1.11.0)

https://quark.aoss.cn-sh-01.sensecoreapi-oss.cn/ads-cli/release/v1.11.0/ads-cli.1.11.0.tar.gz

注意:ads-cli 1.7.2版本存在bug,在sync增量更新目标文件时,偶发出现不会更新目标文件的情况。 目前研发已修复ads-cli 这个bug,请下载1.9.0以上版本。请大家更新使用新版本的 ads-cli。

下载最新版本的ADS工具包,并添加执行权限,即可。

以linux为例,将ads-cli下载到用户自己的home目录/home/test目录并赋予可执行权限

cd /home/test wget https://quark.aoss.cn-sh-01.sensecoreapi-oss.cn/ads-cli/release/v1.9.0/ads-cli chmod +x ads-cli

使用的时候,可以使用绝对路径进行执行,例如使用以下命令查看版本号:

/home/test/ads-cli -V



#### 2.密钥使用说明

##### ak/sk设置方式:
直接将ak/sk写在uri中,以冒号分隔:
`s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix`

* 如果将ak/sk使用在uri中,则可以归纳为公式:`s3://ak:sk@bucketname.ip/path`
* 如果没有将ak/sk在uri中,则可以归纳为公式:`s3://bucketname.ip/path`

##### sftp的密码设置方式有以下三种:

* 免密登录:设置私钥路径环境变量
`export SSH_PRIVATE_KEY_PATH="/home/user/.ssh/id_rsa"`
* 密码登录:直接写在uri中 , 推荐写在脚本中使用
`user:pass@ip:path`
* 密码登录:手动输入
`user@ip:path`

#### 3.基本用法
##### 命令格式

ads-cli [global options] command SRC DST

即把`SRC`同步到`DST`,既可以同步目录,也可以同步文件。

其中:

* `SRC`代表数据源地址及路径
* `DST`代表目标地址及路径
* `command`包含`sync`和`copy(缩写cp)`两个,`sync`支持增量同步,`copy(缩写cp)`支持全量同步。
* `[global options]`代表可选的同步选项,详情参考global options参考。

地址格式均为`[NAME://][ACCESS_KEY:SECRET_KEY@]BUCKET[.ENDPOINT][/PREFIX]`

其中:

* `NAME`是存储类型,现在支持`s3`、`oss`、`sftp`三种类型。
* `ACCESS_KEY`和`SECRET_KEY`是对象存储的 API 访问密钥,如果包含了特殊字符,则需要手动转义并替换,比如`/`需要被替换为其转义符`%2F`
* `BUCKET[.ENDPOINT]`是对象存储的访问地址
* `PREFIX`是可选的,限定要同步的目录名前缀。
* 不支持:`[NAME://][ACCESS_KEY:SECRET_KEY@][ENDPOINT]/BUCKET/[/PREFIX]` ,例如:`s3://s3.<region>.amazonaws.com.cn/bucket[/PREFIX]`

**注: 当前对于ads-cli的sync的设计(相同文件名,相同大小的前提下,比较时间戳)**

以下是一个 AOSS 对象存储的地址范例:

aoss内网地址

s3://ak:sk@mybucket.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix

aoss公网地址

s3://ak:sk@mybucket.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix


#### 4.快速开始

##### afs和aoss互传
必须在sensecore内网机器,才能访问afs,此时访问aoss建议使用内网地址`aoss-internal.cn-sh-01.sensecoreapi-oss.cn`。

从afs全量同步到aoss

ads-cli cp ./srcSync/ s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix/

从aoss全量同步到afs

ads-cli cp s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./dstSync/

从afs增量同步到aoss

ads-cli sync ./srcSync/ s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix/

从aoss增量同步到afs

ads-cli sync s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./dstSync/


##### 从阿里云oss传输数据到aoss
如果在外网机器上运行`ads-cli`,此时需要访问aoss的公网地址`aoss-sh-01.sensecoreapi-oss.cn`,此时必须加上`--https`参数。

从oss全量同步到aoss

ads-cli --https cp oss://ak:sk@bucket1.oss-cn-beijing.aliyuncs.com/prefix/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/

从oss增量同步到aoss

ads-cli --https sync oss://ak:sk@bucket1.oss-cn-beijing.aliyuncs.com/prefix/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/


如果在sensecore内网机器上运行`ads-cli`,此时访问aoss建议使用内网地址`aoss-internal.cn-sh-01.sensecoreapi-oss.cn`。

从oss全量同步到aoss

ads-cli cp oss://ak:sk@bucket1.oss-cn-beijing.aliyuncs.com/prefix/ s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix/

从oss增量同步到aoss

ads-cli sync oss://ak:sk@bucket1.oss-cn-beijing.aliyuncs.com/prefix/ s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/prefix/


##### 从用户本地机器到aoss、afs
需要访问aoss的公网地址`aoss-sh-01.sensecoreapi-oss.cn`,此时必须加上`--https`参数。

传输单个文件

ads-cli --https cp ./one_file.txt s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/one_file.txt

传输文件夹

ads-cli --https cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/

传输到afs(数据在sensecore机器上)

ads-cli cp ./srclocal/ ./dstSync/

传输到afs(数据在用户自己的机器上)(ip从购买的裸金属或云开发机处获得)

scp ./srclocal/ username@ip:/dstSync/


##### 从用户本地机器到minio
上传到minio的路径格式与其他的不同,格式为:`minio://[ACCESS_KEY:SECRET_KEY[:TOKEN]@]ENDPOINT/BUCKET[/PREFIX]`

上传到minio的地址范例:

从本地上传到minio

ads-cli cp ~/test_files/1/ minio://ak:sk@IP:PORT/mybucket/



#### 5.copy, sync, pcopy引擎推荐使用场景:
[ 源端数据集目录称为S, 目的端数据集目录称为D ]
• cp引擎适用场景:
a. D是空目录
b. S数据量小 && D数据量大 (无论D中是否含有S的子集, 该场景都适合cp)
c. S数据量较大/大 && D数据量大 && D中不含有S中任何数据(即S是首次写入D)
• sync引擎适用场景:
a. S数据量较大/大 && D数据量大 && D含有S的子集ss && ss在S中占比较大/大sync场景可以简单理解为是对D的大部分数据进行更新操作.
• pcopy:
a. 只支持!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}~ 组成的对象
进度条含义说明:
![进度条含义](../img/ads-1.jpg)
530:当前发现的文件数目(list出来的文件数)
2:sync 引擎中源端和目的端相同的文件数目
100%: 当前上传进度(由于sensesync是边list边传,所以是动态变化的)
0.0%: 每秒上传文件数目
0.0%: 每秒上传文件大小


## 用户指南
存储数据同步工具主要包括两大块:web使用和cli命令行使用
### cli工具

#### a. global options参考
| 命令内容及配置参数 | 缩写 | 命令说明 |
| --- | --- | --- |
| `--start KEY` | `-s KEY` | 同步的第一个对象名 |
| `--end KEY` | `-e KEY` | 同步的最后一个对象名 |
| `--threads` | `-p value` | 并发线程数 (默认:10) |
| `--listers` | `` | 控制列出文件时的并发数,提高列出文件的速度 |
| `--dryrun` | `/` | 不拷贝文件 (默认:false) |
| `--delete-src` | `--deleteSrc` | 同步后删除源地址的对象 (默认:false) |
| `--delete-dst` | `--deleteDst` | 删除目标地址下的不相关对象 (默认:false) |
| `--exclude PATTERN` | `/` | 排除匹配`PATTERN`的 Key |
| `--include PATTERN`| `/` | 不排除匹配`PATTERN`的 Key |
| `--bwlimit value` | `/` | 限制最大带宽;单位为`Mbps`(0 表示不限制) (默认:0) |
| `--https` | `/` | 使用 HTTPS (默认:false) 使用 HTTPS (默认:false);推荐:内网使用https(去掉--https即可)、外网使用http|
| `--verbose`| `-v` | 将日志level设置为`VERBOSE` |
| `--quiet ` | `-q` | 将日志level设置为`ERROR` |
| `--help` | `-h` | 查看`ads-cli`的相关使用说明 |
| `--version` | `-V` | 查看`ads-cli`的当前版本 |
| `--exclude-dir PATTERN` | `/` | 排除匹配`PATTERN`的多个目录 |
| `--recordName value` | `-rd` | 跳过软链接源目录的迁移,并记录到[value] |
| `--include-dir PATTERN` | `/` | 匹配PATTERN的多个目录 |



#### a.全量迁移使用示例


- AFS 到 AOSS 的数据同步

1. 复制文件 `ads-cli --https cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
2. 设置日志级别为 `DEBUG ads-cli --https -v cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
3. 设置日志级别为 `ERROR ads-cli --https -q cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
4. 模拟复制(list 查看文件数目和大小) `ads-cli --https --dryrun --noperms cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
5. 开启https模式 `ads-cli --https cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
6. 复制过程中过滤掉关键字 `‘abcd123’ ads-cli --https --exclude="abcd123" cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
7. 设置线程数 `ads-cli --https --threads=50 cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
8. 删除AFS文件(rm) `ads-cli --https --dryrun --deleteSrc --noperms cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
9. 拷贝后删除源端文件(mv) `ads-cli --https --deleteSrc cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
10. 设置http建立连接的时间(单位:s) `ads-cli --https --connTimeout 120 cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
11. 设置http连接的时间(单位:s) `ads-cli --https --timeout 120 cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
12. 目的端AOSS匿名 `ads-cli --https --anonymous 1 cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn:9000/ `
13. 查看目录统计信息(max/min/average) `ads-cli --https --dryrun --noperms cp --info ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn:9000/`
14. 删除AFS文件(rm,只删除不copy) `ads-cli --https --dryrun --deleteSrc cp ./srcSync/ s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/`
15. 删除AOSS文件(rm,只删除不copy) `ads-cli --https --dryrun --deleteSrc cp s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./dstSync/`

#### b.增量迁移使用示例
**用户常用实践:对象到文件增量传输**
`ads-cli --https --threads 100 --listers 100 sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./dstSync/`
listers:控制列出文件时的并发数,提高列出文件的速度。
threads:控制文件传输时的并发数,提高文件同步的吞吐量。
用户根据文件大小设置lister和threads。这两个参数,可以从64开始,最大可以开到100,但别同时开到100,因为不知道是数据的吞吐慢还是对象或文件的list慢,如果是文件吞吐慢,可以把 --threads 调到100, 先不调--listers ,如果吞吐性能没有变化,再尝试把--listers 100.可能是list速度的原因。

- AOSS 到 AFS 的数据同步
1. 复制文件 `ads-cli --https sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/`
2. 设置日志级别为 `DEBUG ads-cli --https -v sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
3. 设置日志级别为 `ERROR ads-cli --https -q sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
4. 模拟复制(list 查看文件数目和大小) `ads-cli --https --dryrun sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
5. 开启https模式 `ads-cli --https sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/`
6. 复制过程中过滤掉关键字‘abcd123’ `ads-cli --https --exclude="abcd123" sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
7. 设置线程数 `ads-cli --https --threads=50 sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
8. 设置带宽上限, 单位Mb/s `ads-cli --https --bwlimit=2 sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
9. 二次复制后删除源端数据 (见测试说明) `ads-cli --https --deleteSrc sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
10. 希望针对某一字典序范围进行同步, 例子中将会上传对象名属于闭合区间[aa, zz]字典序范围的对象,注意:–start, --end是针对对象名而言, 并且查找范围也是整个源端目录 `ads-cli --https sync --start=aa --end==ff s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
11. 设置http建立连接的时间(单位:s) `ads-cli --https --conntimeout 120 sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
12. 设置http连接的时间(单位:s) `ads-cli --https --timeout 120 sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `
13. 源端AOSS匿名 `ads-cli --https --anonymous 0 sync s3://ak:sk@bucket1.aoss.cn-sh-01.sensecoreapi-oss.cn/prefix/ ./srcSync/ `




#### c.AOSS挂载成文件夹Mount命令使用

本功能只适用于裸金属产品操作,不支持容器产品mount。
支持裸金属通过mount命令挂载到AOSS上,AOSS可作为一个目录(类似文件存储)挂载,用户使用时直接在裸金属节点上以访问文件系统(文件夹)的方式即可访问对象存储上的数据。成功挂载后,读写卸载等操作参照linux命令。

命令行示例:

ads-cli mount 【AOSS路径】 【挂载目的路径】 ads-cli mount s3://[ACCESS_KEY:SECRET_KEY@]BUCKET[.ENDPOINT][/PREFIX] [MOUNT_POINT]

其中:
- `s3://[ACCESS_KEY:SECRET_KEY@]BUCKET[.ENDPOINT][/PREFIX] `为需要挂载到计算节点的AOSS的路径
- `[ACCESS_KEY:SECRET_KEY@]`为用户的AK和SK
- `BUCKET`为用户的桶名称
- `[.ENDPOINT]`为用户AOSS的内网地址
- `[/PREFIX]`为用户挂载的桶内具体的路径
- `[MOUNT_POINT]`为挂载目的路径

使用示例:

ads-cli mount s3://ak:sk@bucket.aoss-internal.cn-sh-01.sensecoreapi-oss.cn/my_path /localfolder





#### d.支持从第三方云传输到AOSS和AFS
以腾讯云COS为例,介绍如何从第三方云传输到AOSS/AFS:
假设用户的sensecore内网机器执行,且能访问AOSS/AFS,想要将COS的数据增量同步到AOSS/AFS。
##### 第三方云到AOSS

从cos增量同步到aoss

ads-cli sync cos://ak:sk@bucket1.ap-beijing.myqcloud.com/prefix/ s3://ak:sk@bucket1.aoss-internal.cn-sh-01.sensecoreapi-cn/prefix/

   ##### 第三方云到AFS

从cos增量同步到afs

ads-cli sync cos://ak:sk@bucket1.ap-beijing.myqcloud.com/prefix/ ./dstSync/


现在支持如下第三方云:(仅支持第三方云对象存储->SenseCore的传输)
<table border="1">
<tr>
<th>第三方对象存储</th>
<th>NAME值</th>
</tr>
<tr>
<td>阿里云OSS</td>
<td>oss</td>
</tr>
<tr>
<td>腾讯云COS</td>
<td>cos</td>
</tr>
<tr>
<td>百度云BOS</td>
<td>bos</td>
</tr>
<tr>
<td>金山云KS3</td>
<td>ks3</td>
</tr>
<tr>
<td>Amazon国内版S3</td>
<td>s3</td>
</tr>
<tr>
<td>华为云OBS</td>
<td>obs</td>
</tr>
<tr>
<td>七牛云Kodo</td>
<td>qiniu</td>
</tr>
<tr>
<td>UCloud US3</td>
<td>ufile</td>
</tr>
</table>

使用时,只需将地址格式`[NAME://][ACCESS_KEY:SECRET_KEY@]BUCKET[.ENDPOINT][/PREFIX]`中的`NAME`修改为对应的NAME值即可,例如:第三方云是腾讯云COS,则地址为 `cos://ak:sk@bucket.endpoint/prefix/`

#### e.支持跨区afs-afs传输
前提:两个可用区之间的afs传输时,需要每个可用区有计算节点挂载文件存储到本地目录,从而实现两个计算节点的本地目录的传输。
比如:A可用区的A计算节点挂载A文件存储空间到本地目录/home/Makefile,B可用区的B计算节点挂载B文件存储空间到本地目录/home/,从而实现A计算节点的本地目录/home/Makefile与B计算节点的本地目录/home传输.
ADS cli工具安装在A可用区上的A计算节点的命令行演示:

./ads-cli cp /home/Makefile root@12.18.30.11:/home/



### web工具使用
1. 找到数据同步工具点击进入

![ads-1](../img/ads-w1.png)

注:若使用者身份为租户,首次使用需要先开通服务;若使用者身份为用户,首次使用需要先向租户管理员申请权限,若租户管理员暂未开通,则需要租户先开通服务再授权用户。

2. 点击【创建数据同步任务】,目前支持AI对象存储和AI文件存储之间的互相传输,AI对象存储到AI对象存储、AI文件存储到AI文件存储的传输,以及从第三方云到AI文件存储、第三方云到AI对象存储之间的传输(详见4.第三方云传输到AOSS/AFS)

![ads-1](../img/ads创建.png)

3. 填写数据同步详细信息

![ads-1](../img/ads-w3.png)

4. 第三方云传输到AOSS/AFS
- 点击【创建数据同步任务】
- 任务类型选择【第三方云->AI对象存储】或【第三方云->AI文件存储】
- 选择第三方云的名称
- 填写第三方云域名,例如:oss-cn-beijing.aliyuncs.com (具体查找第三方云的外网访问地址)
- SecretKey和SecretKey输入用于迁移的云API密钥。推荐您为迁移服务新建密钥,迁移完成后删除该密钥。
- 【第三方数据存储具体路径】,若要传输整个桶,填写【桶名称/】,无需填写Prefix;若迁移部分数据,格式要求必须以正斜线(/)结尾,例如 folder1/abc/sss/

![ads-1](../img/417-1.png)

5. 关闭服务
支持您将开通了的ADS服务进行关闭,停用数据同步工具服务会清空所有进行中的任务、历史任务,并会删除所有相关资源。




## 数据迁移工具正则表达式匹配详解
ads支持标正则的范围是:

<table border="1">
<tr>
<th>命令</th>
<th>范围</th>
</tr>
<tr>
<td>--include</td>
<td>需要包含的文件(对象)</td>
</tr>
<tr>
<td>--exclude</td>
<td>需要排除的文件(对象)</td>
</tr>
</table>

该目录树是进行迁移操作的源目录:

![ads-1](../img/ads-1.png)


### --include 的例子
#### 迁移含有base关键字的对象:

--include "base"


结果:

![ads-1](../img/ads-2.png)



#### 迁移以base关键字为前缀的对象:

--include "^base"


结果:

![ads-1](../img/ads-3.png)



#### 迁移仅含base关键字的对象:

--include "^base$"


结果:

![ads-1](../img/ads-4.png)


#### 迁移以关键字 1结尾的对象:

--include "1$"


结果:

![ads-1](../img/ads-5.png)




### --exclude的例子:
#### 排除含有base关键字的对象:

--exclude "base"


结果:

![ads-1](../img/ads-6.png)


#### 排除以base关键字为前缀的对象:

--exclude "^base"


结果:

![ads-1](../img/ads-7.png)


#### 排除仅含base关键字的对象:

--exclude ”^base$“


结果:

![ads-1](../img/ads-8.png)


#### 排除以关键字1结尾的对象:

--exclude "1$"


结果:

![ads-1](../img/ads-9.png)

##附性能测试参考
同可用区内,文件到对象、对象到对象、对象到文件、文件到文件场景的性能测试
考虑到 tech 环境性能和复用文件存储性能测试脚本等因素,每次预埋数据量固定为 3264GB(3.1875TB)
![](../img/24730-2.png)


## 常见问题

1. 什么是存储数据同步工具ADS?

存储数据同步工具ADS是一个数据迁移工具,用户可以使用ADS方便快捷地进行数据同步和迁移。

2. 数据迁移任务的数量是否有上限?

没有上限。

3. 为什么我没有成功地传输一个/一组文件?例如:出现 0 Scanned

A:请确认—-include的做法,详细参照ADS帮助文档【数据迁移工具正则表达式匹配详解】部分。