Wenn Du eine komplexe Konfiguration erstellen willst, wird dieses Kapitel für Dich interessant sein. Die folgende Abbildung zeigt den prinzipiellen Datenfluss beim Replizieren von Backups:
Wichtig: Bevor Du mit der Replikation von Backups beginnen kannst, musst Du eine (gewöhnliche) Version mindestens eines Backups vom Master-Backup an die Stellen kopieren, an denen Deine Backup-Kopien liegen sollen. Die Replikation basiert im Wesentlichen auf inkrementellen Backups (Option lateLinks von storeBackup.pl und muss immer gegen die Backup-Version gelinkt werden, gegen die die inkrementelle Version generiert wurde! Du kannst für das Kopieren der (alten) Backups cp -a oder (besser) linkToDirs.pl verwenden.
Angenommen, Dein Master-Backup befindet sich in /masterBackup und Du willst die Serien series1, series2 und series3 nach /extDisk1/stbu kopieren (welches das oberste Verzeichnis Deiner Backup-Kopie werden soll), dann startest Du:55
# linkToDirs.pl /masterBackup/series1 /masterBackup/series2 /masterBackup/series3 \ --targetDir /extDisk1/stbu}
Im dargestellten Beispiel oben gibt es ein Master-Backup, in dem sämtliche Backups gespeichert werden. In diesem Master-Backup gibt es drei unterschiedliche Serien mit Namen series1, series2 and series3. In jeder dieser drei Serien gibt es drei inkrementelle Backups (als Kreise dargestellt), die mit der Option lateLinks erstellt wurden und die repliziert werden sollen.
Die Konfigurationsdatei im obersten Verzeichnis des Master-Backups ((storeBackupBaseTree.conf) ist so konfiguriert, dass zwei (series1, series2) der drei Serien auf die externen Platten konfiguriert werden sollen. Die Konfigurationsdateien können z.B. so aussehen (ohne Kommentare):
backupTreeName=myMasterBackup backupType=master seriesToDistribute=series1 series2 deltaCache=/deltaCache
Du kannst diesen Typ von Konfigurationsdatei folgendermaßen erzeugen:
storeBackupUpdateBackup.pl --genBackupBaseTreeConf directory
wobei directory das Wurzelverzeichnis Deines Master-Backups ist. Nach der Generierung passt Du die Konfigurationsdatei gemäß Deinen Anforderungen an.
Die Beispielkonfiguration oben teilt storeBackup (genauer storeBackupUpdateBackup.pl) mit, dass Du Dein Master-Backup als myMasterBackup (wähle hier irgendeinen eindeutigen Namen aus) bezeichnet hast und dass dieses Dein Master-Backup ist. Die Konfigurationsdatei liegt auch fest, dass series1 und series2 kopiert werden sollen und dass die zentrale Verteilstation, Dein „deltaCache`` im Verzeichnis /deltaCache ist. Nachdem die inkrementellen Backups mittels storeBackupUpdateBackup.pl wie oben beschrieben kopiert wurden, generiert derselbe Lauf des Programms die fehlenden Hardlinks (usw.) in dem Master-Backup, so dass alle Sicherungen Vollbackups werden.
In diesem Beispiel nehme ich an, dass der Server (oder allgemeiner der Rechner), der gesichert werden soll, zwei interne Platten hat. Auf / befinden sich das zu sichernde Dateisystem sowie die Anwenderdaten und auf der zweiten Platte, die unter /backup gemountet wird, befindet sich das Master-Backup (und ggf. Daten, die Du nicht sichern willst). Den „Delta Cache`` auf die erste Platte zu platzieren ist sinnvoll: Wenn die erste (Betriebssystem-Platte) ausfällt, kannst Du später Deine Backup-Platte verwenden. Wenn die Backup-Platte ausfällt, hast du noch die Deltas für die externe Platte auf der ersten Platte. Wenn beide gleichzeitig ausfallen, hast Du noch die externe Platte und verlierst einige Tage (falls Du keine tägliche Synchronisation machst).
Im Delta-Cache musst Du noch eine Konfigurationsdatei mit Namen deltaCache.conf in dessen Wurzelverzeichnis erstellen (siehe unten) und konfigurieren. Der Inhalt wäre wie folgt:
backupCopy0= 'extDisk1' series1 series2 backupCopy1= 'extDisk2' series1 ;backupCopy2= ;backupCopy3= ;backupCopy4= ;backupCopy5= ;backupCopy6= ;backupCopy7= ;backupCopy8= ;backupCopy9=
Du musst zwei Ziele für das Kopieren angeben, weil wir in diesem Beispiel zwei Kopien erstellen wollen. Die erste Zeile (backupCopy0) in der Konfigurationsdatei oben definiert, dass series1 und series2 in die Backup-Kopie mit dem eindeutigen Bezeichner extDisk1 kopiert werden sollen. Die zweite Zeile legt fest, dass series1 in die Backup-Kopie mit dem eindeutigen Bezeichner exitDisk2 kopiert werden soll.
Du kannst die soeben genannte Konfigurationsdatei folgendermaßen erzeugen:
storeBackupUpdateBackup.pl --genCopyStationConf directory
wobei directory das Wurzelverzeichnis des Delta-Caches ist. Editiere die Konfigurationsdatei nach Erstellung gemäß Deinen Anforderungen.
Schlussendlich muss eine Konfigurationsdatei für das Verzeichnis erstellt werden, in das Du Deine Daten replizieren willst. Weil Du (in diesem Beispiel) zu zwei unterschiedlichen Speichersystemen replizieren willst (extDisk1 und extDisk2) musst Du zwei unterschiedliche Konfigurationsdateien in den jeweiligen Wurzelverzeichnissen erstellen:
storeBackupUpdateBackup.pl --genBackupBaseTreeConf directory
Hierbei ist directory das Wurzelverzeichnis Deiner Backup-Kopie. Die generierte Konfigurationsdatei mit dem Namen storeBackupBaseTree.conf wird dann in jenem Wurzelverzeichnis gespeichert. Editiere die Konfigurationsdatei nach der Generierung passend zu Deinen Gegebenheiten.
Eventuell möchtest Du zusätzliche Optionen mit storeBackupUpdateBackup.pl verwenden, z.B.:
storeBackupUpdateBackup.pl --progressReport 200 --archiveDurationCopyStation 32d -b directory
Das bedeutet, dass über Fortschritte bei der Bearbeitung des Backups berichtet wird und dass alte Backups aus dem Delta Cache nach etwa einem Monat (32 Tage) gelöscht werden; aber nur, wenn sie an die Backup-Kopien geliefert und erfolgreich mit Hardlinks versehen wurden.
Letztendlich musst Du den letzten Schritt noch wiederholen und eine Konfigurationsdatei für exitDisk2 konfigurieren:
backupTreeName=extDisk2 backupType=copy seriesToDistribute= series1 deltaCache=/deltaCache
Das war's schon. Nun wird jeder Start von storeBackupUpdateBackup.pl auf dem Master-Backup die erforderlichen Deltas (also Backups, die mit lateLinks erzeugt wurden) in den Delta Cache kopieren und die Backups im Master-Backup zu Vollbackups komplettieren. Wenn storeBackupUpdateBackup.pl auf den Backup-Kopien läuft, werden die Deltas aus dem Delta-Cache geholt und die Backup-Kopien zu vollständigen Backups verlinkt. Weiterhin werden diese Aufrufe die Delta-Backups im Delta-Cache löschen - die Details können dabei mit Hilfe der Option --archiveDurationCopyStation festgelegt werden.