Google Cloud Platform 自動快照腳本

Google Cloud Platform VM 快照功能,可以很容易的恢復一個 VM 執行個體,簡單來說,萬一你的 VM 主機崩潰救不回來了,這時可以使用「快照」來復原你的 VM 主機。

Google Cloud Platform VM 快照功能,可以很容易的恢復一個 VM 執行個體,簡單來說,萬一你的 VM 主機崩潰救不回來了,這時可以使用「快照」來復原你的 VM 主機。

所以,快照也算是一個備份工具,詳細說明請參照 Creating Persistent Disk Snapshots 文檔。

https://cloud.google.com/compute/docs/disks/create-snapshots

目前這個快照功能,還是需要手動執行,非常不方便,如果太忙忘記做快照,主機的風險就會變大。既然可以拿來當作是一個備份主機的用途,當然是能自動製作快照是最好了。

執行自動快照腳本,先決條件是你的 VM 有足夠的權限,Compute Engine 這個功能必須是開啟的。

Snapshots 快照功能,讓您的 GCP 主機更有保障

所以當一開始建立一個 VM 個體時,「身分及 API 存取權」這一項目,建議選取「允許所有 Cloud API 的完整存取權」,如下圖:

Google Cloud Platform Disk Snapshots

進入 SSH 執行下面指令:

cd ~
wget https://raw.githubusercontent.com/jacksegal/google-compute-snapshot/master/gcloud-snapshot.sh
chmod +x gcloud-snapshot.sh
sudo mkdir -p /opt/google-compute-snapshot
sudo mv gcloud-snapshot.sh /opt/google-compute-snapshot/

手動測試執行一次快照製作:

sudo /opt/google-compute-snapshot/gcloud-snapshot.sh

你轉到網頁,可以看到快照已經開始工作了。

Google Cloud Platform Disk Snapshots

執行計畫腳本,每天 5 點開始執行快照:

crontab -e
0 5 * * * root /opt/google-compute-snapshot/gcloud-snapshot.sh >> /var/log/cron/snapshot.log 2>&1

EasyEngine 系統,請改成下面的指令

crontab -e
0 5 * * * sudo /opt/google-compute-snapshot/gcloud-snapshot.sh >> /var/log/cron/snapshot.log 2>&1

執行完快照程序後,並會產生一個 snapshot.log 日誌文件,用下面的方式來管理日誌:

sudo mkdir /var/log/cron 
sudo touch /var/log/cron/snapshot.log
sudo chgrp adm /var/log/cron/snapshot.log
sudo chmod 664 /var/log/cron/snapshot.log

管理日誌文件,不要讓它變得太大:

sudo nano /etc/logrotate.d/cron

修改 cron 將下面的指令加進去

/var/log/cron/*.log {
    daily
    missingok
    rotate 14
    compress
    notifempty
    create 664 root adm
    sharedscripts
}

這個自動腳本,可保存 7 日的快照,會自動將過期的快照刪除。

腳本內容,可參考這一篇:

https://github.com/jacksegal/google-compute-snapshot/issues/1

參考文件:

https://github.com/jacksegal/google-compute-snapshot

2019/04/29 補充說明:
今年 2 月 GCP 推出了「快照排程」的功能,用來自動排程對磁碟機建立快照,以達到備份的目的,頻率分為「每小時、每天、每週」,還能設定自動刪除舊的快照。

Compute Engine 永久磁盤的計劃快照介紹:

https://cloud.google.com/blog/products/compute/introducing-scheduled-snapshots-for-compute-engine-persistent-disk

Featured Photo 攝影師:Ioannis Ioannidis,連結:Pixabay

yungke
yungke

視咖啡如命的癮君子,沒有厲害的技術,只會小打小鬧的電腦工程師。WooWP Managed WordPress hosting 與 Kinsta 合作,推出最優惠、穩定的 GCP 主機方案,了解更多>>

文章: 147

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *