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:
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):
Das eigentliche Backup
Damit Duplicity auf S3 zugreifen kann, muss es im Env. bzw. Shell-Umgebung folgende Variabeln finden:
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
Restore eines Verzeichnisses
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!
Posted at 06:33nachm. Juli 03, 2012 by cetixx in Tipps | Kommentare [0]