Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Deine Antwort

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Sardok
11.02.2020 18:07:55

Hallo open-source greg,

open-source greg schrieb:

Nimm borg check.
borg check sollte in der Lage sein defekte und Falsch erstellte Archive zu erkennen. Im Gegensatz zu btrfs kennt es ja auch sein eigenes Archivformat wink.
Wenn du wirklich 100% sicher sein willst könntest du sogar zusätzlich scrub ausführen, falls die Datei eigentlich defekt ist aber noch als intaktes Archiv erkannt wird (Wahrscheinlichkeit ~0%).

Dann werde ich Borg mit der Option check nehmen. Dann macht aber Btrfs eigentlich keinen Sinn mehr auf der externen Sicherungsplatte. Deswegen werde ich Ext4 für die externe Sicherungsplatte verwenden.

Danke für dein Antworten. smile

Benutzt noch jemand anderes Borg und hat vielleicht eine Antwort auf folgende Frage:

Sardok schrieb:

Wie überprüft ihr eigentlich eure Archive auf Konsistenz?
Ich mounte immer einmal das Archiv nach der Sicherung. Außerdem führt mein Script immer folgendes aus:

borg check -v -p $repopfad --prefix $prefix --last 3

Sollte ich lieber den "check" Befehl mit der Option "--verify-data" ausführen. Oder reicht ein normaler "check" aus? Der Nachteil sämtlicher "check" Befehle ist natürlich leider eine verlängerte Dauer nach der Sicherung.

open-source greg
11.02.2020 14:43:23

Hi Sardok,
hab dich wohl teilweise falsch verstanden hoffe der Post hier klärt das smile.

Sardok schrieb:

Folgendes habe ich dazu gefunden: https://btrfs.wiki.kernel.org/index.php … gmentation
Dort wird geraten für Virtuelle Maschinen nodatacow zu verwenden. Das habe ich bereits auf meiner internen HDD mit chattr +C, für den Ordner in dem meine Virtuellen Maschinen gespeichert werden, erledigt.
Für Firefox und Co. wird autodefrag empfohlen. Deshalb verwende ich die Mountoption autodefrag auf meiner internen HDD.
Ich habe nur jetzt keine Ahnung ob z.B. die Option autodefrag bei meiner externen Sicherungsplatte für Borg ausreicht. Oder ob nodatacow besser wäre.

Ok, hier sind die infos echt nen bischen verstreut bei 'man 5 btrfs' steht folgendes:

btrfs autodefrag schrieb:

Enable automatic file defragmentation. When enabled, small random writes into files (in a range of tens of kilobytes, currently it’s 64K) are detected and queued up for the defragmentation
process. Not well suited for large database workloads.

The read latency may increase due to reading the adjacent blocks that make up the range for defragmentation, successive write will merge the blocks in the new location.

    Warning
    Defragmenting with Linux kernel versions < 3.9 or ≥ 3.14-rc2 as well as with Linux stable kernel versions ≥ 3.10.31, ≥ 3.12.12 or ≥ 3.13.4 will break up the reflinks of COW data (for
    example files copied with cp --reflink, snapshots or de-duplicated data). This may cause considerable increase of space usage depending on the broken up reflinks

Ich interpretiere das so dass bei extrem vielen kleinen Schreibzugriffen mit autedofrag die Performance in den Keller geht.
Ohne autodefrag wird unnötig viel Festplattenspeicher reserviert ( "Trashing" im wiki ^^).
Mit nocow stimmt die Performance und der Speicherverbrauch aber mit den bekannten Nachteilen.

Die Zahl der Schreibzugriffe, bis wirklich Probleme auftreten, dürfte hier aber wesentlich höher sein, als es auf Desktop-Systemen der Fall ist.
Ich persöhnlich benutze immer autodefrag als Mountoption und hatte noch nie irgendwelche Performance- oder Platzprobleme (auch nicht mit den im Warning genannten Kernelversionen).

Sardok schrieb:

Scrub kann zwar in einer Raid Konfiguration beschädigte Dateien automatisch reparieren, aber nutzlos ist es ohne Raid in meinen Augen nicht. Ich verwende Scrub auch ohne Raid um festzustellen, ob Dateien beschädigt wurden. Wenn ich dies rechtzeitig mitbekomme, kann ich über meine externe Sicherung die beschädigten Dateien austauschen. Natürlich ist dabei auch wichtig das Beschädigigungen von Dateien auch auf  der externen Sicherungsplatte rechtzeitig festgestellt werden.

Ja da hast du Recht.
Allerdings entdeckt scrub natürlich nur Prüfsummenfehler, die treten vorallem bei unterbrochenen Schreibvorgängen z.B. durch plötzliches Abziehen der externen Festplatte auf.

Sardok schrieb:

Deshalb auch meine Frage ob dabei ein Scrub oder doch besser das Borg interne check angewendet werden sollte.

Nimm borg check.
borg check sollte in der Lage sein defekte und Falsch erstellte Archive zu erkennen. Im Gegensatz zu btrfs kennt es ja auch sein eigenes Archivformat wink.
Wenn du wirklich 100% sicher sein willst könntest du sogar zusätzlich scrub ausführen, falls die Datei eigentlich defekt ist aber noch als intaktes Archiv erkannt wird (Wahrscheinlichkeit ~0%).

Ich denke du machst dir zuviele Gedanken was btrfs angeht. Das funktioniert auch mit den default mount optionen. Irgendwie größeren Schaden mit mount option anrichten, geht da schon lange nicht mehr.

Sardok
11.02.2020 12:32:06

Hallo open-source greg,

danke das du dir wieder die Zeit nimmst und auf meinen Beitrag antwortest smile .

open-source greg schrieb:

-Wieso meinst du btrfs hätte Probleme mit Datenbanken? Heute schleppt jeder Webbrowser mehrere sqlite Datenbanken mit sich rum.
(Wenn überhaupt könnte ich mir da irgendwelche unerheblichen Performanceprobleme vorstellen.)

Folgendes habe ich dazu gefunden: https://btrfs.wiki.kernel.org/index.php … gmentation
Dort wird geraten für Virtuelle Maschinen nodatacow zu verwenden. Das habe ich bereits auf meiner internen HDD mit chattr +C, für den Ordner in dem meine Virtuellen Maschinen gespeichert werden, erledigt.
Für Firefox und Co. wird autodefrag empfohlen. Deshalb verwende ich die Mountoption autodefrag auf meiner internen HDD.
Ich habe nur jetzt keine Ahnung ob z.B. die Option autodefrag bei meiner externen Sicherungsplatte für Borg ausreicht. Oder ob nodatacow besser wäre.

open-source greg schrieb:

-Scrub ist nur bei RAID Konfigurationen nützlich

Scrub kann zwar in einer Raid Konfiguration beschädigte Dateien automatisch reparieren, aber nutzlos ist es ohne Raid in meinen Augen nicht. Ich verwende Scrub auch ohne Raid um festzustellen, ob Dateien beschädigt wurden. Wenn ich dies rechtzeitig mitbekomme, kann ich über meine externe Sicherung die beschädigten Dateien austauschen. Natürlich ist dabei auch wichtig das Beschädigigungen von Dateien auch auf  der externen Sicherungsplatte rechtzeitig festgestellt werden.

Deshalb auch meine Frage ob dabei ein Scrub oder doch besser das Borg interne check angewendet werden sollte.

open-source greg schrieb:

Eigentlich ist btrfs mittlerweile nen sehr brauchbares Dateisystem, da gibt es kaum was was dir im Alltag Probleme machen sollte (Mittlerweile gehen ja sogar swapfiles und overlayfs).
Wenn du mal Zeit hast kannst du dich ja hier ein bischen einlesen, ist leider recht unübersichtlich

Ich habe mich bereits eingelesen. Weiß aber nicht, ob ich alles richtig verstanden habe. Ich nutze Btrfs bereits auf meinen internen Platten. Vor jedem Backup mache ich immer Snapshots. Ich habe tatsächlich auch schon einen größeren Fehler gemacht (während des Updates den Computer heruntergefahren) und war froh, dass ich auf den vorigen Stand zurückspringen konnte.

Falls interesse besteht hier ist meine aktuelle fstab:

# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/         	btrfs     	rw,noatime,compress=lzo,ssd,space_cache=v2,subvol=@	0 0

# /dev/sda1 UUID=D52D-4B8E
LABEL=p_efi         	/efi      	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro	0 2

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/home     	btrfs     	rw,nosuid,nodev,noatime,compress=lzo,ssd,space_cache=v2,subvol=@home	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/home/samuel/Bilder	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Bilder	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/home/samuel/Dokumente	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Dokumente	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/home/samuel/Downloads	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Downloads	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441

LABEL=p_daten       	/home/samuel/Musik	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Musik	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/home/samuel/Videos	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Videos	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/home/samuel/Vorlagen	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Vorlagen	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/home/samuel/Mixed	btrfs     	rw,nosuid,nodev,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Mixed	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/home/samuel/.Datensnap	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvol=@Datensnap,user,noauto,nofail	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/root     	btrfs     	rw,noatime,compress=lzo,ssd,space_cache=v2,subvol=@root	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/root/arch_pool	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,ssd,space_cache=v2,subvolid=5,subvol=/,noauto,nofail	0 0

# /dev/sdb1 UUID=a898d97e-b92b-4c18-b76a-44416d45d441
LABEL=p_daten       	/root/daten_pool	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,autodefrag,subvolid=5,subvol=/,noauto,nofail	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/srv      	btrfs     	rw,noatime,compress=lzo,ssd,space_cache=v2,subvol=@srv	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/.snapshots	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,ssd,space_cache=v2,subvol=@snapshots,noauto,nofail	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/var/cache	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,ssd,space_cache=v2,subvol=@cache	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/var/log  	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,ssd,space_cache=v2,subvol=@log	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/var/spool	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,ssd,space_cache=v2,subvol=@spool	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/var/tmp  	btrfs     	rw,nosuid,nodev,noexec,noatime,compress=lzo,ssd,space_cache=v2,subvol=@tmp	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/var/lib/machines	btrfs     	rw,noatime,compress=lzo,ssd,space_cache=v2,subvol=@machines	0 0

# /dev/sda2 UUID=e818806e-2cd5-413b-b5f1-278b7dbb0775
LABEL=p_arch        	/var/lib/portables	btrfs     	rw,noatime,compress=lzo,ssd,space_cache=v2,subvol=@portables	0 0

# /dev/sda3 UUID=ea92a887-157f-4385-af9e-b896125846af
LABEL=p_swap        	none      	swap      	defaults  	0 0

# Backup HD-Festplatte
LABEL=SAMUEL_BACKUP  /media/HD_Backup  btrfs  rw,nosuid,nodev,noexec,noatime,compress=lzo,space_cache=v2,subvolid=5,subvol=/,user,noauto,nofail  0 0
open-source greg
10.02.2020 22:58:04

Hallo Sardok,
zum Thema Borg weiss ich leider nichts, aber was btrfs betrifft hast du wohl nen paar Sachen falsch verstanden.

-Wieso meinst du btrfs hätte Probleme mit Datenbanken? Heute schleppt jeder Webbrowser mehrere sqlite Datenbanken mit sich rum.
(Wenn überhaupt könnte ich mir da irgendwelche unerheblichen Performanceprobleme vorstellen.)

-Wie du schon erkannt hast ist btrfs, wenn mit nodatacow gemounted, nicht besonders nützlich (man kann mit chattr +C übrigens auch einzelne Dateien als nocow markieren).
Aber vorallem weil snapshots und Komprimierung nicht mehr richtig funktionieren.

-Scrub ist nur bei RAID Konfigurationen nützlich

Eigentlich ist btrfs mittlerweile nen sehr brauchbares Dateisystem, da gibt es kaum was was dir im Alltag Probleme machen sollte (Mittlerweile gehen ja sogar swapfiles und overlayfs).
Wenn du mal Zeit hast kannst du dich ja hier ein bischen einlesen, ist leider recht unübersichtlich

Gruß
o-s greg

Sardok
09.02.2020 21:17:28

Hallo,
ich benutze Borg für meine Backups. Hier ist meine Konfiguration:

#!/bin/bash

# Skriptvorlage BorgBackup
# https://wiki.ubuntuusers.de/BorgBackup/
# https://borgbackup.readthedocs.io/en/stable/

# Hier das Passwort für das Repo angeben
export BORG_PASSPHRASE=

# Hier Pfad zum Sicherungsmedium angeben.
# z.B. zielpfad="/media/peter/HD_Backup"
zielpfad="/media/HD_Backup"

# Hier Namen des Repositorys angeben.
# z.B. repository="borgbackups"
repository="borg-$USER@$HOSTNAME"

# Hier eine Liste mit den zu sichernden Verzeichnissen angeben
# z.B. sicherung="/home/peter/Bilder /home/peter/Videos --exclude *.tmp"
sicherung="$HOME --exclude-from $HOME/Vorlagen/borg_home-exclude.txt"

# Hier Namen des Archivs angeben.
prefix="home-"
archive=$prefix"{now:%Y-%m-%d-%H%M%S}"

# Hier die Art der Verschlüsselung angeben
# z.B. verschluesselung="none"
verschluesselung="repokey-blake2"

# Hier die Art der Kompression angeben
# z.B. kompression="none"
kompression="auto,lz4"

# Hier bitte Label der Festplatte angeben
label="SAMUEL_BACKUP"

# Hier angeben, ob überprüft werden soll, dass die Festplatte gemounted ist 
testen="ja"

# Hier angeben, ob vor der Ausführung von BorgBackup auf vorhandene Root-Rechte geprüft werden soll
# z.B. rootuser="ja"
rootuser="nein"

# Hier angeben, ob vor der Ausführung von BorgBackup auf normale Nutzer-Rechte geprüft werden soll
user="ja"

# Hier angeben nach welchem Schema alte Archive gelöscht werden sollen.
# Die Vorgabe behält alle Sicherungen des aktuellen Tages. Zusätzlich das aktuellste Archiv der 
# letzten 7 Sicherungstage, der letzten 4 Wochen sowie der letzten 12 Monate.
pruning="--keep-within=1d --keep-daily=7 --keep-weekly=4 --keep-monthly=6"

###################################################################################################

script=$(echo $(mount -l | grep $label) | cut -d" " -f3)
repopfad="$zielpfad"/"$repository"

# check for root
if [ $(id -u) -ne 0 ] && [ "$rootuser" == "ja" ]; then
  echo "Sicherung muss als Root-User ausgeführt werden."
  exit 1
fi

# check for user
if [ $(id -u) -eq 0 ] && [ "$user" == "ja" ]; then
  echo "Sicherung muss als normaler Nutzer ausgeführt werden."
  exit 1
fi

# check for mount
if [ -z $script ] && [ $testen == "ja" ]; then
  echo "Bitte Festplatte anschließen."
  exit 1
fi

# Init borg-repo if absent
if [ ! -d $repopfad ]; then
  borg init --encryption=$verschluesselung $repopfad 
  echo "Borg-Repository erzeugt unter $repopfad"
fi

# backup data
SECONDS=0
echo "Start der Sicherung $(date)."

borg create --compression $kompression --exclude-caches -v --stats --progress \
            $repopfad::$archive $sicherung

echo "Ende der Sicherung $(date). Dauer: $SECONDS Sekunden"

# check archieves
SECONDS=0
echo "Start der Überprüfung"

borg check -v -p $repopfad --prefix $prefix --last 3

echo "Ende der Überprüfung $(date). Dauer: $SECONDS Sekunden"

# prune archives
borg prune -v --list $repopfad --prefix $prefix $pruning

###################################################################################################
###################################################################################################

# Sicherung meiner aktuellen Paketlisten

# Hier Quellpfad für die Paketlisten angeben
# Achtung Ordner muss vorhanden sein.
SOURCE="$HOME/Mixed/Sicherung/Paketlisten/"

# Hier Zielpfad für die Paketlisten angeben. 
# Achtung Ordner muss vorhanden sein.
DEST=/media/HD_Backup/Paketlisten/

###################################################################################################

echo "Sicherung einer Liste aller installierten Programme"
rsync -avPh --stats --delete $SOURCE $DEST
echo "Sicherung ist abgeschlossen"

Die Vorlage für mein abgewandeltes Script habe ich von https://wiki.ubuntuusers.de/BorgBackup/

Vorbemerkung: Mir geht es darum, dass im Falle eines Datenverlustes auf meinem PC die gesicherten Daten auf meiner externen Platte ein intaktes Backup für diesen Notfall sind. Wie gehe ich dabei am besten mit einer Borg Sicherung vor.

Jetzt zu meinen eigentichen Fragen:

Meine externe Festplatte ist mit Btrfs formatiert worden. Jetzt bin ich mir aber nicht mehr so sicher ob dies so gut ist.

  • Ist Borg eine Datenbank? Benötigt man also die nodatacow Mount-Option? Dann wären auch die Checksummen ausgeschaltet. Somit geht kein Scrub mehr.

  • Macht es überhaupt Sinn statt "borg check" den Btrfs Befehl "scrub" auf die externe Platte anzuwenden?

Sofern also aus irgendeinem obigen Grund Scrub nicht mehr verwendet wird oder kann, ist doch wahrscheinlich eine Ext4-Formatierung auf der externen Platte besser?

Wie überprüft ihr eigentlich eure Archive auf Konsistenz?
Ich mounte immer einmal das Archiv nach der Sicherung. Außerdem führt mein Script immer folgendes aus:

borg check -v -p $repopfad --prefix $prefix --last 3

Sollte ich lieber den "check" Befehl mit der Option "--verify-data" ausführen. Oder reicht ein normaler "check" aus? Der Nachteil sämtlicher "check" Befehle ist natürlich leider eine verlängerte Dauer nach der Sicherung.

Fußzeile des Forums

Powered by FluxBB