如何把 Google 虛擬機的網站數據備份到 GCS

一、Google Cloud Storge 介紹

Google Cloud Storage,是 Google Cloud Platform 的一項服務,爲廣泛的數據類型提供了統一的對象存儲,包括活躍數據和存檔數據。它可分爲中個存儲類別:區域、多區域、近線和遠線。所有類別都提供了無限數據、用於數據訪問的相同工具和 API、OAuth 和細粒度訪問控制、訪問其他 Google Cloud Storage 服務和按使用付費模式的功能。

1.1、四種存儲類別的比較

您可能無法馬上確定我們四種類別中的哪一種適合您的項目。但您可以隨意挑選一種開始使用,以後可以輕鬆切換方案。隨着您的需求出現變化,對象生命週期管理功能可以幫助您自動運用各種類別來優化性價比。

存儲類別 Multi-Regional Regional Nearline Coldline
價格 每月每 GB $0.026 - $0.036 每月每 GB $0.02 - $0.035 每月每 GB $0.01 - $0.02 每月每 GB $0.007 - $0.014
適用場景 適合爲頻繁訪問的數據提供最高的可用性 適合在單個區域內頻繁訪問的數據 適合訪問頻率低於一月一次的數據 適合訪問頻率低於一年一次的數據
冗餘 地理位置冗餘 區域級,跨可用性地區實現冗餘 區域級 區域級
可用性 服務等級協議承諾爲 99.95% 服務等級協議承諾爲 99.9% 服務等級協議承諾爲 99% 服務等級協議承諾爲 99%
耐用性 99.999999999% 99.999999999% 99.999999999% 99.999999999%
響應速度 毫秒級訪問速度,一致的 API 毫秒級訪問速度,一致的 API 毫秒級訪問速度,一致的 API 毫秒級訪問速度,一致的 API
使用場景 內容存儲和分發、業務連續性 在區域內存儲數據和進行數據分析 存儲不常訪問的內容 歸檔存儲、備份和恢復
應用 視頻、多媒體、業務連續性 轉碼、數據分析、計算密集型數據處理 備份長尾內容、極少訪問的文檔 歸檔源文件備份、災難恢復

1.2、需求

我們現在需要把我們在 Google 虛擬機上面的文件備份到 GCS(Google Cloud Storage) 上面去,我們這是使用 Gsutil工具,Gsutil工具是一個通過Google雲軟件開發工具包提供的Python應用。管理員可以使用此工具從命令行中執行存儲桶和對象管理任務,例如刪除對象和存儲桶。

1.3、給虛擬機添加授權認證

我們登陸到虛擬機上面,默認已經給我們添加了gsutil命令,如果沒有,請安裝 Google Cloud SDK
然後我們登陸虛擬機使用命令gcloud auth login進行授權。

[root@sspanel ~]# gcloud auth login

You are running on a Google Compute Engine virtual machine.
It is recommended that you use service accounts for authentication.

You can run:

  $ gcloud config set account `ACCOUNT`

to switch accounts if necessary.

Your credentials may be visible to others with access to this
virtual machine. Are you sure you want to authenticate with
your personal account?

Do you want to continue (Y/n)?  Y

Go to the following link in your browser:

    https://accounts.google.com/o/oauth2/auth?redirect_uri=uxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faptype=offline

Enter verification code:

如何把 Google 虛擬機的網站數據備份到 GCS
然後生成隨機碼,我們輸入到終端,然後就授權完成了。

如何把 Google 虛擬機的網站數據備份到 GCS

Enter verification code: 4/RQGq4RAUBrp0pA_R3SvuREXyLtczDuy-WLi1sqo23jJhAxEgchEMsos
WARNING: `gcloud auth login` no longer writes application default credentials.
If you need to use ADC, see:
  gcloud auth application-default --help

You are now logged in as [[email protected]].
Your current project is [proxy1-179115].  You can change this setting by running:
  $ gcloud config set project PROJECT_ID

現在授權已經完成。

注意:如果您使用的是 Google Cloud Shell 或 Google Compute Engine 實例,則會預先安裝並驗證 Python 和 gsutil。如果您設置的 Google Compute Engine 實例沒有範圍限定爲 Cloud Storage 的服務帳號,請運行 gsutil config 並按照說明操作。

二、備份操作

2.1 創建存儲分區

存儲分區是 Cloud Storage 中用於存放數據的基本容器。
要創建存儲分區,請執行以下操作:使用gsutil mb命令創建一個存儲分區併爲其指定一個唯一的名稱:

[root@sspanel ~]# gsutil mb -l asia-east1 gs://myweb-backup/
Creating gs://myweb-backup/...

我們也可以在 Google Cloud Platform Console 看到創建的存儲分區,可以對存儲分區進行詳細的設定。
如何把 Google 虛擬機的網站數據備份到 GCS

比如我們的數據是很少訪問的,可以修改一下存儲類別爲 Coldline,也可以添加對象生命週期,以節省我們的空間。

如何把 Google 虛擬機的網站數據備份到 GCS

2.2 上傳對象到存儲分區

命令的操作和我們平時在 Linux 的操作命令差不多,我們把我的整個網站目錄上傳上去,對一些多任務的操作,我們可以添加一個-m參數。

[root@sspanel wwwroot]# gsutil cp -r www.wzlinux.xyz gs://myweb-backup/
Copying file://www.wzlinux.xyz/index.html [Content-Type=text/html]...
Copying file://www.wzlinux.xyz/404.html [Content-Type=text/html]...             
Copying file://www.wzlinux.xyz/.htaccess [Content-Type=application/octet-stream]...
Copying file://www.wzlinux.xyz/.gitattributes [Content-Type=application/octet-stream]...
- [4 files][  1.6 KiB/  1.6 KiB]                                                
==> NOTE: You are performing a sequence of gsutil operations that may
run significantly faster if you instead use gsutil -m cp ... Please
see the -m section under "gsutil help options" for further information
about when gsutil -m can be advantageous.

Copying file://www.wzlinux.xyz/.gitignore [Content-Type=application/octet-stream]...

然後我們到 Console 上面查看一下上傳的文件,爲了增加傳輸速度,建議大家給文件打包之後再進行傳輸。

如何把 Google 虛擬機的網站數據備份到 GCS

2.3 從存儲分區下載對象

下載也很簡單,我這裏就拿着官方的案例寫上吧,偷個懶。

gsutil cp gs://my-awesome-bucket/kitten.png Desktop/kitten2.png
如果操作成功,此命令會返回以下內容:

Copying gs://my-awesome-bucket/kitten.png...
Downloading file://Desktop/kitten2.png:               0 B/164.3 KiB
Downloading file://Desktop/kitten2.png:               164.3 KiB/164.3 KiB

2.4 將對象複製到存儲分區的文件夾

gsutil cp gs://my-awesome-bucket/kitten.png gs://my-awesome-bucket/just-a-folder/kitten3.png

2.5 列出存儲分區或文件夾內容

gsutil ls gs://my-awesome-bucket

三、備份計劃

我們已經瞭解了備份的命令,非常簡單,那我們做一個腳本,添加到定時任務中,每天同一時間把數據備份到存儲中。

#! /bin/bash

cd /root/
tar -zcPf www.wzlinux.xyz$(date +%Y%m%d).tar.gz /www/wwwroot/www.wzlinux.xyz;
/bin/gsutil cp www.wzlinux.xyz$(date +%Y%m%d).tar.gz gs://myweb-backup/;
rm -f www.wzlinux.xyz$(date +%Y%m%d).tar.gz;

添加定時任務,讓其每天凌晨2點鐘進行備份。

0 2 * * * /home/data/scripts/www_backup.sh

我們測試了一下,看下效果。

如何把 Google 虛擬機的網站數據備份到 GCS

參考文檔: https://cloud.google.com/storage/docs/quickstart-gsutil

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