跳到內容

GCE Application Consistency Snapshot

目的

使用 GCE Application consistency snapshot 可在建立快照前、後執行相關腳本。

注意事項

  • 如果沒有進行任何設定會出錯,因此不可與無使用 Application consistency 功能的 VM 混用

you have to config Application consistency

  • 指令中 gcloud compute disks snapshot disk name --guest-flush 的 --guest-flushApplication consistency 等同勾選起來的意思

操作步驟

  1. 首先須留意是否支援作業系統,並安裝或更新 agent 後於 /etc/default/instance_configs.cfg 加入以下設定
Terminal window
1
[Snapshots]
2
enabled = true
3
timeout_in_seconds = 60 # 0-300 sec
  1. 建立設定檔

其中 /etc/google/snapshots/pre.sh/etc/google/snapshots/post.sh 檔名不可換,分別代表快照前、後要執行的指令與工作,一般可下 sync 將磁碟同步寫入之類的工作

Terminal window
1
mkdir -p /etc/google/snapshots/
2
echo '#!/bin/bash
3
DATE=`date`
4
echo "${DATE} start"' >> /tmp/snapshot.log' > /etc/google/snapshots/pre.sh
5
6
echo '#!/bin/bash
7
DATE=`date`
8
echo "${DATE} finish"' >> /tmp/snapshot.log' > /etc/google/snapshots/post.sh
  1. 設定執行權限,沒有設定會無法快照
Terminal window
1
chmod +x /etc/google/snapshots/pre.sh
2
chmod +x /etc/google/snapshots/post.sh

如腳本無提供執行權限,會出現以下錯誤

Without permission error

  1. 重起服務
Terminal window
1
sudo systemctl restart google-guest-agent.service
  1. 執行快照後可以發現腳本執行狀態

Executed result