Dienstag Juli 03, 2012

Cloud-Backup in Amazon S3 mit Duplicity

Mit Hilfe von Duplicity kann man Backups gepackt und verschlüsselt direkt in Amazon AWS S3 speichern und eignet sich deshalb gut als Offsite-Backupprogramm. Und so richtet man das Ganze unter Ubuntu bzw. Gentoo ein:

Installation 

apt-get install duplicity bzw emerge -av duplicity
apt-get install python-boto bzw. emerge -av boto

s3cmd installieren und einrichten

Das ist nur notwendig, wenn man von einem Rechner aus checken will, ob alles im S3 gelandet ist. s3cmd ist ein sehr praktisches Tool, wenn man von der Kommandozeile aus mit S3 interagieren will.

apt-get install s3cmd bzw. emerge -av s3cmd

Weiterhin braucht man eine $HOME/.s3cfg (auch nur, wenn man s3cmd nutzen will, wird nicht für Duplicity benötigt, aber praktisch, wenn man sich die S3 Buckets anguggen will...). Hierzu die s3cmd Anleitung lesen. Dort drin sind der access_key und der secret_key, denn man für den Zugriff auf S3 benötigt. Ihn findet man auch, wenn man sich in die AWS Console einloggt und dann auf die Credientials geht.

GnuPG installieren und einrichten

apt-get install gpg bzw. emerge -av gnupg

GnuPG einrichten

gpg --gen-key (Und dann den Anweisungen folgen)

Key anzeigen mit: 

gpg --list-keys

...
pub   2048R/xxxxxxxx 2012-06-29
      Key fingerprint = E870 xxxx xxxx xxxxx
uid                  BACKUP_$HOST 

sub   2048R/xxxxxxxx 2012-06-29 

Die wichtige Info hier ist in der ersten Zeile der achtstellige Key: 2048R/xxxxxxxx. 

Ein Verzeichnis bzw. besser gesagt ein Bucket im S3 für das Backup einrichten (wo Duplicity die gepackten und verschlüsselten Files ablegt):

s3cmd mb $HOST s3://backup

Das eigentliche Backup

Damit Duplicity auf S3 zugreifen kann, muss es im Env. bzw. Shell-Umgebung folgende Variabeln finden:

export PASSPHRASE="..." # PW für Zugriff auf das GnuPG PW (bei --key-gen angegeben)
export AWS_ACCESS_KEY_ID="..." # Access Key für S3
export AWS_SECRET_ACCESS_KEY="..." # Secretkey für S3

Dann das Backup selbst:

duplicity -v5 --volsize 500 --asynchronous-upload --s3-use-multiprocessing --s3-use-new-style /VERZEICHNIS_ZU_SICHERN s3+http://backup/$HOST

--s3-use-multiprocessing kam erst mit Duplicity 0.6.17 rein, aber da ist ein Bug drin. Deshalb lieber 0.6.18 verwenden! Das Multiprocessing (oder besser gesagt bei S3 Multipartupload) braucht man, wenn man eine 100 oder 1 GBit-Leitung voll ausnutzen möchte und man ein paar hundert GigaByte oder TerraByte zu Amazon S3 hochladen möchte. Ansonsten bekommt man nicht mehr als 30-40 MBit/s über die Leitung. --asynchronous-upload sorgt dafür, das der Upload schon stattfindet, während in eine weitere Datei schon wieder geschrieben wird (ist nicht nicht freigegen, aber funktioniert recht gut). Das bedeutet aber auch, das man den doppelten Platz benötigt! Ich habe hier z.B. --volsize 500 angegeben, was in /tmp (default) ein 500 MB File erzeugt. Ist das voll, dann wird nochmal ein 500 MB File angelegt, während das Erste hochgeladen wird. Ist auch das zweite File voll und das Erste noch nicht fertig hochgeladen, wartet der Backupprozess. --s3-use-new-style wird benötigt (in neueren Versionen vielleicht nicht mehr), wenn man nach Amazon Eu (Irland) ins S3 hochladen möchte.

Das Ganze sieht dann so aus, wenn man Files/Verzeichnisse ausschließen möchte:

duplicity -v5 --volsize 500 --asynchronous-upload --s3-use-multiprocessing --s3-use-new-style --exclude "DIR1" --exclude "DIR2" / s3+http://backup/$HOST

Aktuelle Files im Backup anzeigen:

duplicity list-current-files --s3-use-new-style s3+http://backup/$HOST

Restore eines Files

duplicity --s3-use-new-style --file-to-restore DATEINAME s3+http://backup/$HOST /RESTORE_PFAD_INKL_DATEINAME

Restore eines Verzeichnisses

Zielverzeichnis darf noch nicht existieren!
duplicity --s3-use-new-style s3+http://backup/$HOST /VERZEICHNIS

UND JETZT KOMMT DAS WICHTIGSTE:

Das Verzeichnis $HOME/.gnupg ist irgendwo an einem sicheren Platz zu sichern! Wenn der Rechner, der mit Duplicity gesichert wurde, diese Dateien nicht mehr findet, weil er in Rauch aufgegangen ist, dann kommt man nicht mehr an seine Daten ran, weil das Backup mit diesem Schlüssel verschlüsselt wurde!

Kommentare:

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet