【免費註冊】 【會員登入】 【個人資料】 【會員列表】 【論壇幫助】 【論壇搜尋】 【登出論壇】

∮Ω奧米加空間∮
∮Ω奧米加空間∮»技術文件區»【原創】使用 Google Compute Engine 將 amazon cloud drive 遷移到 Google Drive

訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆
作者 主題    
dc
管理員



性別:男
來自:瓦肯星
發表總數:6489
註冊時間:2002-05-07 16:32
(第 1 篇) 【原創】使用 Google Compute Engine 將 amazon cloud drive 遷移到 Google Drive

資料來源:reddit

如果喜歡閱讀原文的話請到 資料來源 的網站觀看,內容十分詳細~

這裡是借用原文的指令重新整理過的資訊,比較適合初學者觀看
因為在 2017/06/08 Amazon cloud drive 無限空間已經被取消不能購買,而且同步的軟體 rclone API key 之前也被取消無法使用

詳情請看 Rclone has been banned from Amazon Drive
https://forum.rclone.org/t/rclone-has-been-banned-from-amazon-drive/2314

後來 rclone 作者有提出替代方案詳情請看 Proxy for Amazon Cloud Drive
https://forum.rclone.org/t/proxy-for-amazon-cloud-drive/2848


接下來是說明如何使用 Google Compute Engine 虛擬機器透過 ODrive 同步到本地端,在從本地端透過 rclone 同步到 Google Drive
虛擬機區域要選用 us-east1 ,因為 ACD 和 GD 在美東都有數據中心這將是最快的區域
使用 ODrive 同步到本地端速度最大 124MB/sec ,使用 Rclone 同步到 Google Drive 速度最大 180MB/sec
在來是網路定價的部分可以看 https://cloud.google.com/compute/pricing?hl=zh-tw#network
輸入免費 輸出到 Google Drive 免費

  • 第一步 申請 Google Compute Engine 服務
    任何一個沒有使用過 Google Compute Engine 服務的帳號,可以申請試用服務有美金 $300 的額度
    到這裡有繁體中文頁面申請 https://cloud.google.com/free-trial/?hl=zh_TW
    需要設定付款方式才能繼續下一步,建議使用信用卡才不會有稅務的問題

  • 新增專案
    新增一個專案並選取剛剛建立的專案來繼續下一步~在 帳單 -> 總覽 -> 帳單帳戶總覽
    可以看到抵免額有 $300 剩餘天數 365 與這個帳單帳戶的連結專案

  • 提高硬碟容量的配額
    因為預設只有 4TB 4096GB 的容量可供使用,這個容量有點小需要增加
    要將帳號升級為付費帳號才能調整喔~
    在 IAM 與管理 -> 配額 -> 配額類型選 所有配額 然後按下 Ctrl+F 搜尋 Total persistent disk reserved
    勾選區域為 us-east1
    服務為
    Google Compute Engine
    Total persistent disk reserved (GB)
    按下 編輯配額 填寫該填寫的資料,容量的話要用 1024 去乘,假如要 20TB 的配額要填 20480
    提交後需要數分鐘 ~ 小時的時間處理~我是提交後不到1分鐘就處理完畢

  • 建立 VM 執行個體
    首先確認配額是否有增加 運算 -> Compute Engine -> 配額
    永久磁碟的總保留容量 (GB) us-east1
    已經變更成我們增加的 20480 20TB

    因為預算要控制在 $300 一個月所以不要建立超過
    VM 執行個體 -> 建立
    名稱:自取
    區域:us-east1-b
    機器類型
    核心:2 vCPU
    記憶體:4 GB
    CPU 平台:自動
    開機磁碟
    新的 10 GB 標準永久磁碟
    Centos7   <- 如果用 Centos6 的話會因為 Python 版本太低  ODrive Agent 腳本執行失敗
    在 [管理 磁碟 網路 SSH金鑰] 的標籤中選擇 磁碟 -> 建立磁碟 ->
    磁碟類型:標準永久磁碟
    來源類型:無 (空白磁碟)
    大小 (GB):5120      也就是5TB
    -> 建立

    這樣每月總計預估落在$248.19

    -> 建立
    等待建立完畢就可以開始使用囉~

  • 使用 SSH 登入後安裝必要元件
    sudo yum install screen wget nload psmisc screen unzip
    格式化與 mount 剛剛建立的 5TB 磁碟空間

    sudo fdisk -l
    可以看到第二顆硬碟為 /dev/sdb
    格式化磁碟
    sudo mkfs -t xfs /dev/sdb

    建立 Mount 目錄
    sudo mkdir /mnt/storage

    Mount 第二顆磁碟
    sudo mount -t xfs /dev/sdb /mnt/storage

    變更目錄權限
    sudo chown $USER:$USER /mnt/storage

  • 安裝 ODrive
    首先登入 https://www.odrive.com
    你可以使用 Amazon Cloud Drive 的帳號,他會建立 Link Storage
    後續轉址到 ACD 帳號登入畫面,會有 ODrive 要求授權的許可畫面

    • 在 ACD 的 Manage settings 可以查看授權的軟體 https://www.amazon.com/ap/adam?ref_=cd_mglwa

    完成後將轉址到 ODrive 在 STORAGE 可以看到 Amazon Cloud Drive 已經連接完成
    在來建立認證鑰匙 auth key https://www.odrive.com/account/authcodes
    將建立好的 auth key 接下來安裝 ODrive 將會使用到
    接下來回到 SSH 畫面開始安裝

    od="$HOME/.odrive-agent/bin" && curl -L "http://dl.odrive.com/odrive-py" --create-dirs -o "$od/odrive.py" && curl -L "http://dl.odrive.com/odriveagent-lnx-64" | tar -xvzf- -C "$od/" && curl -L "http://dl.odrive.com/odrivecli-lnx-64" | tar -xvzf- -C "$od/"

    啟動 Odrive agent
    nohup "$HOME/.odrive-agent/bin/odriveagent" > /dev/null 2>&1 &

    再來替換掉 Odrive 認證碼的部份,使用你剛剛建立好的 auth key
    python "$HOME/.odrive-agent/bin/odrive.py" authenticate XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX-XXXXXXXX

    你會得到一個回應 Hello <your name>".
    如果出現的是錯誤訊息不是 Hello 代表 Python 版本過低,作業系統選 Centos6 會發生錯誤。
    指定你的 odrive 使用第二個5TB的磁碟
    python "$HOME/.odrive-agent/bin/odrive.py" mount /mnt/storage /

    會看到一個提示 /mnt/storage 正在與 odrive 進行同步
    /mnt/storage is now synchronizing with odrive.

    ls /mnt/storage
    你應該會看到一個名為 Amazon Cloud Drive.cloudf 的檔案,這代表 ODrive 安裝設定正確

  • 開始下載 Amazon Cloud Drive 的資料
    首先呢 ODrive's linux agent 他一次只能同步一個檔案或是資料夾,ODrive 會為未同步的檔案和資料夾建立暫存檔案。未同步的資料夾以 .cloudf 結尾,未同步的檔案以 .cloud 結尾。
    我們可以使用 agent 的 sync 功能將暫存檔案轉換成已下載的檔案。我們先同步所有的資料夾檔案 cloudf 來建立目錄樹。
    移到 storage 的目錄
    cd /mnt/storage

    搜尋所有的 cloudf 暫存檔案並且同步
    find . -name '*.cloudf' -exec python "$HOME/.odrive-agent/bin/odrive.py" sync {} \;

    因為 odrive 不會遞迴同步他一次只會同步一層的目錄。所以必須繼續執行上面的命令,直到他停止同步任何東西沒有 .cloudf 之後關於目錄的部份就完成了。
    現在將會有 Amazon Drive 完整的目錄樹鏡像,但所有檔案都是以 .cloud 結尾的暫存檔案。
    接下來我們要將所有的資料同步下載到硬碟裡,這個時間有點漫長所以我們會使用 screen 他可以 "attach" 和 "detatch" 你的 shell,並且維持在後台運行,
    所以就算前台連線中斷同步資料的動作還是會在後台繼續執行~
    因為我 Amazon Cloud Drive 的檔案多達 83TB 所以我是將大檔案分目錄放,不超過本地的 5TB 容量然後分批同步下來再上傳。

    建立並登入自訂名稱的screen
    screen -S 自訂名稱

    中斷後重新登入自訂名稱的screen
    screen -x 自訂名稱

    確定執行完畢後可下 exit 離開 自訂名稱的 screen

    基本上我們現在要做的就是與同步 cloudf 資料夾相同,找到所有的檔案 cloud 並將他們進行同步下載,我們將使用 xargs 來一次傳輸10個檔案極大化地加速。
    移動到你同步的目錄
    cd /mnt/storage

    執行此命令
    exec 6>&1;num_procs=10;output="go"; while [ "$output" ]; do output=$(find . -name "*.cloud" -print0 | xargs -0 -n 1 -P $num_procs python "$HOME/.odrive-agent/bin/odrive.py" sync | tee /dev/fd/6); done

    你可以看到檔案開始在傳輸,你可以隨時離開這個 screen 再重新掛載回來。
    可以使用 nload 來查看傳輸速度。由於 Google Compute Engine 磁碟的寫入速度限制在120MB /秒,因此最大可能在 900 mbps 左右。
    當 sync 命令完成後再執行一次確保沒有傳輸錯誤,重複執行不會有任何影響~

    我有發生檔案無法同步的問題,透過 Amazon Cloud Drive Web 介面也無法下載,估計是檔案壞了
    Unable to sync 檔案名稱.cloud.  Amazon Cloud Drive internal server error.
    這時候可以先保留檔案事後再執行看看同步的命令

    刪除該目錄下所有的檔案與目錄,並且保留尚未完成同步的檔案與其資料夾可以這樣執行
    find ./ ! -name "*.cloud" -delete

    最後都同步完成需停止 odrive  agent 的話執行
    killall odriveagent

  • 上傳資料到 Google Drive
    下載 rclone
    cd ~
    wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
    unzip rclone-current-linux-amd64.zip
    cd rclone*-linux-amd64
    sudo cp rclone /usr/local/bin

    因為我之前已經有 Google Drive 授權許可資訊,所以我是將資料加到 rclone.conf 裡面
    vi ~/.config/rclone/rclone.conf

    沒有授權過的話可以手動建立
    rclone config

    n) New remote
    e/n/d/r/c/s/q> n
    name> gd
    7 / Google Drive
       \ "drive"
    Storage> 7
    Google Application Client Id - leave blank normally.
    client_id>
    Google Application Client Secret - leave blank normally.
    client_secret>
    Remote config
    Use auto config?
    * Say Y if not sure
    * Say N if you are working on a remote or headless machine or Y didn't work
    y) Yes
    n) No
    y/n> n
    會取得一串登入 Google Drive account 的連結授權 rclone 使用,將得到的 code 輸入到
    Enter verification code>
    y
    即可完成設定,按 Q 可以離開設定畫面。

    確認是否有正常連結,列出你的 Google Drive 目錄
    rclone lsd gd:

    接下來可以開始上傳檔案到 Google Drive 了使用指令
    rclone -vv --drive-chunk-size 128M --transfers 5 copy "/mnt/storage/Amazon Cloud Drive" gd:

    當檔案全部都同步完畢之後你可以使用確認容量的方式來看檔案大小是否正確
    rclone size gd:

  • 刪除 Google Cloud Compute 虛擬機
    如果不想每月收到高額帳單與分配的 TB 的磁碟空間,在檔案搬移完成後請盡快刪除虛擬機
    關閉虛擬機
    sudo shutdown -h now

    登入 Google Cloud: https://console.cloud.google.com/compute/instances
    點選 左上角的 產品與服務
    運算 -> Compute Engine -> VM 執行個體 -> 刪除
    運算 -> Compute Engine -> 磁碟 -> 刪除

  • 刪除專案與結算帳單帳戶
    https://console.cloud.google.com/billing
    IAM與管理->IAM->管理資源->勾選專案名稱->刪除
    關閉「xxxx」專案

    關閉專案後,將發生下列情況:

    系統將停止所有計費及供應流量
    您將失去整個專案的存取權
    專案擁有者會收到通知,可在 30 天內取消關閉作業
    系統已排定將於 30 天後刪除整個專案。

    如要關閉「xxxx」專案,請輸入您的專案 ID:xxxx ->關閉

    即將刪除專案
    「xxxx」專案已關閉,預計將在 2017/7/31 下午1:52後刪除

    確認你的帳單帳戶
    關閉你的帳單帳戶
    完成~





本帖由dc最後編輯於2017-07-03 16:19

Your mind to my mind,

your thought to my thought
發表時間:2017-06-22 12:20
dc的個人資料 傳送郵件給dc dc的個人首頁 dc發表的所有文章 送出悄悄話給dc IP:118.*.*.* 編輯  引言回覆 
所有時間均為GMT+8, 現在是2017-07-25 14:32    
訂覽該主題更新消息 | 將該主題推薦給朋友 發表新主題 發起投票  回覆

快速回覆
主題 ( 回覆文章可以不輸入標題 )
URLs自動分析
有回覆時郵件通知
禁用表情符號
使用簽名

<聯絡我們 - OMEGA - 控制面板>

Powered by Centaur & Joksky & DC, ver 2003.08.14
Copyright ©2002-2008 PHPY.COM


頁面生成時間:0.056914091110229