MiniPC Umstellung von Windows auf Linux - Fragen bezüglich Backup

Begonnen von swsmily, 24 September 2022, 00:10:53

Vorheriges Thema - Nächstes Thema

bugster_de

Hi,

die Frage ist zwar schon 4 Wochen alt, aber ggf. ist meine Lösung genau für die Frage passend.
Das Backup kannst du komplett mit Linux Bordmitteln umsetzen; externe Programme a la Acronis oder so braucht man da gar nicht. Die Beispiele unten sind von meinem Hauptserver (Ubuntu) auf meinen Backupserver). Da deine Hardware ja nur für FHEM eh viel zu viel Performance bietet werden dann (glaub mir :-)) im Laufe der Zeit auch andere Sachen wie z.B. Plex, Kodi-Headless oder so drauf laufen. Beispiele unten sind von meinem Ubuntu Server aber gelten genau so auch für FHEM.

(1) Generell lege ich die Daten in Verzeichnissen ab, die der Wichtigkeit der Dokumente entsprechen
0_High --> wäre eine Katastrophe, wenn die Dateien verloren gehen (z.B. Kinderfotos). Daher Mehstufiges Backup bis hin zu einmal alle 3 Monate DVD Brennen und ausserhalb meines Hauses lagern
5_Med --> wäre schade aber nicht das Ende der Welt, wenn die Dateien weg sind --> einfaches Backup auf zweite Festplatte
9_Low --> egal wenn weg --> gar kein Backup

(2) in menschlich nutzbare Shares mache ich das dann vie Virtual Mount-Points. Somit kann man auch sehr fein granular steuern, wer mit den Daten was machen darf (lesen/schreiben/löschen)

Backup
(3) Dateien die den aktuellen Stand wiederspiegeln
das macht man mit rsync. Hier sind bei mir z.B. die FHEM Dateien *.cfg erhalten so wie die Log-Dateien. Hier wird immer der aktuelleste Stand der Datei auf den Backupserver aufgespielt. Sieht dann so aus
if [[ $(findmnt -M "/mount/ext/backupsrv") ]]; then
    # is mounted so sync
    rsync -a /mount/int/hd01/0_High/ /mount/ext/backupsrv/hd01/0_High
else
    mail -s "Backupverzeichnis nicht vorhanden!" root <<EOM
    Hallo Admin,
    der externe Server ist nicht gemountet. Kein RSYNC durch geführt
    Mit freundlichem Gruss Backupscript

    EOM
fi


(4) incrementelles Backup
jeweils am 1. eines Monats wird ein Spiegel der Dateien in ein Zip File gelegt und dann jeden weiteren Tag des Monats nur incrementelle Änderungen dazu. Somit hat man einen Rollback auf die letzte funktionierende Version der Dateien

BACKUPDIR="/mount/int/hd05/backup/${MEINNAME}/current"
# Pfad wo die Backups nach 30 Tagen konserviert werden
ROTATEDIR="/mount/int/hd05/backup/${MEINNAME}/rotate"
EXCLUDE="--exclude=home/user/.VirtualBox  --exclude=home/user/.local/share/Trash"
SOURCE="/etc /var/spool/cron /home/admin /mount/int/hd01/data/0_High /mount/int/hd02/0_High /mount/int/hd02/5_Medium /mount/int/hd03/0_High /mount/int/hd03/5_Medium"
TIMESTAMP="timestamp.dat"
### Alle Variablen einlesen und letzte Backupdateinummer herausfinden ##
set -- ${BACKUPDIR}/backup-???.tgz
lastname=${!#}
backupnr=${lastname##*backup-}
backupnr=${backupnr%%.*}
backupnr=${backupnr//\?/0}
backupnr=$[10#${backupnr}]
backupnr=000${backupnr}
backupnr=${backupnr: -3}
filename=backup-${backupnr}.tgz

### Nun wird das eigentliche Backup ausgefuehrt ##
tar -cpzf ${BACKUPDIR}/${filename} -g ${BACKUPDIR}/${TIMESTAMP} ${SOURCE} ${EXCLUDE}

### Abfragen ob das Backup erfolgreich war ##
if [ $? -ne 0 ]; then
    mail -s "Backup (${SOURCE}) war fehlerhaft!" root <<EOM
    Hallo Admin,
    das Backup ${filename} am ${DATUM} wurde mit Fehler beendet.
    Mit freundlichem Gruss Backupscript
EOM
else
    mail -s "Backup (${SOURCE}) war erfolgreich" root <<EOM
    Hallo Admin,
    echo das Backup ${filename} am ${DATUM} wurde erfolgreich beendet.
    Mit freundlichem Gruss Backupscript
EOM
fi



Die kleine Variante, die einfach stumpf je nach Zeitraster das komplette FHEM wegsichert sieht so aus
#!/bin/bash
tar --exclude=backup -cvzf "/mount/external/backup/$(date +%y%m%d_%H%M%S)_fhem_backup.tar.gz" "/opt/fhem" &>/dev/null

Das kann man nun mittels crontab regelmässig laufen lassen oder halt auch mittels Timer (at) aus FHEM heraus. FHEM kann dann z.B. prüfen, ob jemand zu Hause ist und das Backup nur machen wenn niemand da ist und die erhöhte Belastung des FHEM Servers und des Netzwerkes also nicht bemerkt. Auch kann FHEM erstmal mittels Wake-on-LAN das NAS hochfahren, warten bis es oben ist und dann das Backup starten. Der Möglichkeiten sind da viele



swsmily

Vielen Dank für deine Beispielskripte. Das werde ich auf jeden Fall im Hinterkopf behalten.

Durch meinen Threat und die ganzen Hinweise hier bin ich seit Wochen am Basteln. Erst unter Windows VMWare ein Debian installiert und da verschiedenes getestet, seit nicht ganz einer Woche werkelt nun in dem MiniPC eine kleine 128GB SSD. Darauf Proxmox, in Proxmox Container Nextcloud.

Es war bis jetzt sehr sehr sehr viel auszuprobieren, Fehler gemacht, verzweifelt, gegoogled usw. Aber aktuell läuft es ganz gut. Zwei Tage lang war ich fast am verzweifeln (Bilder der Handys sind auf einer externen HDD mit NTFS), lesen lief super. Aber schreiben war extrem langsam. Ging runter auf unter 100kb/s.
Irgendwas hatte ich an den Mount-Optionen in /etc/fstab falsch, aber egal was ich probiert habe, nichts hat geholfen. Nur ganz ohne irgenwelche Optionen eintragen hat das Problem gelöst:

so kann man schnell auf die extHDD schreiben:
UUID=7EF80448FXXXXX   /media/usb-handysicherung

so gings nur extrem langsam:
UUID=7EF80448FXXXXX   /media/usb-handysicherung   ntfs-3g   auto,nofail,sync,users,rw   0   0

Die kleine SSD ist bisher aber nur zum Testen. Wenn ich alles soweit am Laufen habe, dass ich wirklich zufrieden bin, wird es wohl eine 2TB SSD werden. Damit fällt das Mount-Problem dann auch weg.


Zurück zum ursprünglichen Thema Backup. Dank Proxmox sind Backups der einzelnen Systeme sehr einfach zu machen. Die Bilder und Videos aus /media/ust-handysicherung werde ich wohl auch mit rscyn aufs NAS sichern und mir dazu ein passendes Script schreiben, welches das NAS per WoL startet, Backup durchführt und das NAS danach wieder runterfährt.
Aktuell bin ich aber noch nicht so weit. (Mit 2 Babys, 5 Monate alt - da hat man nur Abends mal 2 bis 3 Stunden Zeit was zu machen ;))


Ich werde auf jeden Fall berichten, wenn ich alles soweit fertig habe, dass es mir gefällt und wie ich es dann gelöst habe.

Wernieman

ZitatHDD mit NTFS
Unter Linux würde ich, auch wegen Stabilität im Sinne von "Gesichertes Schreiben", lieber auf ein "passendes" Dateisystem setzen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

swsmily

Zitat von: Wernieman am 27 Oktober 2022, 10:02:59
Unter Linux würde ich, auch wegen Stabilität im Sinne von "Gesichertes Schreiben", lieber auf ein "passendes" Dateisystem setzen.

Ich weiß. Das soll auch keine Dauerlösung bleiben. Ich wollte nur nicht eine bestehende NTFS-Platte ändern, wenn ich noch nicht sicher bin, ob ich alles so hinbekomme mit Linux, oder evtl doch wieder auf Windows zurück gehe.
Geplant ist, dass eine große SSD in den PC kommt, und dann die externe NTFS-Platte wegfällt.


swsmily

Zitat von: swsmily am 26 Oktober 2022, 21:14:58
Ich werde auf jeden Fall berichten, wenn ich alles soweit fertig habe, dass es mir gefällt und wie ich es dann gelöst habe.

Nun mal ein kleiner Zwischenbericht von mir. Leider hat sich mein Projekt erstmal verzögert, da ich mit einer meiner Töchter eine Woche im Krankenhaus lag.

Im MiniPC werkelt nun eine 2TB SSD. Proxmox läuft darauf mit 2 Containern. Einmal Nextcloud und einmal einem SMB/Skript-Linux.
Unsere Handys kopieren über die App FolderSync alle neuen Bilder/Videos über eine Freigabe im SMB-Container in die jeweiligen Ordner. Da die Handys aber alles in DCIM speichern und diese Ordner nach paar Jahren sehr sehr viele Dateien enthalten, hab ich ein Skript geschrieben, was die Dateien je nach Erstelldatum in Unterordner je nach Jahreszahl verschiebt.
Die Daten liegen im Hostsystem von Proxmox unter /media/handyarchiv, dieses reiche ich über Mountpoints zu den beiden Containern durch.

Als zusätzliche Sicherung hab ich ein weiteres Skript geschrieben, was 3 mal pro Woche ausgeführt wird. Dieses startet per WoL das NAS, wartet bis es erreichbar ist, mounte das NAS als Netzlaufwerk, prüft ob im Mount-Verzeichnis die Datein ".NAS" verfügbar ist und kopiert via Rsync die Bilder aufs NAS, wartet danach noch 2 Minuten, umounted das NAS und fährt es dann wieder runter.

Somit werden die wichtigen Dateien regelmäßig aufs NAS gesichert.
Was die Container betrifft, von diesen erstelle ich regelmäßig über Proxmox Backups, bevor ich Änderungen "ausprobiere". Diese Backups kopiere ich händisch aufs NAS.
Am Hostsystem selbst wird es selten Änderungen geben, daher hab ich über einen USB-Stick den MiniPC mit Clonezilla gebootet und darüber ein Backup erstellt.

Ich denke so hab ich momentan ein akzeptables Backup-Konzept, was im schlimmsten Falle eines Festplatten-Crashes alles relativ schnell wiederherstellen lässt, ohne alles komplett neu (trotz Dokumentation) einzurichten.


Wernieman

1. Ich hoffe, Dir geht es wieder gut ..
2. Sicherst Du wirklich ganze Container?
Wenn Du die persistenten Daten "extern" lagerst, also im Host-Dateisystem oder in einem Docker-Volumen, dann mußt Du doch "nur" dieses sichern. Ein Defekter Container wird nicht wieder hergestellt, sondern "neu" geholt (oder gebaut).

Um bei einem vor kurzen erklärten Beispiel zu bleiben: Du würdest bei Word auch nur die geschriebenen Briefe sichern und nicht komplett Word. Wenn Word defekt, dann wird es neu installiert. Genau ist es mit Containern.

Hinweis: Genau deshalb haben Container auch Tags, welche Seriennummer haben. Dann kann man genau diese dann auch wieder herstellen, wenn gewünscht.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

swsmily

Zu 1. - ich war als Begleitperson mit meiner Tochter (5 Monate alt - Adenoviren). Ja alles wieder gut, zum Glück.  :)

zu 2. - via Rsync werden die Bilder und Videos die in /media/handyarchiv liegen aufs NAS gesichert. Also wirklich nur die Dateien.
Ansonsten sichere ich über Proxmox die Container, wenn ich darin Änderungen durchführe, also z.b. Update von Nextcloud Version 24.0.6 (damit hab ich begonnen) zu 24.0.7. und dann zu 25.0.1.
Somit hatte ich eine Sicherung des Containers, der mit Nextcloud 24.0.6 lief. War auch gut so, denn nach dem Update hatte ich erstmal in unregelmäßigen Abständen "internal Server Error". Zurückspielen ging fix und es lief wieder problemlos.

Um es mit dem Beispiel mit Word zu vergleichen - die "Briefe" liegen in einem Mountpoint und damit "sicher". Das Update hat "Word" kaputt gemacht - aber statt neu einzurichten, hab ich das "alte Word" mit sämtlichen Einstellungen wiederhergestellt und konnte direkt weiterarbeiten.


kadettilac89

Zitat von: Wernieman am 17 November 2022, 22:47:18
Wenn Du die persistenten Daten "extern" lagerst, also im Host-Dateisystem oder in einem Docker-Volumen, dann mußt Du doch "nur" dieses sichern. Ein Defekter Container wird nicht wieder hergestellt, sondern "neu" geholt (oder gebaut).

Ich denke du redest von Docker und swsmily von LXC. Letzteres kannst du in Proxmox wunderbar sichern.