阿里雲OSS遷移到騰訊雲COS使用工具COS_MIGRATION 方法一

cos_migration遷移工具可以將您在阿里雲存儲上的文件同步到騰訊雲對象存儲(COS)上。

功能說明

主要特性:

  • 支持斷點續傳

  • 支持並行數據下載/上傳

  • 支持自動同步增量數據

客戶只需配置阿里雲的存儲信息以及騰訊雲(COS)的賬號信息,運行工具,即可自動遷移。遷移後,文件的名稱、路徑和數據源保持一致。

遷移效果示例:

  •  

數據源:aliyun
bucket:mytest
endpoint:oss-cn-shenzhen.aliyuncs.com
圖片訪問路徑:http://mytest.oss-cn-shenzhen.aliyuncs.com/aa/bb/cc/gaoxiao.jpg目的地:COS
appid:1000027bucketname:new_laixin_test
數據遷移後,在COS的訪問路徑:
http://new_laixin_test-1000027.file.myqcloud.com/aa/bb/cc/gaoxiao.jpg

目錄說明

  •  

├── bin    工具
├── code   源碼
├── conf   配置
├── docs   文檔
├── download 運行過程中存放下載文件存放處
├── output   日誌等輸出信息
└── tmp      運行過程中的臨時文件存放處

使用環境

系統環境

cos_migration 遷移工具目前只支持 Linux 系統。

軟件依賴

cos_migration 遷移工具會用到 php 和 php-curl擴展,所以請先安裝 php 和 php-curl。

安裝 php 和 php-curl 的方法:

  •  

yum –y install php
yum -y install php-curl

使用方法

獲取軟件

點擊這裏下載最新版本的 cos_migration 遷移工具。

將安裝包放置在存儲空間較大的磁盤目錄下,執行 tar 命令解壓即可使用。

  •  

tar xvf cos_migration_tools.tar

雲服務器、雲數據庫方案、網絡安全防護優選

初級配置

配置文件 config.ini 位於工具 cos_migration_tools 目錄的conf 目錄下,修改 config.ini 中的參數即可完成工具配置。

配置參數分爲兩方面內容:數據源信息設置 和 騰訊雲 COS 信息設置。

阿里雲存儲信息設置
  •  

[SrcStorageInfo]
SrcStorageBucket=阿里雲的空間名稱
SrcStorageAccessKey=阿里雲的賬號access key id
SrcStorageSecretKey=阿里雲的賬號access key secret
SrcStorageEndPoint=阿里雲的endpoint
SrcStorageIsPrivateBucket=0 設置爲1則表示的空間是私有空間,否則設爲0表示公共空間
SrcStoragePrefix= 設置的遷移文件目錄,如果有多個目錄要遷移,可以用多臺機器,分別遷移不同的目錄的文件
騰訊雲 COS 信息設置

登錄騰訊雲對象存儲,默認項目會分配 APP ID、secretID、secretKey如下圖,如果新建項目,則會分配一套新的 APP ID、secretID、secretKey,每個項目下的 APPID、secretID、secretKey 均不相同。

image_1aog2g81ghgqmk210p4146c8tr9.png-23.6kB

點擊【獲取 secretKey 按鈕】,獲取以下信息:

image_1aog2gr3u2ek17a813gh8o1ts4m.png-30.1kB

添加到如下配置中:

  •  

[CosInfo]
CosAppId=APPID
CosSecretId=secretID
CosSecretKey=secretKey
CosBucket=Bucket名稱
配置示例

以 aliyun 爲例,遷移整個 bucket。

  •  

[ToolConfig]
Concurrency=10
TotalNum=

[SrcStorageInfo]
SrcStorageBucket=test
SrcStorageAccessKey=oEdafddccEPScbD
SrcStorageSecretKey=DkfgiG8nEntzFmOJpJ7CayLpa9SKL2b
SrcStorageEndPoint=oss-cn-shenzhen.aliyuncs.com
SrcStorageIsPrivateBucket=0
SrcStoragePrefix=

[CosInfo]
CosAppId=10234599
CosSecretId=fgvssa5a2DsULCp6MFa5bYs1CisMlEPf
CosSecretKey=ZjHRXsadfasdfaS5Mu3hB4nxVe5F2Ku
CosBucket=test

遷移文件夾 dir1

  •  

[ToolConfig]
Concurrency=10
TotalNum=

[SrcStorageInfo]
SrcStorageBucket=test
SrcStorageAccessKey=oEdafddccEPScbD
SrcStorageSecretKey=DkfgiG8nEntzFmOJpJ7CayLpa9SKL2b
SrcStorageEndPoint=oss-cn-shenzhen.aliyuncs.com
SrcStorageIsPrivateBucket=0
SrcStoragePrefix=dir1/

[CosInfo]
CosAppId=10234599
CosSecretId=fgvssa5a2DsULCp6MFa5bYs1CisMlEPf
CosSecretKey=ZjHRXsadfasdfaS5Mu3hB4nxVe5F2Ku
CosBucket=test

遷移文件 a.txt

注意:這裏是對文件名進行前綴匹配,如果有 a.txt2 這樣的文件,會一併遷移。

  •  

[ToolConfig]
Concurrency=10
TotalNum=

[SrcStorageInfo]
SrcStorageBucket=test
SrcStorageAccessKey=oEdafddccEPScbD
SrcStorageSecretKey=DkfgiG8nEntzFmOJpJ7CayLpa9SKL2b
SrcStorageEndPoint=oss-cn-shenzhen.aliyuncs.com
SrcStorageIsPrivateBucket=0
SrcStoragePrefix=a.txt

[CosInfo]
CosAppId=10234599
CosSecretId=fgvssa5a2DsULCp6MFa5bYs1CisMlEPf
CosSecretKey=ZjHRXsadfasdfaS5Mu3hB4nxVe5F2Ku
CosBucket=test

高級配置

併發配置

控制同時遷移的文件數,爲了加快遷移速度、跑滿帶寬,可適當將該值調大,比如:若帶寬爲20Mb/s以上,可以將 Concurrency的值設爲100;若帶寬較小,可以適當調小,以保證下載和上傳的成功率。

  •  

[ToolConfig]Concurrency=10

啓動遷移

所有工具都放置在工具包的 bin 目錄下,所以,首先請進入 bin 目錄

  •  

cd 到工具目錄的存放目錄cd cos_migration_tools/bin

運行以下命令啓動遷移:

  •  

./start.sh aliyun &

由於在命令中指定了&符號,所以遷移任務會在後臺運行。

遷移工具會首先從阿里雲存儲獲取所有文件列表,然後按照配置的併發數,將任務拆分,併發執行下載和上傳。任務拆分完,界面會輸出:starttask down. use ./stat.sh to see taskstatus,注意,此條輸出只表示任務啓動完畢,此時遷移任務還很有可能正在進行。若想得知遷移是否完成,可以進一步使用【查看遷移進度】命令。

運行界面大致如下:

image_1aogaou7ir6bud31svn1hg51vdh9.png-27kB

查看遷移進度

  •  

./stat.sh

會輸出要遷移的文件總數,以及已經遷移成功和遷移失敗的文件數。

若文件列表還沒有拉取完畢,會每3秒輸出一次當前已獲取的文件數,輸出爲這樣:

image_1aogargqk618pnm122p24huegm.png-16.3kB

當所有列表拉取完畢,開始執行下載和上傳,會每3秒輸出一次已上傳成功的文件數和失敗的文件數,類似這樣:

image_1aogat3gu1q2pmsvnlc1jos1k11g.png-200.3kB

工具退出方法: ctrl-c

若輸出異常可以使用【查看遷移進展詳情】命令,查看具體情況。

若有失敗的遷移文件,可以使用【獲取失敗文件信息】命令,查看失敗原因,處理方法見【異常處理】。

查看遷移進展詳情

  •  

./stat_detail.sh

會輸出遷移工具運行的詳細情況。正常情況下,若開始進行上傳下載,輸出爲這樣:

image_1aogav373v9l1d0c1hsp4dk2i21t.png-126.6kB

遷移完後 工具會自動推出。

工具退出方法: kill 後臺進程號。

詢問任務是否結束

  •  

./is_still_doing.sh

如果遷移已經完成會輸出:no, task has been done

如果還在遷移會輸出:yes, still doing download andupload...並且輸出正在運行的進程信息

image_1aogb0e231ti41h88osue0p3162a.png-54.8kB

停止遷移

  •  

./stop.sh

運行該腳本後,遷移任務就會停止,之後想再啓動,可以重啓遷移任務。

工具退出方法: kill 後臺進程號。

重啓遷移任務

  •  

./stat.sh

如果有輸出 has migrate[XX] files, will migrate[XX]files 的信息,如下圖,說明文件列表已經獲取完畢,可以不再拉取文件列表重啓。

image_1aogccamq1rq2f0fai461ctk82n.png-25.3kB

如果沒有輸出,說明列表沒有獲取完畢,再次啓動時,需要重新運行【啓動遷移】命令。

不再拉取文件列表重啓

  •  

./restart_not_get_file_list.sh aliyun &

獲取失敗文件信息

  •  

./get_failed_info.sh

可以獲取失敗文件的信息。

使用注意

  1. 如果希望重新遷移已經遷移過的文件,則需要清空 output 文件夾中的文件。

  2. 遷移的時候,把新拉取下來的文件,和之前遷移成功的文件去重,並生成形如 filelist.1470216681的文件,這個文件內容是原始拉取下來的文件列表,而這個 filelist 文件是去重後的結果。

常見錯誤

客戶端異常

  1. 未安裝 php 時會報錯:

  2. 未按照 php-curl 時會報錯:

服務端異常

1.若中途異常,可以【停止遷移】,或者【查看遷移進展詳情】。

2.若在【查看遷移進度】結果中有失敗的遷移文件,例如下圖:

image_1aogd6r101ol91ulo13upqhn6t334.png-17.2kB

此時不必緊張,等所有任務都跑完後(輸入【詢問任務是否結束】命令,顯示任務已經結束),使用【不再拉取文件列表重啓】命令,會把失敗的任務重新執行,已成功的不會再執行。

雲服務器、雲數據庫方案、網絡安全防護優選




最後注:本文轉自 “藍葉子_架構” 博客,請務必保留此出處http://dellinger.blog.51cto.com/12445009/1971599

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章