天天看點

oss對象存儲大批量遷移工具-qscamel0、介紹1、安裝qscamel2、設定配置3、啟動操作4、結果

目錄

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密鑰中建立,阿裡雲等其它雲也類似

oss對象存儲大批量遷移工具-qscamel0、介紹1、安裝qscamel2、設定配置3、啟動操作4、結果

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分鐘。

oss對象存儲大批量遷移工具-qscamel0、介紹1、安裝qscamel2、設定配置3、啟動操作4、結果

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