Skip to content

Restic - Kompression

Restic
2 1 421
  • Im Master Zweig von Restic gibt es jetzt die Möglichkeit, die Backups mit Kompression zu erstellen 🍾

    Das MUSS getestet werden, ich werde berichten.

    If you want to play with it:

    Build restic from master (or fetch the binary from the beta builder 8)
    Initialize a new repo like this: restic init --repository-version 2
    Compression is now available and enabled by default (for that repo). You can set the desired compression level by passing it to --compression (e.g. restic backup --compression max), supported are auto, max and off.
    

    Please let us know how it goes and report all issues you find!
    Quelle: https://forum.restic.net/t/compression-support-has-landed-in-master/4997

  • Gestern Abend noch ein paar Tests gemacht, aber nicht wirklich Erfolg gehabt. Ok, dann heute noch mal von vorne und mit System. Als erstes muss man mal Daten finden, die man auch gut komprimieren kann, ich will ja auch ein deutliches Ergebnis sehen.

    Meine Wahl fiel auf einen openwrt Ordner, mit dem ich mal ein Image selber gebaut hatte. Schön viele kleine Dateien, sollte sich gut komprimieren lassen.

    Original

    547e3596-69df-48ac-9409-5173367afb85-grafik.png

    Test mit 7z

    Rechtsklick, mit den Bordmittel und dann 7z gewählt.

    364b497f-cf59-408c-ba2b-cad70cc09529-grafik.png

    Test mit Restic V1

    Ich habe auf einer mechanischen 1TB Platte zwei Ordner angelegt, einmal Restic_V1, einmal Restic_V2.

     frank@frank-MS-7C37:~/Downloads$ restic version
     restic 0.13.1 compiled with go1.18 on linux/amd64
    

    Init

    restic init -r /media/1TB/Restic_V1/
    

    Backup

    frank@frank-MS-7C37:~/Downloads$ restic -r /media/1TB/Restic_V1/ backup /home/frank/openwrt/
    enter password for repository: 
    repository 731db857 opened successfully, password is correct
    created new cache in /home/frank/.cache/restic
    no parent snapshot found, will read all files
    
    Files:       407839 new,     0 changed,     0 unmodified
    Dirs:        41286 new,     0 changed,     0 unmodified
    Added to the repo: 7.851 GiB
    
    processed 407839 files, 11.061 GiB in 4:49
    snapshot 24cd8ef4 saved
    

    Ergebnis

    799fa3ee-5bdf-48ba-a05e-8f7f24f1c41b-grafik.png

    Test mit Restic V2

    frank@frank-MS-7C37:~/Downloads$ ./restic_v0.13.0-126-g26c33332_linux_amd64 version
    restic 0.13.1-dev (compiled manually) compiled with go1.18 on linux/amd64
    

    Init

    ./restic_v0.13.0-126-g26c33332_linux_amd64 init -r /media/1TB/Restic_V2/ --repository-version 2
    

    Backup

    frank@frank-MS-7C37:~/Downloads$ ./restic_v0.13.0-126-g26c33332_linux_amd64 -r /media/1TB/Restic_V2/ backup /home/frank/openwrt/
    enter password for repository: 
    repository 33c5e24c opened (repo version 2) successfully, password is correct
    created new cache in /home/frank/.cache/restic
    no parent snapshot found, will read all files
    
    Files:       407839 new,     0 changed,     0 unmodified
    Dirs:        41286 new,     0 changed,     0 unmodified
    Added to the repo: 7.835 GiB
    
    processed 407839 files, 11.061 GiB in 2:47
    snapshot 474d0376 saved
    

    Ergebnis

    caafd946-1285-4e1d-8873-a3ff4141a777-grafik.png

    Fazit

    Fassen wir es mal ein wenig zusammen. Das Original hat 12,1GB

    ITool Dateigröße Zeit
    7z 2,2GB ca. 11:59
    Restic V1 8,5GB 4:49
    Restic V2 2,9GB 2:47

    Man kann auch noch etwas an der Kompression einstellen, ich habe es für diesen Test auf der Standardeinstellung(?) gelassen.

    You can set the desired compression level by passing it to --compression (e.g. restic backup --compression max), supported are auto, max and off.

    Das Ergebnis sieht sehr vielversprechend aus. Es könnte den Platzverbrauch stark begrenzen, sehr wichtig für mich wenn man seine Daten in einer Cloud speichert. (Stichwort: Kosten) Und was hier auch noch schön ins Auge fällt, es ist schneller 🙂 Das möchte ich hier nicht versuchen zu erklären, da ich nicht genau woran es liegt. Vermutung, ich muss wesentlich weniger Daten "schreiben".

    Ich freue mich extrem, diese Version produktiv einzusetzen. Mal überlegen, ob ich die Version hier auf dem Haupt-PC mal testweise nutze, ich denke das wäre spannend.

    @Restic-Team: Vielen Dank für dieses tolle Feature!

  • Forgejo Installation mit Restic nach Hetzner S3 sichern

    Restic restic linux forgejo
    2
    2
    0 Stimmen
    2 Beiträge
    334 Aufrufe
    FrankMF
    Ich habe ja im obigen Beispiel, den gesamten Ordner von der Postgres Installation gesichert. backup_pfad_postgres="/home/pguser/db-data" Ich habe dann mal ein wenig in der Dokumentation gelesen und das hier gefunden. https://www.postgresql.org/docs/current/app-pgdump.html Einfach den Ordner zu sichern, ist ja bei jeder Datenbank ein gewisses Risiko. Die Konsistenz der Daten ist nicht gesichert. Darum gibt es bei den Datenbanken auch immer Tools, mit denen man die Daten sichern kann. In der Doku steht folgendes. pg_dump — extract a PostgreSQL database into a script file or other archive file Aber wichtiger ist das hier. pg_dump is a utility for backing up a PostgreSQL database. It makes consistent backups even if the database is being used concurrently. pg_dump does not block other users accessing the database (readers or writers). Das macht also konsistente Backups. Wichtig noch zu wissen ist folgendes. pg_dump only dumps a single database. To back up an entire cluster, or to back up global objects that are common to all databases in a cluster (such as roles and tablespaces), use pg_dumpall. Ok, das scheint gut geeignet zu sein, um die Datenbank zu sichern. Aber, wie? Auf meinen Eingangsbeitrag kam es zu folgendem Dialog auf Mastodon. https://nrw.social/deck/@nebucatnetzer@social.linux.pizza/114132208440509237 Das war der Anstoß sich mit dem Thema zu beschäftigen. Und ich hatte dann folgende Lösung. podman exec -it postgres pg_dump -U postgres -f /var/lib/postgresql/data/dump.txt Ok, was mache ich hier? Wir führen einen Befehl vom Host aus gesehen, im Container aus. podman exec -it postgres Der Teil führt den folgenden Befehl im Container aus. pg_dump -U postgres -f /var/lib/postgresql/data/dump.txt pg_dump - Das Tool fürs Backup -U postgres - Der Befehl wird als User postgres ausgeführt -f /var/lib/postgresql/data/dump.txt - Das Dump File wird im Data Ordner abgelegt, den haben wir ja persistent auf dem Host. Somit kann ich das jetzt einfach in mein Backup Script einbauen und brauchen nicht mehr den ganzen Ordner zu kopieren, sondern nur noch das Dump File. Ich werde diese Änderungen in das obige Script einbauen.
  • Restic feiert 10. Geburtstag

    Restic restic linux
    1
    1
    0 Stimmen
    1 Beiträge
    181 Aufrufe
    Niemand hat geantwortet
  • Restic v0.16.2

    Linux restic linux
    1
    0 Stimmen
    1 Beiträge
    161 Aufrufe
    Niemand hat geantwortet
  • Rest-Server Version 0.12.1 released

    Linux rest-server restic linux
    1
    0 Stimmen
    1 Beiträge
    140 Aufrufe
    Niemand hat geantwortet
  • Restic v0.14.0 released

    Restic restic
    5
    0 Stimmen
    5 Beiträge
    310 Aufrufe
    FrankMF
    @berthold GUI v1.5.0 released mit Unterstützung für restic 0.14.0 und dem Migrations Tool. Bitte zum Testen evt. nicht auf die wichtigsten Daten loslassen Mein Test mit meinem Repo auf dem REST-Server war erfolgreich.
  • Restic - Passwortübergabe

    Restic restic
    1
    0 Stimmen
    1 Beiträge
    248 Aufrufe
    Niemand hat geantwortet
  • Restic v0.12.1 released

    Restic restic
    1
    0 Stimmen
    1 Beiträge
    189 Aufrufe
    Niemand hat geantwortet
  • Rest-Server

    Verschoben Restic rest-server linux restic
    8
    0 Stimmen
    8 Beiträge
    791 Aufrufe
    FrankMF
    Dann mal eben ausprobiert. Auf meinem Server war die Version 0.9.7 selber, mit go, gebaut. Dann mache ich das auch mit der v0.10.0 so. Aber bevor ich anfange, wird die v0.9.7 gesichert. mv /usr/local/bin/rest-server /usr/local/bin/rest-server_0_9_7 So erspare ich mir im Problemfall das selber bauen. Ok, dann die neue Version bauen. git clone https://github.com/restic/rest-server.git cd rest-server go run build.go Danach befindet sich im Verzeichnis die Binärdatei rest-server Die kopieren wir jetzt cp rest-server /usr/local/bin Danach kurzer Test # rest-server --version rest-server 0.10.0 (v0.10.0-6-g037fe06) compiled with go1.11.6 on linux/amd64 Gut Version passt Dann ein Backup gestartet. Das sichert einen Teil meines Home-Verzeichnis Files: 153 new, 100 changed, 177857 unmodified Dirs: 0 new, 1 changed, 0 unmodified Added to the repo: 81.881 MiB processed 178110 files, 80.571 GiB in 0:28 snapshot 607e0027 saved Applying Policy: keep the last 3 snapshots, 3 monthly snapshots keep 5 snapshots: ID Time Host Tags Reasons Paths --------------------------------------------------------------------------------------- fa97890e 2020-07-25 21:02:05 frank-XXX monthly snapshot /home/frank 5b073bbb 2020-08-30 10:17:27 frank-XXX monthly snapshot /home/frank f7cf37ef 2020-09-06 15:13:03 frank-XXX last snapshot /home/frank 0157462c 2020-09-13 13:32:12 frank-XXX last snapshot /home/frank 607e0027 2020-09-14 08:09:34 frank-XXX last snapshot /home/frank monthly snapshot --------------------------------------------------------------------------------------- 5 snapshots remove 1 snapshots: ID Time Host Tags Paths --------------------------------------------------------------------- 3010b7cc 2020-09-06 11:39:27 frank-XXX /home/frank --------------------------------------------------------------------- 1 snapshots 1 snapshots have been removed, running prune counting files in repo building new index for repo [1:34] 100.00% 17351 / 17351 packs So weit funktioniert das genau wie vorher. Im Changelog stand ja was von Subfoldern. Das betrifft mich nicht, weil ich für jeden User genau ein Verzeichnis habe. So mit alles Gut Dann warte ich mal morgen ab, ob die täglichen Backups der Server rund laufen.