通常在建構系統中,擴充新服務,在遷移過程,有時會需要將雲端資料進行搬移

最近剛好一個系統需要將GCP上面的Storage資料遷移到阿里雲OSS

在這裡做一個紀錄

使用工具

OssImport

這裡是官方介紹:

OssImport工具可以將本地、其它雲存儲的數據遷移到OSS,它有以下特點:

支持的豐富的數據源,有本地、七牛、百度BOS、AWS S3、Azure Blob、又拍雲、騰訊雲COS、金山KS3、HTTP、OSS等,並可根據需要擴展; 支持斷點續傳; 支持流量控制; 支持遷移指定時間後的文件、特定前綴的文件; 支持並行數據下載、上傳; 支持單機模式和分佈式模式,單機模式部署簡單使用方便,分佈式模式適合大規模數據遷移。

環境

需要安裝 JAVA 7 以上的環境

模式

在 OssImport 提供單機跟分佈式 兩種數據遷移方式

如果資料是 30TB以內的小規模數據遷移,可以下載單機版 資料超過 30TB 以上,則適合分佈式遷移方式,可以下載分佈式版 分佈式遷移的概念如下:

Master --------- Job --------- Console
    |
    |
   TaskTracker
    |_____________________
    |Task     | Task      | Task
    |         |           |
Worker      Worker      Worker

在這裏,我所使用的是單機版 ossimport-2.3.1

下載之後,解壓縮可以看到文件結構:

ossimport
├── bin
 └── ossimport2.jar  # 包括MasterWorkerTrackerConsole四个模块的总jar
├── conf
 ├── local_job.cfg   # 单机Job配置文件
 └── sys.properties  # 系统运行参数配置文件
├── console.bat         # Windows命令行,可以分布执行调入任务
├── console.sh          # Linux命令行,可以分布执行调入任务
├── import.bat          # Windows一键导入,执行配置文件为conf/local_job.cfg配置的数据迁移任务,包括启动、迁移、校验、重试
├── import.sh           # Linux一键导入,执行配置文件为conf/local_job.cfg配置的数据迁移任务,包括启动、迁移、校验、重试
├── logs                # 日志目录
└── README.md           # 说明文档,强烈建议使用前仔细阅读

在這裏面可以看到幾個腳本檔案 一鍵導入腳本: import.sh (or import.bat) 分佈式執行腳本:console.sh (or console.bat)

另外有一個設定檔,local_job.cfg 需要修改內容

設定完畢後,就可以開始執行腳本,要留意的是,腳本執行必須在 ossimport 目錄底下完成

參考: https://help.aliyun.com/knowledge_detail/39628.html https://help.aliyun.com/document_detail/56990.html?spm=5176.7739628.2.3.o3NvMc