Da ich so ein bisschen von Duplicity die Nase voll hatte musste eine modernere Lösung her. Nach Prüfung aller Möglichkeiten der Ubuntu Datensicherung Programmliste fiel die Wahl auf Box Backup. Das Setup verlief erstaunlich problemlos .. seht selbst.
Server Setup
Wir folgen mal der offiziellen Anleitung (englisch) und einem Artikel bei Pro-Linux (deutsch) so Pi*Daumen ..
Paket installieren..
apt-get install boxbackup-server
Service Status prüfen …
service boxbackup-server status
Nix …
Config Dateien erzeugen
Backup-Daten-Verzeichnis anmelden…
raidfile-config /etc/boxbackup 4096 /var/backups
Meldet zwar “WARNING: userland RAID is disabled.” aber sonst alles okay.
Servername festlegen, leere Nutzeraccount-Config und Server-Zertifikate anlegen…
bbstored-config /etc/boxbackup backup.deinedomain.tld bbstored
Hm, es wird Fehler “Checking permissions on /var/backups [..] doesn’t appear to have the necessary permissions” gemeldet.
Also /var/backups/boxbackup
für Nutzer bbstored.bbstored
angelegt, /etc/boxbackup/raidfile.conf
gelöscht und mit raidfile-config
neu angelegt. Dann läuft obiges Kommando durch..
Hinweis: backup.deinedomain.tld
ist der Hostname des Backup-Servers, über den die Clients zugreifen.
Config hier: /etc/boxbackup/bbstored.conf
Nutzeraccounts hier: /etc/boxbackup/bbstored/accounts.txt
Speicherort hier: /etc/boxbackup/raidfile.conf
Zertifikate Zertifikate Zertifikate …
Als nächstes entlang der offiziellen Anleitung und Hinweisen in den Ausgaben bei der Config-Erstellung .. das **Zertifikat **anlegen …
Der Einfachheit befinden wir uns in /etc/boxbackup
, wodurch die Zertifikate in einem Verzeichnis ca
landen.
bbstored-certs ca init
Hinweis: Man kann auch seine eigenen vorhandenen Zertifikate nutzen, dazu bitte beim Pro-Linux Artikel schauen.
Jetzt das Server-Zertifikat mit dem erstellten Zertifikat signieren ..
bbstored-certs ca sign-server bbstored/backup.deinedomain.tld-csr.pem
Noch an die richtige Stelle kopieren ..
cp -a ca/servers/backup.deinedomain.tld-cert.pem \
/etc/boxbackup/bbstored/backup.deinedomain.tld-cert.pem
cp -a ca/roots/clientCA.pem /etc/boxbackup/bbstored/clientCA.pem
Nochmal ins Config /etc/boxbackup/bbstored.conf
gelugt ..
TimeBetweenHousekeeping
steht auf 15 Minuten .. d.h. gelöschte Dateien auf dem Client sind noch 15 Minuten vom Server abrufbar. ExtendedLogging
hab ich für erste Test angeschalten.
Nutzeraccounts anlegen
Wieder weiter in der Anleitung …
Anlegen eines Nutzers mit ID 1000000A (Beispiel, kann auch “4C3A5B6A” oder “1” für “00000001” sein) für den Default-Speicherort 0 mit Softlimit 20GB und Hardlimit 25GB an.
bbstoreaccounts create 1000000A 0 20G 25G
Die IDs können sich ausgedacht werden, zusammen mit dem Zertifikat authentifizieren sie einen Nutzeraccount am Server.
Das kann übrigens noch nachträglich angepasst werden.
bbstoreaccounts setlimit 1000000A 3000M 4000M
Mit folgenden Kommando bekommt man übrigens den noch freien Speicher angezeigt
bbstoreaccounts info 1000000A
Und nun endlich den Server starten …
service boxbackup-server start
Läuft!
Das erweiterte Logging ist übrigens in /var/log/syslog
zu sehen.
Client Setup
Wieder schön die deutsche Anleitung entlang …
Zunächst das Paket installieren ..
apt-get install boxbackup-client
Jetzt die Configs erzeugen im Snapshot-Modus (per Cron getriggert statt kontiunierlich im “lazy” Modus) .. und zwar für die Vhosts und das home-Verzeichnis ..
bbackupd-config /etc/boxbackup snapshot 1000000A backup.deinedomain.tld /var/lib/bbackup /var/www/vhosts /home
Client-ID ist die Nutzer-ID auf dem Server: 1000000A Backup-Domain ist backup.deinedomain.tld
Arbeitsverzeichnis von bbackup ist /var/lib/bbackup
zu sichernde Verzeichnisse: /var/www/vhosts
und /home
Backup des Wiederherstellungs-Schlüssels machen irgendwo **Extern **(Dropbox?)
Die hier: /etc/boxbackup/bbackupd/1000000A-FileEncKeys.raw
Zertifikat signieren
Und nun das Client-Zertifikat vom Server signieren lassen.
Dazu die 100000A-csr.pem zum Backup-Server senden per scp.
scp /etc/boxbackup/bbackupd/1000000A-csr.pem root@backup.deinedomain.tld:/tmp/1000000A-csr.pem
Und dort signieren, wobei man im Verzeichnis mit den Server-Zertifikaten sein muss.
bbstored-certs ca sign /tmp/1000000A-csr.pem
Dann zum Client zurückkopieren (hier vom Client aus holen):
scp root@backup.meinedomain.tld:/etc/boxbackup/ca/clients/1000000A-cert.pem /etc/boxbackup/bbackupd/1000000A-cert.pem
scp root@backup.meinedomain.tld:/etc/boxbackup/ca/roots/serverCA.pem /etc/boxbackup/bbackupd/serverCA.pem
Konfiguration checken
Jetzt noch kurz die Config checken /etc/boxbackup/bbackupd.conf … ist aber für unseren Snapshot-Modus völlig okay.
ExtendedLogging
hab ich für erste Test auch hier angeschalten.
Noch das Admin-Benachrichtigung-Script /etc/boxbackup/bbackupd/NotifySysadmin.sh
querlesen .. die Emails gehen lt Variable SENDTO an “root” .. ist fürs erste Okay.
Weiter in der Client-Anleitung bei Pro-Linux Seite 2 ..
Jetzt den Client starten ..
service boxbackup-client start
Läuft!
Noch den Cron einrichten .. soll 2 Uhr nachts laufen .. per crontab -e editieren
0 2 * * * /usr/sbin/bbackupctl -q sync
Backup starten
Und das erste Backup initiieren ..
bbackupctl sync
Das meldet ein paar Statusinfos und ist fix fertig.
Im Hintergrund beginnt der Backup-Client mit der Arbeit. Diese kann man im /var/log/syslog verfolgen. Da steht dann z.B.
bbackupctl[26050]: Control command sent: sync bbackupd[26046]: NOTICE: Beginning scan of local files
.. und später …
NOTICE: Finished scan of local files NOTICE: File statistics: total file size uploaded [größe lokal], bytes already on server 0, encoded size [größe remote]
Mit folgenden Kommando bekommt man übrigens den noch freien Speicher angezeigt
bbackupquery -q usage quit
Und mit bbackupquery
kann man bequem im Remote-Backup-Repository herumsurfen und auch ggf. Dateien wiederherstellen. Siehe dazu bei Pro-Linux (deutsch) und in der offiziellen Doku (englisch).
Verzeichnisse ausschließen
Mittels ExcludeDir
und ExcludeFile
(und weiteren) kann man einzelne Verzeichnisse und/oder Dateien ausschließen, die man nicht im Backup haben will – oder die Fehler in der /var/syslog
werfen. /dev/null
ist so ein Kandidat, und Foto-Verzeichnisse bei mir, welches ich lokal ohnehin zigfach sichere.
BackupLocations {
var-www-vhosts {
Path = /var/www/vhosts
ExcludeDir = /var/www/vhosts/fotos.rh-flow.de/httpdocs/gallery/var/albums
ExcludeDir = /var/www/vhosts/fotos.rh-flow.de/httpdocs/gallery/var/thumbs
}
..
}
Insofern man die Verzeichnisse nach dem ersten Backup exkludiert, braucht man sich nicht zu wundern, wenn die Backup-Space-Usage nicht am nächsten Tag abnimmt. Die Dateien werden erst beräumt, wenn das Softlimit überschritten wurde.
CPU-Last reduzieren (Update)
Im Snapshot-Modus ist der Backupclient bzgl. Ressourcen Festplattenzugriffe und CPU nicht knauserig. Wer allerdings einen Monitoring-Dienst einsetzt, den werden die Mails nerven die zeigen dass der Backup-Dienst läuft. Leider bringt Box Backup wohl von Haus aus keine Bremse mit (max. Dateien pro Sekunde, max. CPU-Last o.ä.) – also keine Parameter die man in der bbackup.conf einstellen könnte. Bleibt noch der nice
-Level des Daemons (start-stop-daemon
). Mittels Anpassung der /etc/init.d/boxbackup-client
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --nicelevel 19 --pidfile $PIDFILE \
--exec $DAEMON -- $CONF .. stop) .. reload|force-reload) .. restart)
echo -n "Restarting $DESC: " ..
start-stop-daemon --start --quiet --nicelevel 19 --pidfile \
$PIDFILE --exec $DAEMON -- $CONF .. *)
Anschließend den Dienst mittels service boxbackup-client restart
neustarten und gleich mit bbackupctl sync
zum Test antriggern.
Fazit
Mittels der tollen aber teilweise veralteten deutschen Anleitung und den super TODOs die die Config-Generatoren ausspucken, kommt man recht schnell und zuverlässig voran. Das Backup tut aus den Stand heraus und löst bei mir das in die Jahre gekommende Duplicity ab.
Schon alleine die Config-Dateien und das ein Dienst läuft der nur von Zeit zu Zeit angetriggert wird, statt eines ollen selber zusammengefrickelten Scriptes welches Duplicity steuert – schon allein dafür ist es der Aufwand wert!
Leider leider kann man nicht einfach externen FTP-Backup-Space als Ziel angeben, sodass man im VServer-Umfeld einen echten anderen Server benötigt – oder schlicht die NAS zuhause.
Was setzt ihr als Backup-Lösungen ein? Welche Erfahrungen habt ihr so gemacht? Gerne als Kommentare hier oder per Twitter @rhflow_de.