Skip to content

Proxmox - Hetzner Storage Box in VM einbinden

Proxmox
  • Ich nutze für eine Menge an Datensicherungen den REST-Server von Restic. Dazu habe ich in der Hetzner Cloud eine VM und 150GB Datenspeicher, was rund 12€ / Monat kostet. Da ich jetzt einen Proxmox habe, ich das ein wenig Geldverschwendung. Aber so ganz ohne Kohle geht auch das nicht....

    Grund dafür, die Backups sollen physikalisch nicht in dem selben Rechenzentrum liegen wie mein Proxmox Server. Sollte das Rechenzentrum mal "abbrennen", so sollen die Daten noch vorhanden sein. Ich denke, es ist nicht nötig Euch zu erklären, das die Daten auch noch irgendwo lokal rumliegen sollen / müssen !?

    Hetzner hat dafür ein Angebot und das nennt sich Storage Box. Dort kann man Speicherplatz mieten. Gut, diesen Speicherplatz möchte ich meiner VM hinzufügen.

    Ich habe mich an die Dokumentation von Hetzner gehalten, aber es wollte mir nicht gelingen die Storage Box beim Starten einzubinden. Das ist aber auch zwingende Voraussetzung, das der REST-Server startet, weil dieser die Storage Box als Mountpoint benutzen soll.

    Das manuelle Mounten war kein Problem, nur beim Neustart klappte es nicht. Ich habe dann folgendes gemacht.

    /etc/fstab

    Mein Eintrag

    https://<Benutzername>.your-storagebox.de /mnt/MOUNTPOINT davfs auto,rw,uid=1001,gid=1001,file_mode=0660,dir_mode=0770,_netdev 0 0
    
    • Benutzernamen bekommt ihr von Hetzner
    • Mountpoint sollte klar sein, z.B. /mnt/data
    • uid=<Systemkonto> und gid=<Systemgruppe> # Findet man unter /etc/passwd, in meinem Fall der Benutzer des REST-Servers
    • Rest, bis auf auto, aus der Anleitung von Hetzner übernommen

    Damit das WebDAV-Verzeichnis automatisch gemountet werden kann, müssen Sie folgende Zeile in der Datei /etc/davfs2/secrets hinzufügen:

    https://<Benutzername>.your-storagebox.de <Benutzername> <Passwort>
    Quelle: https://docs.hetzner.com/de/robot/storage-box/access/access-webdav

    Wenn man jetzt neustartet, passiert nichts. Vermutlich, weil zu dem Zeitpunkt des Mountens, das Netzwerk noch nicht zur Verfügung steht. Gut, dann brauchen wir einen SystemD Dienst, der uns das Ganze startet.

    /etc/systemd/system

    Wir erstellen eine Datei

    nano startup.service
    

    der Inhalt

    [Unit]
    Description=Dein Script
    After=syslog.target
    After=network.target
        
    [Service]
    Type=oneshot
    ExecStart=/root/startup
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target
    

    Man sieht, ich rufe diese Datei /root/startup auf.

    /root/startup

    Inhalt

    #!/bin/bash
    # Dient zum Mounten der Storage Box und zum Starten des REST-Servers
    mount -a
    systemctl start rest-server
    

    Ausführbar machen

    chmod +x /root/startup    
    

    Aktivierung systemd

    Danach müssen wir den SystemD Dienst aktivieren

    systemctl enable startup.service
    systemctl start startup.service
    

    Jetzt sollte die Storage Box gemountet sein und der REST-Server ist gestartet. Das überlebt jetzt auch einen evt. Server Neustart.

    Fazit

    Rund die Hälfte, 6€ pro Monat gespart 😉

    Hier noch die Einstellungen aus dem Hetzner Webinterface

    storage_box.png

  • Proxmox - Video Tipp

    Proxmox
    1
    0 Stimmen
    1 Beiträge
    139 Aufrufe
    Niemand hat geantwortet
  • Restic - Kompression

    Restic
    2
    0 Stimmen
    2 Beiträge
    320 Aufrufe
    FrankMF
    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 [image: 1651846033957-547e3596-69df-48ac-9409-5173367afb85-grafik.png] Test mit 7z Rechtsklick, mit den Bordmittel und dann 7z gewählt. [image: 1651845865746-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 [image: 1651846470644-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 [image: 1651846653769-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!
  • Proxmox - Backup Server WakeOnLan

    Proxmox
    1
    +1
    0 Stimmen
    1 Beiträge
    713 Aufrufe
    Niemand hat geantwortet
  • Python3 - subprocess.Popen

    Python3
    1
    0 Stimmen
    1 Beiträge
    288 Aufrufe
    Niemand hat geantwortet
  • Restic v0.11.0 released

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

    Verschoben Restic
    8
    0 Stimmen
    8 Beiträge
    587 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.
  • Restic - forget --keep-last 3 --prune

    Restic
    2
    0 Stimmen
    2 Beiträge
    621 Aufrufe
    FrankMF
    Ich habe mich damit noch ein wenig beschäftigt, die letzten drei zu behalten, ist nicht so optimal. Da es viele Optionen bei dem Befehl gibt, hier ein Ausschnitt Flags: -l, --keep-last n keep the last n snapshots -H, --keep-hourly n keep the last n hourly snapshots -d, --keep-daily n keep the last n daily snapshots -w, --keep-weekly n keep the last n weekly snapshots -m, --keep-monthly n keep the last n monthly snapshots -y, --keep-yearly n keep the last n yearly snapshots habe ich das ein wenig so angepasst, das ich denke es passt für mich. restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune Damit behalte ich auch die jeweils eines pro Monat. Und die letzten drei. Das sieht dann so aus. root@debian:~# ./backup2.sh repository 2f3f6147 opened successfully, password is correct Files: 38 new, 100 changed, 13268 unmodified Dirs: 0 new, 1 changed, 0 unmodified Added to the repo: 10.166 GiB processed 13406 files, 50.324 GiB in 3:24 snapshot 849f614c saved repository 2f3f6147 opened successfully, password is correct Applying Policy: keep the last 3 snapshots, 3 monthly snapshots snapshots for (host [debian], paths [/home/frank]): keep 5 snapshots: ID Time Host Tags Reasons Paths ------------------------------------------------------------------------------------ a7251cfd 2019-11-28 17:00:01 debian monthly snapshot /home/frank 283d4027 2019-12-31 17:00:01 debian monthly snapshot /home/frank ae2b96ec 2020-01-01 21:47:46 debian last snapshot /home/frank 079e00a6 2020-01-02 17:00:01 debian last snapshot /home/frank 849f614c 2020-01-03 21:08:45 debian last snapshot /home/frank monthly snapshot ------------------------------------------------------------------------------------ 5 snapshots remove 26 snapshots: ID Time Host Tags Paths ------------------------------------------------------------------ 896f16c2 2019-11-07 22:23:40 debian /home/frank b21bcf6d 2019-11-11 17:00:01 debian /home/frank f89248fb 2019-11-12 17:00:01 debian /home/frank 123ab546 2019-11-13 17:00:01 debian /home/frank b82d87d0 2019-11-18 17:00:01 debian /home/frank 040b0ab7 2019-11-19 17:00:01 debian /home/frank 7221d8ef 2019-11-20 17:00:01 debian /home/frank 84132a25 2019-11-21 17:00:01 debian /home/frank b558a52c 2019-11-25 17:00:01 debian /home/frank e5cc0c3e 2019-12-02 17:00:01 debian /home/frank 22423fa5 2019-12-03 17:00:01 debian /home/frank 39df1ab9 2019-12-04 17:00:01 debian /home/frank 98843457 2019-12-05 17:00:01 debian /home/frank b0cdd4b6 2019-12-09 17:00:01 debian /home/frank 828414f9 2019-12-10 17:00:01 debian /home/frank e34a27c3 2019-12-11 17:00:01 debian /home/frank 6e488c3b 2019-12-12 17:00:01 debian /home/frank 17898403 2019-12-16 17:00:01 debian /home/frank 1973305a 2019-12-17 17:00:01 debian /home/frank 9553bedd 2019-12-18 17:00:01 debian /home/frank fedf749d 2019-12-19 17:00:01 debian /home/frank 8e7cb876 2019-12-23 17:00:01 debian /home/frank 0bd0d102 2019-12-25 17:00:01 debian /home/frank 13d348b0 2019-12-26 17:00:01 debian /home/frank c7d960aa 2019-12-30 17:00:01 debian /home/frank f6ea9118 2020-01-01 17:00:01 debian /home/frank ------------------------------------------------------------------ 26 snapshots 26 snapshots have been removed, running prune counting files in repo building new index for repo [0:35] 100.00% 7806 / 7806 packs repository contains 7806 packs (46537 blobs) with 41.110 GiB processed 46537 blobs: 0 duplicate blobs, 0 B duplicate load all snapshots find data that is still in use for 5 snapshots [0:01] 100.00% 5 / 5 snapshots found 32654 of 46537 data blobs still in use, removing 13883 blobs will remove 0 invalid files will delete 715 packs and rewrite 752 packs, this frees 5.027 GiB [2:28] 100.00% 752 / 752 packs rewritten counting files in repo [0:01] 100.00% 6571 / 6571 packs finding old index files saved new indexes as [d137b425 f7caee99 a6e9711a] remove 35 old index files [1:13] 100.00% 1467 / 1467 packs deleted done using temporary cache in /tmp/restic-check-cache-916655151 repository 2f3f6147 opened successfully, password is correct created new cache in /tmp/restic-check-cache-916655151 create exclusive lock for repository load indexes check all packs check snapshots, trees and blobs read all data [7:47] 100.00% 6571 / 6571 items duration: 7:47 no errors were found root@debian:~# Am Ende seht ihr noch, wie Restic alle Files testet. Mein Script sieht jetzt so aus. #!/bin/bash # Script um mit Restic Daten automatisiert zu sichern! # Dient zum Sichern der Homepartition auf dem ROCKPro64 NAS! # Was soll gesichert werden? backup_pfad=/home/frank # Programm Start restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ backup $backup_pfad --exclude-file=excludes.txt restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ forget --keep-last 3 --keep-monthly 3 --prune # Testen restic --password-file /root/passwd -r /media/NAS_neu/Restic/Home/ check --read-data Das dann schön mit einem Cronjob laufen lassen und die Datensicherung ist erledigt
  • Restic - Ein Backupkonzept

    Angeheftet Restic
    1
    0 Stimmen
    1 Beiträge
    1k Aufrufe
    Niemand hat geantwortet