oss對象存儲大批量遷移工具-qscamel

目錄

0、介紹

1、安裝qscamel

2、設置配置

3、啓動操作

4、結果

5、官網一些命令的介紹

Run

Delete

Status

Clean

Version


0、介紹

本次實驗的目的是從一個oss對象中遷移大量文件至另外一個oss,本次的範圍都是青雲的oss,但是這個工具提供了市場上大部分雲的遷移,可以從雲oss到雲oss,也可以從linux的磁盤文件到雲oss,也可以從雲oss到磁盤文件。

官網資料:https://docs.qingcloud.com/qingstor/developer_tools/qscamel

官網工具下載:https://github.com/yunify/qscamel/releases

 

1、安裝qscamel

創建存放目錄並下載文件:

#創建目錄
mkdir /soft/qscamel -p && cd /soft/qscamel
#下載文件
wget https://github.com/yunify/qscamel/releases/download/v2.0.5/qscamel_v2.0.5_linux_amd64.tar.gz

#解壓文件,該文件是個二進制可直接執行
tar -zxvf qscamel_v2.0.5_linux_amd64.tar.gz

#查看文件
ll

2、設置配置

創建啓動用的配置文件

mkdir config

#編輯文件
vim config/qscamel.yaml

文件內容:
# concurrency 會控制同時啓用的併發數量。
# # 如果沒有設置,或者設置爲 0, qscamle 將會使用邏輯 CPU 數量 * 100 作爲該項的值。
# concurrency: 0
# # log_level 控制日誌的級別。
# # 可選值(從更多到更少): debug, info, warn, error, fatal, panic.
# # 默認值: info
log_level: info
# # pid_file 將會控制在何處創建 PID 文件。
# # 默認值: ~/.qscamel/qscamel.pid
pid_file: /soft/qscamel/qscamel.pid
# # log_file 將會控制在何處創建日誌文件。
# # 默認值: ~/.qscamel/qscamel.log
log_file: /soft/qscamel/qscamel.log
# # database_file 將會控制在何處創建數據庫。
# # 默認值: ~/.qscamel/db
database_file: /soft/qscamel/db

根據配置文件中的配置創建db文件夾

mkdir /soft/qscamel/db

創建任務配置文件

mkdir /soft/qscamel/task

vim /soft/qscamel/task/otosaastobaojun.yaml 


文件內容如下:
# type 是任務的類型。
# 可選值: copy, fetch, delete
# copy 將會從 source 處讀取文件,並寫入到 destination。
# fetch 將會從 source 處獲取文件的下載鏈接,並使用 destination 的 fetch 功能進行拉取。
# delete 將會從 source 處獲取文件的信息,並在 destination 處刪除。
type: copy
# source 是任務的 source 端點。
source:
  # type 是當前端點的類型。
  # 可選值: aliyun, fs, filelist, gcs, qingstor, qiniu, s3, upyun.
  type: qingstor
  # path 是當前端點的路徑。
  path: /dev
  options:
    bucket_name: otosaas
    access_key_id: 用戶
    secret_access_key: 密碼
# destination 是任務的 destination 端點。
destination:
  # type 是當前端點的類型。
  # 可選值: fs, qingstor.
  type: qingstor
  # path 是當前端點的路徑。
  path: /dev
  # options 是不同端點的配置,詳情請參考下面的文檔。
  options:
    bucket_name: baojun
    access_key_id: 用戶
    secret_access_key: 密碼
# ignore_existing 控制是否跳過已經存在的文件。
# 爲空或未配置時將會禁用該配置,即總是覆蓋
# `last_modified` 將會檢查目標的 LastModified 是否比源站要大
# `md5sum` 將會對文件做完整的 md5 計算,當 md5 相同時會跳過
# 可選值: last_modified, md5sum.
ignore_existing: last_modified

大部分上面都解釋清楚了,其中 access_key_id和secret_access_key是需要申請的,進入api密鑰中創建,阿里雲等其它雲也類似

 

3、啓動操作

注意任務名稱不能重複,如果再次啓動需要修改名稱纔會再次copy

/soft/qscamel/qscamel_v2.0.5_linux_amd64 run test -t /soft/qscamel/task/otosaastobaojun.yaml -c /soft/qscamel/config/qscamel.yaml 

參數說明:

qscamel run [任務名稱] -t [任務配置] -c [啓動配置]

qscamel 默認從 ~/.qscamel/qscamel.yaml 讀取配置文件,你也可以通過 -c 或者 --config 來指定配置文件的位置。 通過指定不同的配置文件,你可以同時運行多個 qscamel 實例。

4、結果

我測了下,200m帶寬的公網,oss遷移6gb的數據文件大概需要5分鐘。

 

 

5、官網一些命令的介紹

Run

Run 是 qscamel 最主要的命令。我們使用這個命令來創建或者恢復一個任務。

如果要創建一個任務,我們可以使用:

qscamel run task-name -t /path/to/task/file

如果要恢復一個任務,我們可以使用:

qscamel run task-name -t /path/to/task/file

or

qscamel run task-name

當一個新任務創建的時候就,我們將會計算任務內容的 sha256 校驗和並且保存在數據庫當中,同時我們還會檢查任務文件的內容是否發生了修改。如果改變了,qscamel 將會返回一個錯誤並退出。換句話說,任務在創建完畢後就不能修改。如果你需要修改一個任務的內容,請創建一個新任務。

Delete

Delete 能夠刪除一個任務。

qscamel delete task-name

Status

Status 將會展示所有任務的狀態。

qscamel status

Clean

Clean 將會刪除所有已經完成的任務。

qscamel clean

Version

Version 將會顯示當前 qscamel 的版本。

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