作者 |
主題 |
dc
管理員
性別:男
來自:瓦肯星
發表總數:10723
註冊時間: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 (2017/10/02 關鍵字變更為 Persistent Disk Standard)
勾選區域為 us-east1
服務為
Google Compute Engine
Total persistent disk reserved (GB)
(2017/10/02 關鍵字變更為
Google Compute Engine API
Persistent Disk Standard (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 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-10-02 15:19
Your mind to my mind,
your thought to my thought |
發表時間:2017-06-22 12:20 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10723
註冊時間:2002-05-07 16:32 |
(第 2 篇)
因為 amazon cloud drive 逃難潮的關係,目前 Google Drive 單日上傳量被鎖定為 750GB
在來是 GCP 免費 $300 美金的試用費,也被限定為兩個月內須使用完畢~之前是一年內~
2017/10/19 申請新帳號再次確認 GCP 免費 $300 美金的試用費 可以使用一年
還好我早早就把 amazon cloud drive 83.6TB 的檔案搬移到 Google Drive 裡~真是越早搬越好~
本帖由dc最後編輯於2017-10-20 10:14
Your mind to my mind,
your thought to my thought |
發表時間:2017-08-21 12:27 |
|
dc
管理員
性別:男
來自:瓦肯星
發表總數:10723
註冊時間:2002-05-07 16:32 |
(第 3 篇)
1.修改文章內容 關於修改配額的關鍵字有變更
Google Compute Engine API
Persistent Disk Standard (GB)
2.如果不想使用 cloud shell 來登入虛擬機的話,可以參考這邊建立 Key 來登入
https://cloud.google.com/compute/docs/instances/connecting-to-instance?hl=zh-tw
3.預設的防火牆規則修改
在 產品與服務
網路 -> VPC 網路 -> 防火牆規則
可以看到 RDP 的 Port 3389 與 SSH 的 Port 22 是開放來源 0.0.0.0/0 都可以連線~
所以建議可以刪除他~填上自己的 IP 可以連線就好~
但是這邊 SSH 刪除的話 cloud shell 連不上了~要特別注意喔~
Your mind to my mind,
your thought to my thought |
發表時間:2017-10-02 15:28 |
|
所有時間均為GMT+8, 現在是2024-04-19 13:22 |