Backupstrategie 2020

Dies ist eine Aktualisierung eines älteren Artikels, den ich auf meinem Photographie-Blog veröffentlicht habe. Ihm liegen meine Erfahrungen mit meiner Strategie zugrunde. 

Anfang 2020 habe ich mir über meine persönliche Backup-Strategie endlich einmal Gedanken gemacht und diese auch umgesetzt.  

Folgende Fragen sollte man sich bei der Ermittlung einer nachhaltigen Strategie stellen. Je nach Antworten wird man dann in die eine oder in die andere Richtung gehen (müssen). 

  1. Wie wichtig sind meine Daten? 
  2. Wie schnell muss ich in einem Notfall auf diese zurückgreifen können? 
  3. Wie umfangreich soll mein Backup sein? 

Die erste Frage ist natürlich rein subjektiv: Welche Daten sind wichtiger und auf welche kann man zur Not verzichten? Für mich sind bspw. die RAW-Dateien sehr wichtig. Sie sind die digitalen «Negative». Ohne sie könnte ich keine weiteren Arbeiten vornehmen. Sie sind für mich auch deshalb unentbehrlich, weil ich keine JPEGs oder TIFFs aufbewahre. 

Die zweite Frage spielt für mich eher eine untergeordnete Rolle: Meine Arbeiten sind nicht zeitkritisch, sodass ich zur Not auch mal ein paar Tage auf meine Daten verzichten könnte.  

Die dritte und letzte Frage schliesst unmittelbar an die erste Frage an: Je nachdem wie umfangreich meine Datensammlung ist, desto mehr Kapazitäten und Zeit muss ich für mein Backup einplanen. In Zeiten schneller Internet-Leitungen ist das nicht so ein grosses Problem. Problematisch wird es eher dann, wenn ich grössere Datenmengen über eine langsamere Leitung herunterladen muss. 

Meine Strategie 

Ein Backup ist eine gute Sache. Zwei Backups sind besser. Meine Strategie habe ich so entwickelt, sodass ich meine Daten auf mindestens zwei physisch getrennten Medien abspeichere. Im konkreten Fall bedeutet dies nun: 

  1. Ich sichere wöchentlich alle Daten von meinem Synology NAS auf einer externen, verschlüsselten, Festplatte, die ich jeweils ausser Haus lagere. 
  2. Täglich werden die Daten meines Synology NAS auf einen Cloud-Speicher verschlüsselt hochgeladen.  

Gleichzeitig habe ich noch zwei externe Festplatten in Betrieb, auf welche ich jeweils die aktuellen Projekte sichere. Diese sind zu Hause und werden nur bei Bedarf aktiviert. So habe ich nun also rein theoretisch vier Backups.  

Stolpersteine… 

Bei den ersten Sicherungen habe ich festgestellt, dass ich aufpassen muss, meine aktuellen Projekte nicht zu überschreiben. Dabei handelte es sich um Arbeiten, die ich nur noch auf einer meiner beiden externen Platten, nicht aber intern hatte. Das sorgte für Verwirrung. Es erwies sich auch eher als kontraproduktiv, ein Projekt – während es noch in Bearbeitung war – direkt auf die externen Platten zu speichern. Denn, auf einmal hatte ich das Problem, festzustellen, welches die “Masterdaten” waren… Wirklich ärgerlich… 

Verbesserungen 

Aus diesen Erfahrungen habe ich nun folgende Konsequenzen gezogen und meinen Workflow weiter optimiert: 

  1. Grundsätzlich verlassen Projekte erst dann meine interne Festplatte, wenn sie abgeschlossen sind (resp. es wird nicht an Projekten gearbeitet, die auf einem externen Medium sind)
  2. Das tägliche / wöchentliche Backup wird beibehalten 
  3. Die externen Festplatten werden nur noch alle 14 resp. 30 Tage eingesetzt und zur Sicherung der auf der internen Platte befindlichen Daten verwendet. Daten auf diesen Platten werden nicht mehr bearbeitet. 
  4. Alle Bilder, die für den Kunden bestimmt sind, werden intern als hochauflösende TIFFs und JPEGs abgespeichert. So kann ich jeweils immer noch schnell Bilder für verschiedene Anlässe bereitstellen. 

Projekt «NATHAN» – Teil 1 – Einleitung

Da ich viel mit neuen (Web)-Technologien herumexperimentiere, habe ich auch einige Programme bei mir lokal installiert. «Apache» gehört ebenso dazu wie das allgegenwärtige relationale Datenbankmanagementsystem «MySQL».

Um mich jedoch ein wenig tiefer mit der Materie zu befassen – bisher ging die Konfiguration der jeweiligen Programme immer komfortabel über eine «GUI» wie sie beispielsweise «MAMP (Pro)» zur Verfügung stellt, habe ich mich entschieden, einen eigenen Server einzurichten.

Vorab sollte man sich über einige grundlegende Dinge Gedanken machen: Was sind die Ziele, was die Motivation? Wie möchte man das ganze realisieren (hängt letztlich auch von der nächsten Frage ab)? Wie viel Zeit (und Geld) will man investieren? Und was will ich damit letztlich (können/tun)?

Ziele & Motivation

In erster Linie geht es mir darum, meine «Skills» zu verbessern und mich mit neuen Betriebssystemen und Programmen auseinanderzusetzen. Ich verwende absichtlich keine «OOTB»-Lösung («Out-Of-The-Box») hierfür. Das hat zweierlei Konsequenzen zur Folge: Ich muss mehr «googlen» und experimentieren. Ersteres ist kein Problem. Letzteres umso spannender.

Wie realisieren?

Nachdem ich unter Punkt eins eine «One-Click»-Lösung ausgeschlossen habe, musste ich mir überlegen, wie ich das ganze bewerkstelligen wollte. Als kostengünstiges Grundgerüst bietet sich eine der zahlreichen «Linux»-Distributionen förmlich an. Aus meinem Studium kannte ich noch «OpenSuse» und auch im beruflichen Umfeld habe ich zumindest mit einem «OpenSuse»-Server zu tun. «YAST», das «etwas andere Setup Tool» von «OpenSuse» ist natürlich eines der «Highlights».

Trotzdem habe ich mich nach langem Überlegen für «Ubuntu Server x64» entschieden. Auch (aber nicht nur) weil es unter «Ubuntu» kein «Yast» gibt und ich so mehr arbeiten muss und lernen kann.

Nachdem ich nun also das Grundgerüst hatte, musste ich entscheiden wie ich das ganze umsetze. Dabei gab es für mich drei Möglichkeiten:

  • als virtueller Server (bspw. unter «OS X» mit «VMWare Fusion»),
  • als virtueller Server auf einem «Hypervisor» (bspw. «VMWare Sphere» oder «Microsoft Hyper-V Core»),
  • als physischer Server direkt auf entsprechender Hardware.

(Punkt 1 & 2 unterscheiden sich lediglich durch das Untergerüst in Form des «Hypervisors». Während bei Punkt 1 das ganze neben einem normalen Betriebssystem weiterläuft, gibt es bei Punkt 2 nur die virtuelle Maschine)

Während ich im Office auf Möglichkeit 1 setze um nebenbei mit einem Linux Server zu arbeiten, setze ich für mein Projekt auf die Möglichkeit 3. Im folgenden gehe ich auf die Gründe hierfür ein:

Als Grundlage dient mir ein «HP ProLiant Microserver» mit einer «Xeon E3» CPU, sowie 16 GB Ram und 4 1-TB-Festplatten («WD Red Edition»). Darauf würde – natürlich – auch ein Hypervisor, egal ob VMWare oder Microsoft, laufen. Für Virtualisierungen habe ich jedoch einen anderen Server im Auge der zugleich leistungs- und auch ausbaufähiger ist. Für die ersten Schritte genügt dieser Server hier vollauf.

Zeit & Geld

Eine entscheidende, jedoch nicht die wichtigste, Frage war für mich der finanzielle Aufwand: Ich wollte ein möglichst gutes Preis-/Leistungs-Verhältnis für alle Komponenten. Sicherlich gibt es einfachere Möglichkeiten, einen Server zu betreiben. Man kann einen alten ausrangierten PC dafür nehmen und es muss nicht zwingend eine «Xeon»-CPU sein. Für mich war aber eine solide Hardwarebasis wichtig. Deshalb auch ein Markenprodukt wie der «HP ProLiant Microserver» (inkl. entsprechender Garantieerweiterung) und vier Festplatten, die für einen Server-Betrieb ausgelegt sind.

Die Hardware ist auch der einzige Punkt, die wirklich Geld kostet. Jeder, der einen alten PC hat, spart hier schon mal (je nach Konfiguration muss natürlich der Arbeitsspeicher und/oder der Speicherplatz aufgerüstet werden).

Da ich als Software auf «Open Source» setze und Linux verwende, habe ich hier keine Kosten. Zumindest nicht monetärer Art. Denn, wenn Probleme auftauchen muss ich selber Zeit aufwenden um diese zu lösen. So gesehen wird bei einer «Linux»-basierten Lösung «Zeit» als «Währung» eingesetzt. Aber immerhin ist der Lernfaktor deshalb um einiges höher.

Was ich noch einplanen musste: Wie viel Zeit wollte ich in dieses Projekt investieren? Was sollte es mir wert sein? Ich habe hier bewusst kein «Zeitmanagement» aufgestellt und auch bewusst die Stunden nicht aufgeschrieben. Denn, ansonsten wäre ich wahrscheinlich ziemlich frustriert gewesen… Manchmal kann die Fehlersuche ganz schön lange dauern…

«Nutzen»

Neben der Möglichkeit, mein Wissen zu erweitern, soll der linuxbasierte Server folgende Aufgaben/Features in meinem Office haben:

Entwicklungsplattform

  • Webserver auf Basis von «nginx» (schnellere Alternative zu «Apache 2»)
  • Datenbank mit «MariaDB» (Alternative zu Oracles «MySQL»)
  • Installation von PHP5 / Ruby on Rails / etc.

Kommunikation

  • Kommunikation mit dem Server via SSH
  • Mail-Server inkl. Weboberfläche
  • VPN Server und Gateway für andere Geräte