Borg will assimilate your data!

Präsentation von Moritz

Datum: 2016-10-03

Features


Installation

Debian 8, Fedora 23, Ubuntu 16.04, CentOS 7, Arch (und neuer):

apt|yum|dnf|… install borgbackup

OS X|macOS:

brew cask install borgbackup

Standalone-Binary (für Linux, macOS & FreeBSD) via Webseite

(Oder via pip + python env und Kompilieren)


Erste Schritte - Repository Erstellen

Repository initialisieren:

borg init /pfad/zum/repo

Verschlüsselung:

--encryption=none|repokey|keyfile

Backup erstellen

Backup erstellen:

borg create /pfad/zum/repo::BackupName ~/Music ~/Dokumente /media/usb/Projekte

Statistik & Info

Bei borg create --stats oder borg info …:

Name: 2016-07-10
Fingerprint: 98c4f4425a81f0…30e8818361071159fde0
Hostname: eos
Username: root
Time (start):  Sun, 2016-07-10 12:49:16
Time (end):    Sun, 2016-07-10 12:52:15
Command line: /usr/bin/borg create -v --list --progress /backup/zis::2016-07-10 -C lz4 /var/lib/lxd/containers/zis/
Number of files: 154072

              Original size  Compressed size  Deduplicated size
This archive:     2.20 GB        1.07 GB          797.37 MB
All archives:     2.20 GB        1.07 GB          797.37 MB
              Unique chunks     Total chunks
Chunk index:          64345           156479
    

Kompression und Deduplikation

Studie der unterstützten Kompressionsalgorithmen

Originalgröße: 11,47GB (7,3GB dedupliziert)

Algo. Zeit Größe %-Zeit
ohne 14m 7,3G 100%
lz4 14m 6,0G ~96%
zlib,6 20m 5,7G 142%
lzma,9 2h19m 5,5G 992%

(Zeit gerundet auf ganze Minuten)


Langzeit Beispiel

Stats von einem Archiv eines Webservers:

[…]
Duration: 34.70 seconds
Number of files: 64467

              Original size  Compressed size  Deduplicated size
This archive:       8.02 GB        6.75 GB      6.78 MB
All archives:     203.56 GB      168.89 GB      7.18 GB

Desktop-Beispiel

borg create -vpsC lz4 /media/moritz/Backup/borg/::notebook-{now:%Y-%m-%d} \
                                           /home/moritz --exclude="*[cC]ache*"
Archive name:         notebook-2016-09-23
Archive fingerprint:  8572e9f361fd…586a28e
Time (start):         Fri, 2016-09-23 13:18:52
Time (end):           Fri, 2016-09-23 13:35:32
Duration:             16 minutes 39.75 seconds
Number of files:      243025

              Original size  Compressed size  Deduplicated size
This archive:     201.23 GB     141.97 GB          4.31 GB
All archives:       1.38 TB     984.20 GB        158.83 GB

Backups auflisten und durchsuchen

borg list /pfad/zum/repo
borg list /pfad/zum/repo::ARCHIV

Ein Archiv auflisten hilft nur mit grep oder bei kleinen Archiven.


Wiederherstellen

Ganzes Backup wiederherstellen:

borg extract /pfad/zum/repo::ARCHIV

Einzelne Datei oder Ordner:

borg extract /pfad/zum/repo::ARCHIV pfad/im/archiv

Stellt die Dateien im aktuellen Verzeichnis wiederher.


Integrität prüfen

Integritätsprüfung wegen Bitrot für Repository oder Archive:

borg check /pfad/zum/repo

Ab v1.1 --verify-data zum Überprüfen von HMAC/HASH aller Chunks.


Backup mounten und browsen

borg mount /pfad/zum/repo /mnt/repo
borg mount /pfad/zum/repo::ARCHIV /mnt/archiv

Wird via FUSE-Dateisystem gemounted und kann mit allen bekannten Werkzeugen benutzt werden.


Weitere Befehle

Archive umbennennen:

borg rename /pfad/zum/repo::ARCHIV NEUERNAME

Archiv oder Repository löschen:

borg delete /pfad/zum/repo::ARCHIV

Nach Muster löschen:

borg prune --dry-run --keep-daily=7 --keep-weekly=4 /pfad/zum/repo

Infos über Archive abrufen:

borg info /pfad/zum/repo::ARCHIV

Platzhalter

borg create /pfad/zum/repo::{hostname}-{user}-{utcnow} ...
borg create /pfad/zum/repo::{hostname}-{now:%Y-%m-%d_%H:%M:%S} ...
borg prune --prefix '{hostname}-' ...

Backup-Server

  1. Installiere Borg auf Clients und Server
  2. Erstelle Borg Benutzer auf dem Server
  3. SSH-Keys der Clients auf dem Server hinterlegen
  4. Server: SSH via authorized_keys absichern
  5. Repo initialisieren: client$ borg init borg@server:repo
  6. Backup Erstellen: client$ borg create server:repo::archiv /Pfad/zum/sichern

Ansible Skript verfügbar


Die Zukunft aka borg 1.1

Momentan in Beta.



Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.