Automatisk backup med snapshots i Google Compute Engine

, , , , ,

Google Cloud Platform har ett väl utbyggt api som tillåter att man programmatiskt kan göra det mesta som går att göra i plattformen, ett exempel är att ta snapshots av diskar i Compute Engine. Det fina med dessa snapshots är att dom sparas inkrementellt, det vill säga det är endast data som tillkommit eller ändrats sedan du senast tog en snapshot som sparas på disk, väldigt bra då lagring kostar pengar. Det här gör så klart snapshots väldigt lämpade för backup och jag tänkte visa ett kort script som inte bara skapar en snapshot av en disk dagligen, utan även raderar snapshots som är äldre än sju dagar.

För att scriptet ska fungera måste du ha installerat gcloud compute samt vara autentiserad mot Google Compute Engine, guide för detta finns här.

#!/bin/bash

# Environments
export PATH=/root/google-cloud-sdk/bin:$PATH

# Daily create snapshot for "backup_path" listed disks
# And remove snapshot 1 week old before

# Create snap date
export DT=`date +%Y%m%d`

# Delete snap date
export DT2=`date -d'-1 week' +%Y%m%d`

# ex: ( "disk1 asia-east1-b" "disk2 asia-east1-a" ...)
backup_path=( "bigenius-se-var-01 europe-west1-c" )

for txt in "${backup_path[@]}"
do
  export name=`echo $txt | awk '{print $1}'`
  export zone=`echo $txt | awk '{print $2}'`
  sync
  gcloud compute disks snapshot $name --snapshot-name snap-$name-v$DT --zone $zone
  gcloud compute snapshots delete snap-$name-v$DT2 -q
done

I det här fallet skapas en snapshot för min disk som heter bigenius-se-var-01 och finns i regionen europe-west1-c. Det går så klart att ta en snapshot på fler än en disk åt gången, se exemplet i scriptet.

Se till att export PATH innehåller den sökväg där gcloud compute är installerat.

Nu är det bara att köra scriptet dagligen via crontab, guide för crontab finns här.

När scriptet har körts minst en gång kan du se dina snapshots i Google Developers Console under Compute / Compute Engine / Snapshots

Skärmavbild 2014-12-11 kl. 15.50.58

Dessa snapshots kan så klart användas för att skapa nya diskar, som sedan kan monteras under nya eller befintliga instanser.

Läs också:

10 anledningar att dumpa Amazon för Google Compute Engine

Säkra din server med tvåfaktorsautentisering

 

Kommentarer

kommentarer