通过列表迁移方式迁移对象存储数据
本文介绍如何使用迁移中心(MgC)的存储迁移工作流,进行列表迁移前的准备工作。
适用场景
阿里云对象存储(Object Storage Service,简称OSS)数据迁移至华为云对象存储 OBS,迁移对象个数超过10万上限时,任务类型可采用迁移中心(MgC)存储迁移工作流下的列表迁移。
前提条件
- 已注册华为账号并开通华为云,完成实名认证。
- 已获取源端和目的端账号的AK/SK。
- 已在OBS服务中创建桶。
操作步骤
- 在阿里云OSS生成桶清单。
- 对桶清单数据进行加工。
- 在阿里云准备一台4U8G和100G磁盘空间(根据数据量)的Linux虚拟机,并为该虚拟机绑定EIP。
- 用root用户登录虚拟机。
- 执行以下命令,安装zip。
yum install zip unzip
- 执行以下命令,安装ossutil。
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
- 配置ossutil,参考配置ossutil。
ossutil config 根据提示设置配置文件路径: 1)配置文件路径 2)提示工具语言 EN/CH 3) AK SK
- 下载桶清单文件。
ossutil64 cp oss://bucketname/path/data/ csvFile/ --include "*.gz" -r # bucketname 对应清单桶名 # path 清单存储路径 # csvFile 下载文件存储目录 # --include "*.gz" 下载包含*.gz的文件 # -r 递归目录下的文件下载
- 执行以下命令,安装gzip。
yum install gzip
- 执行以下命令,进入压缩包路径。
cd csvFile # csvFile 为2.5中下载文件存储目录
- 执行以下命令,解压桶清单文件。
gzip -d *.csv.gz
- 选择对应的csv,执行以下命令,提取仅含资源key对象名(url)的清单文件。
cat csvname | awk -F ",\"" '{print $2}' | awk -F "\"" '{print $1}' > listFile # csvname 需要处理的文件名 # listFile 资源的列表文件,需要为txt
- 编写sh文件拆分列表文件,sh命令如下。其中xxxx.txt为上一步骤中列表文件。
#!/bin/bash sourceFile="xxxx.txt" splitLine=100000 split -l $splitLine -d -a 5 --additional-suffix=.txt "$sourceFile" xxxx- mkdir xxxx-file mv xxxx-*.txt xxxx-file
- 将2.j所产生的待迁移的列表清单放置目标桶目录下。
- 在2.a的虚拟机上安装obsutil,参考下载和安装obsutil。
- 初始化配置,参考初始化配置。
- 执行以下命令,进入obsutil脚本路径,上传文件。
./obsutil cp filePath obs:// bucketname -f -r # filePath 列表文件所在文件夹 # bucketname对应的目标桶
- 在MGC上创建存储迁移工作流,进行列表迁移。