Suche

Backup

Wie erstelle ich ein Backup meiner Protonet Lösung?

In SOUL kann über den Punkt Backup in den Systemeinstellungen das Backup auf eine USB-Festplatte oder Stick gestartet werden. Am Anfang wird angezeigt, wie viel Speicherplatz dieser mindestens haben muss.

Achtung:

  • Es können neben dem Protonet Backup keine weiteren Daten auf dem USB-Gerät liegen – bereits bestehende Daten werden gelöscht!
  • Stellen Sie sicher, dass sie das jeweils zum Zeitpunkt des Backups gültige Wartungskennwort sicher notiert haben. Dieses ist nötig, sollte es bei der Wiederherstellung Probleme geben!

012

Wie groß muss die Backup-Festplatte sein?

Das hängt von der Datenmenge ab.

Nach Betätigen des Buttons „Backup anlegen“ wird angezeigt, wie groß die Festplatte mindestens sein sollte. Wir empfehlen direkt eine größere Festplatte zu nutzen.

Warum dauert das Erstellen des Backups so lange?

Die Dauer des Backupvorganges hängt von der Datenmenge sowie von der externen Festplatte ab. Ein initiales Vollbackup mit Laufzeit von einem bis mehreren Tagen ist keine Seltenheit. Danach werden nur noch inkrementelle Sicherungen erstellt – je öfter das Backup aufgefrischt wird, desto schneller wird es dann Durchlaufen.

Des Weiteren wurde der Backupprozess bzgl. der Ressourcennutzung so optimiert, dass parallel ganz normal mit dem Server weitergearbeitet werden kann.

Solange das Backup läuft, wird Dir das durch die Regenbogenanimation des Knopfes angezeigt.

Screen Shot 2016-12-13 at 10.20.21

Status eines laufenden SOUL Backups überprüfen

  1. Status eines laufenden SOUL Backups einsehen

Informationen für die Erstellung eines eigenen Backup Scripts (SOUL3/1xxx auf CoreOS)

Die hier nachfolgenden Informationen beziehen sich auf SOUL 2.x (soul3/1xxx), basierend auf CoreOS

Wichtig: 

Die eigenständige Einrichtung erfordert Linux-Kenntnisse. Nachfolgende Informationen richten sich an erfahrene Administratoren und Dienstleister.

# Setting up custom backup
## What needs to be backed up?

All user data and box configuration is stored in these two file system paths:
* `/data`
* `/etc/protonet`

## How can I run a periodical backup?
*See also the CoreOS documentation: https://coreos.com/os/docs/latest/scheduling-tasks-with-systemd-timers.html*

Create a task that performs your desired backup – obviously also make sure that authentication is set up correctly,
for example that the user root has an SSH public key deployed to the target host in this example.

# File: /etc/systemd/system/custom-backup.service
[Unit]
Description=Makes a backup to a remote host

[Service]
Type=oneshot
ExecStart=/path/to/backup-program --with-proper-arguments-for-sync

Create a systemd timer. See also the Arch Linux Wiki: https://wiki.archlinux.org/index.php/Systemd/Timers for details
on the various available timers.

# File: /etc/systemd/system/custom-backup.timer
[Unit]
Description=Run custom-backup.service once a week

[Timer]
OnCalendar=weekly
Persistent=true

Das Erstellen eines eigenen Backups auf Konsolen-Ebene entspricht einer kundenspezifischen Anpassung und liegt somit außerhalb des Supportumfangs. Kundenspezifische Anpassungen oder Unterstützung bei der selbständigen Umsetzung werden durch Protonet Partner abgebildet – gerne stellen wir hier einen passenden Kontakt her.

Informationen für die Konfiguration eines alternativen Backups (SOUL stable/47 und neuer)

Die hier nachfolgenden Informationen beziehen sich auf SOUL 2.x (stable/xxx), basierend auf Ubuntu Linux.

Wichtig:

Das Erstellen eines eigenen Backups auf Linux-Ebene entspricht einer kundenspezifischen Anpassung und liegt somit außerhalb des Supportumfangs. Kundenspezifische Anpassungen oder Unterstützung bei der selbständigen Umsetzung werden durch Protonet Partner abgebildet – gerne stellen wir hier einen passenden Kontakt her.

Die eigenständige Einrichtung erfordert Linux-Kenntnisse. Nachfolgende Informationen richten sich an erfahrene Administratoren und Dienstleister.

  1. local_patches Verzeichnis anlegen.
    sudo su –
    mkdir -p /protonet/firmware/local_patches
  2. Backupscript erstellen. Zu sichern sind:
    a) Die Datenbank:
    mysqldump -u root dashboard_production > /protonet/data/home/protonet/dashboard/shared/files/files/dashboard_production.sql
    b) Die Protonet Umgebung + Dateien
    /protonet/data
  1. Script erstellen, dass einen cronjob hinzufügt, welcher wiederum regelmäßig das Backup-Script anstößt.
    Beispiel:
    #!/bin/bash echo '0 0   * * *   root    /protonet/firmware/local_patches/backupscript.sh' >> /etc/crontab
  1. Beide Scripte in /protonet/firmware/local_patches ablegen
  1. Server neustarten

Werden nach Änderungen, dem Implementieren eigener Konfigurationen oder Shell-Skripte Beeinträchtigungen an der Funktion des Servers festgestellt, ist vor Kontaktaufnahme zum Support selbständig zu testen, ob das Deaktivieren der eigenen Anpassungen die Probleme behebt.

Hierfür kann ein HDMI-fähiger Monitor sowie eine USB-Tastatur – direkt am Protonet-Server angeschlossen – nötig werden, sollte SSH Zugriff nicht mehr möglich sein.

Auch das aktuelle Wartungskennwort sollte zu jeder Zeit bekannt sein.

Um ein manuell ein Backup zu machen, nutzen wir im Support folgendes Vorgehen:

Damit der Vorgang nicht beendet wird, falls die Verbindung zum Server abbrechen sollte, werden die nachfolgenden Befehle in einem „Screen“ durchgeführt.

Dazu screen aufrufen. Die nachfolgende Seite noch einmal mit <Enter> bestätigen.

Da für diesen Vorgang ein leeres Verzeichnis benötigt wird, legen wir dieses meist im /tmp/ Verzeichnis an:
sudo mkdir /tmp/usb

Und mounten die externe Festplatte in dieses Verzeichnis:
sudo mount /dev/sd[x](1) /tmp/usb

Der Deviceidentifier kann wechseln, wenn die externe Festplatte erneut angeschlossen wird. Dieser wird mit dem Befehl lsblk ermittelt.
 ~ $ lsblkNAME  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  1.8T  0 disk
├─sda1  8:1    0  1.8T  0 part
└─sda9  8:9    0    8M  0 part
sdb      8:16  0  1.8T  0 disk
├─sdb1  8:17  0  1.8T  0 part
└─sdb9  8:25  0    8M  0 part
sdc      8:32  1  7.2G  0 disk
└─sdc1  8:33  1    4G  0 part /protonet-stick
sdd      8:48  0  1.8T  0 disk
└─sdd1  8:49  0  1.8T  0 part
loop0    7:0    0 314.5M  1 loop
loop1    7:1    0 835.4M  0 loop

In diesem Beispiel wäre /dev/sdd1 korrekt.

Dann sichern wir das /protonet/data Verzeichnis in ein Tar-Archiv:
sudo tar -uvf /tmp/usb/backup.tgz /protonet/data/

Jetzt kann man mit der Tastenkombination „CTRL+A“ + „CTRL+D“  den Screen wieder verlassen.
Wieder zugreifen kann man in dem man „screen -r <TAB> <TAB>“ eingibt und drückt.

Das Tar-Archiv ist nicht komprimiert, so dass man die Update option nutzen kann damit nicht jedes mal ein komplettes Backup angelegt wird, sondern nur geänderte und neue Dateien in das Archiv aufgenommen werden.

Zum Schluss wird noch die Datenbank gesichert. Diese befindet sich zwar ebenfalls in der Sicherung, aber da dies schnell geht und doppelt besser hält, wird folgendes ausgeführt:
mysqldump -u root --add-drop-database --all-databases > /tmp/usb/dump.sql

Wenn alles fertig ist, entfernt man die Festplatte wieder aus dem System mit
sudo umount /tmp/usb

SOUL Backup = Vollbackup oder inkrementell?

Beim ersten Backupvorgang auf eine Festplatte wird immer ein Vollbackup erstellt, dieses wird dann in den Folgesicherungen inkrementell ergänzt.

Wichtig: Es ist beim Restore nicht möglich das Backup eines bestimmten Sicherungsvorganges auszuwählen. Nur der Stand des letzten Sicherungsvorganges kann zurückgespielt werden.

Wie kann ich das SOUL Backup wiederherstellen?

Das Protonet SOUL Backup wird über den initialen Einrichtungsassistenten auf neuen oder zurückgesetzten Servern eingespielt.

Die Informationen bzgl. des Installationsnutzers und wie man die entsprechende Weboberfläche erreicht, befinden sich hier.

  1. Mit Protonet Server via WLAN oder LAN verbinden
  2. Mit Installationsnutzer einloggen004
  3. Einrichtungsassistenten bis zum Ende durchspielen.
  4. SOUL aktualisieren!!!
  5. Nach dem Update und automatisch erfolgten Neustart via WLAN oder LAN mit dem Server verbinden
  6. In der Adressleiste /getting_started an die IP-Adresse hängen (Beispiel: „10.42.0.1/getting_started“).
  7. Folgender Bildschirm erscheint: 005
  8. Jetzt die Festplatte anschließen und Wiederherstellungsprozess starten.
    ACHTUNG: Hiermit werden alle Daten auf der Box überschrieben. Screen Shot 2016-09-20 at 14.39.15
  9. Wichtig: Nach dem Restore gelten wieder alle Logindaten und Passwörter, inklusive des Wartungskennwortes, vom Zeitpunkt des wiederhergestellten Backups.

Kontrolle des SOUL Backups auf Konsolenebene

Treffen die folgenden zwei Punkte zu, ist das SOUL Backup erfolgreich durchgelaufen.

  1. Wenn das Backup durchgelaufen ist, muss am Endes des attic-create.log die sql-Datei am Ende stehen:
    ~ $ tail /var/log/protonet-backup/attic-create.log
    /protonet/firmware/soul2/patches/20161024_clamav/99_delete_freshclam_logs.sh
    /protonet/firmware/soul2/patches/20161024_clamav/99_logrotate.tar.gz
    /protonet/firmware/soul2/patches/20480000_gems
    /protonet/firmware/soul2/patches/20480000_gems/bundler-unload-1.0.2.gem
    /protonet/firmware/soul2/patches/20480000_gems/executable-hooks-1.3.2.gem
    /protonet/firmware/soul2/patches/20480000_gems/file_permission_utils-1.0.2.gem
    /protonet/firmware/soul2/patches/20480000_gems/rubygems-bundler-1.4.4.gem
    /protonet/firmware/soul2/update
    /protonet/database-backup
    /protonet/database-backup/backup.sql
  2. Zusätzlich muss im stdout.log das Repository und ein Datum am Ende stehen:
    ~ $ tail /var/log/protonet-backup/stdout.log
    The operation has completed successfully.
    The operation has completed successfully.
    The operation has completed successfully.
    Cluster size has been automatically set to 4096 bytes.
    Creating NTFS volume structures.
    mkntfs completed successfully. Have a nice day.
    Initializing repository at "/tmp/d20161213-20347-wfgvgz/repository/"
    Encryption NOT enabled.
    Use the "--encryption=passphrase|keyfile" to enable encryption.
    2016-12-13-09-16-34 Tue Dec 13 23:21:37 2016

Außerdem nützlich:
protonet-backup listDevices – zeigt angeschlossene Festplatten an
protonet-backup listBackupDevices – zeigt das Datum des letzten Backupstands an