mirror of
https://github.com/amadvance/snapraid.git
synced 2026-10-26 02:49:02 -04:00
2073 lines
92 KiB
Makefile
2073 lines
92 KiB
Makefile
Name{number}
|
|
snapraid - SnapRAID Sicherung für Festplatten-Arrays
|
|
|
|
Synopsis
|
|
:snapraid [-c, --conf CONFIG]
|
|
: [-f, --filter PATTERN] [-d, --filter-disk NAME]
|
|
: [-m, --filter-missing] [-e, --filter-error]
|
|
: [-a, --audit-only] [-h, --pre-hash] [-i, --import DIR]
|
|
: [-p, --plan PERC|bad|new|full]
|
|
: [-o, --older-than DAYS] [-l, --log FILE]
|
|
: [-s, --spin-down-on-error] [-w, --bw-limit RATE]
|
|
: [-t, --tail]
|
|
: [-Z, --force-zero] [-E, --force-empty]
|
|
: [-U, --force-uuid] [-D, --force-device]
|
|
: [-N, --force-nocopy] [-F, --force-full]
|
|
: [-R, --force-realloc] [-W, --force-realloc-tail]
|
|
: [-S, --start BLKSTART] [-B, --count BLKCOUNT]
|
|
: [-L, --error-limit NUMBER]
|
|
: [-A, --stats]
|
|
: [-v, --verbose] [-q, --quiet]
|
|
: status|smart|probe|up|down|diff|sync|scrub|fix|check
|
|
: |list|dup|pool|devices|touch|rehash|locate
|
|
|
|
:snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT]
|
|
|
|
Beschreibung (Description)
|
|
SnapRAID ist ein Sicherungsprogramm, das für Festplatten-Arrays
|
|
entwickelt wurde und Paritätsinformationen zur Datenwiederherstellung
|
|
bei Ausfall von bis zu sechs Festplatten speichert.
|
|
|
|
SnapRAID ist hauptsächlich für Home-Media-Center mit großen,
|
|
selten geänderten Dateien konzipiert und bietet folgende Funktionen:
|
|
|
|
* Sie können bereits mit Dateien gefüllte Festplatten verwenden,
|
|
ohne sie neu formatieren zu müssen, und wie gewohnt darauf zugreifen.
|
|
* Alle Ihre Daten werden gehasht, um die Datenintegrität zu
|
|
gewährleisten und stille Beschädigung (silent corruption) zu verhindern.
|
|
* Wenn die Anzahl der ausgefallenen Festplatten die Paritätsanzahl
|
|
überschreitet, beschränkt sich der Datenverlust auf die betroffenen
|
|
Festplatten; Daten auf anderen Festplatten bleiben zugänglich.
|
|
* Wenn Sie versehentlich Dateien auf einer Festplatte löschen,
|
|
ist eine Wiederherstellung möglich.
|
|
* Festplatten können unterschiedliche Größen haben.
|
|
* Sie können jederzeit Festplatten hinzufügen.
|
|
* SnapRAID sperrt Ihre Daten nicht ein; Sie können die Verwendung
|
|
jederzeit beenden, ohne neu formatieren oder Daten verschieben zu müssen.
|
|
* Um auf eine Datei zuzugreifen, muss nur eine einzige Festplatte
|
|
anlaufen (drehen), was Strom spart und Geräusche reduziert.
|
|
|
|
Für weitere Informationen besuchen Sie bitte die offizielle SnapRAID-Website:
|
|
|
|
:https://www.snapraid.it/
|
|
|
|
Einschränkungen (Limitations)
|
|
SnapRAID ist ein Hybrid aus RAID und einem Backup-Programm mit dem Ziel, die
|
|
besten Vorteile von beiden zu kombinieren. Es hat jedoch einige Einschränkungen, die Sie
|
|
vor der Verwendung berücksichtigen sollten.
|
|
|
|
Die Haupteinschränkung besteht darin, dass Sie bei einem Festplattenausfall Daten nur bis zum
|
|
Zustand des letzten `sync`-Vorgangs wiederherstellen können. Alle Daten, die seit dem
|
|
letzten Sync hinzugefügt oder geändert wurden und sich auf der ausgefallenen Festplatte befinden, gehen verloren.
|
|
|
|
Daher eignet sich SnapRAID in erster Linie für Daten, die sich selten ändern.
|
|
|
|
Für Daten, die beim letzten Sync bereits existierten, hängt die Wiederherstellungszuverlässigkeit
|
|
davon ab, ob die Option `snapshot` verwendet wird:
|
|
|
|
* Mit Snapshot-Unterstützung (verfügbar auf Btrfs, ZFS, Bcachefs und NTFS)
|
|
kann SnapRAID automatisch eine unabhängige eingefrorene Referenz
|
|
jedes unterstützten Daten-Dateisystems beibehalten.
|
|
Dies stellt sicher, dass der Wiederherstellungsprozess konsistent und zuverlässig bleibt,
|
|
selbst wenn Sie während oder nach einem Sync Dateien auf Ihrem Live-Dateisystem ändern oder löschen.
|
|
|
|
* Ohne Snapshot-Unterstützung kann das Löschen oder Ändern von Dateien nach einem `sync`
|
|
die vollständige Wiederherstellung anderer ausgefallener Festplatten verhindern. Dies geschieht,
|
|
weil die Parität nicht mehr mit den geänderten Dateien übereinstimmt, selbst wenn
|
|
sich diese Dateien nicht auf der ausgefallenen Festplatte befinden. Neu hinzugefügte
|
|
Dateien verhindern dagegen die Wiederherstellung bereits vorhandener Dateien nicht.
|
|
|
|
Weitere Einschränkungen von SnapRAID sind:
|
|
|
|
* Mit SnapRAID haben Sie immer noch separate Dateisysteme für jede
|
|
Festplatte. Mit RAID erhalten Sie ein einziges großes Dateisystem.
|
|
* SnapRAID verwendet kein Data-Striping (Verteilen von Datenblöcken).
|
|
Mit RAID erhalten Sie einen Geschwindigkeitsvorteil durch Striping.
|
|
* SnapRAID unterstützt keine Echtzeit-Wiederherstellung.
|
|
Mit RAID müssen Sie die Arbeit nicht unterbrechen, wenn eine
|
|
Festplatte ausfällt.
|
|
* SnapRAID kann Daten nur von einer begrenzten Anzahl von Festplattenausfällen
|
|
wiederherstellen. Mit einer Sicherung können Sie Daten nach einem
|
|
vollständigen Ausfall des gesamten Festplatten-Arrays wiederherstellen.
|
|
* Nur Dateinamen, Zeitstempel, symbolische Links (symlinks) und
|
|
Hardlinks werden gespeichert. Berechtigungen, Eigentümerschaft
|
|
und erweiterte Attribute werden nicht gespeichert.
|
|
|
|
Erste Schritte (Getting Started)
|
|
Um SnapRAID zu verwenden, müssen Sie zuerst eine Festplatte in Ihrem
|
|
Festplatten-Array auswählen, die für `parity`-Informationen
|
|
reserviert wird. Mit einer Festplatte für Parität können Sie Daten
|
|
nach einem einzelnen Festplattenausfall wiederherstellen, ähnlich wie bei RAID5.
|
|
|
|
Wenn Sie mehr Festplattenausfälle ausgleichen möchten,
|
|
ähnlich wie bei RAID6, müssen Sie zusätzliche Festplatten für Parität
|
|
reservieren. Jede zusätzliche Paritätsfestplatte ermöglicht die
|
|
Wiederherstellung von einem weiteren Festplattenausfall.
|
|
|
|
Als Paritätsfestplatten müssen Sie die größten Festplatten im Array
|
|
auswählen, da die Paritätsinformationen auf die Größe der größten
|
|
Datenfestplatte im Array anwachsen können.
|
|
|
|
Diese Festplatten werden zum Speichern der `parity`-Dateien
|
|
reserviert. Sie sollten Ihre Daten nicht darauf speichern.
|
|
|
|
Anschließend müssen Sie die `data`-Festplatten definieren, die Sie
|
|
mit SnapRAID schützen möchten. Der Schutz ist effektiver, wenn diese
|
|
Festplatten Daten enthalten, die sich selten ändern. Aus diesem Grund
|
|
ist es besser, die Windows C:\-Festplatte oder die Unix-Verzeichnisse
|
|
/home, /var und /tmp NICHT einzuschließen.
|
|
|
|
Die Liste der Dateien wird in den `content`-Dateien gespeichert,
|
|
die normalerweise auf den Daten-, Paritäts- oder Boot-Festplatten
|
|
gespeichert werden. Diese Datei enthält die Details Ihrer Sicherung,
|
|
einschließlich aller Prüfsummen zur Überprüfung ihrer Integrität.
|
|
Die `content`-Datei wird in mehreren Kopien gespeichert, und jede Kopie
|
|
muss sich auf einer anderen Festplatte befinden, um sicherzustellen,
|
|
dass selbst bei mehreren Festplattenausfällen mindestens eine Kopie
|
|
verfügbar ist.
|
|
|
|
Angenommen, Sie sind nur an einer Paritätsstufe des Schutzes interessiert
|
|
und Ihre Festplatten befinden sich unter:
|
|
|
|
:/mnt/diskp <- ausgewählte Festplatte für Parität
|
|
:/mnt/disk1 <- erste zu schützende Festplatte
|
|
:/mnt/disk2 <- zweite zu schützende Festplatte
|
|
:/mnt/disk3 <- dritte zu schützende Festplatte
|
|
|
|
Sie müssen die Konfigurationsdatei /etc/snapraid.conf mit den
|
|
folgenden Optionen erstellen:
|
|
|
|
:parity /mnt/diskp/snapraid.parity
|
|
:content /var/snapraid/snapraid.content
|
|
:content /mnt/disk1/snapraid.content
|
|
:content /mnt/disk2/snapraid.content
|
|
:data d1 /mnt/disk1/
|
|
:data d2 /mnt/disk2/
|
|
:data d3 /mnt/disk3/
|
|
|
|
Wenn Sie Windows verwenden, sollten Sie das Windows-Pfadformat mit
|
|
Laufwerksbuchstaben und Backslashes anstelle von Slashes verwenden.
|
|
|
|
:parity E:\snapraid.parity
|
|
:content C:\snapraid\snapraid.content
|
|
:content F:\array\snapraid.content
|
|
:content G:\array\snapraid.content
|
|
:data d1 F:\array\
|
|
:data d2 G:\array\
|
|
:data d3 H:\array\
|
|
|
|
Wenn Sie viele Festplatten haben und keine Laufwerksbuchstaben mehr
|
|
verfügbar sind, können Sie Festplatten direkt in Unterordnern
|
|
einhängen (mounten). Siehe:
|
|
|
|
:https://www.google.com/search?q=Windows+mount+point
|
|
|
|
Zu diesem Zeitpunkt sind Sie bereit, den Befehl `sync` auszuführen,
|
|
um die Paritätsinformationen zu erstellen.
|
|
|
|
:snapraid sync
|
|
|
|
Dieser Vorgang kann beim ersten Mal mehrere Stunden dauern, abhängig
|
|
von der Größe der bereits auf den Festplatten vorhandenen Daten.
|
|
Wenn die Festplatten leer sind, ist der Vorgang sofort abgeschlossen.
|
|
|
|
Sie können ihn jederzeit durch Drücken von Strg+C anhalten, und beim
|
|
nächsten Lauf wird er dort fortgesetzt, wo er unterbrochen wurde.
|
|
|
|
Wenn dieser Befehl abgeschlossen ist, sind Ihre Daten SICHER.
|
|
|
|
Jetzt können Sie Ihr Array nach Belieben verwenden und die Paritätsinformationen
|
|
regelmäßig durch Ausführen des `sync`-Befehls aktualisieren.
|
|
|
|
Scrubben (Scrubbing)
|
|
Um die Daten und die Parität regelmäßig auf Fehler zu überprüfen,
|
|
können Sie den Befehl `scrub` ausführen.
|
|
|
|
:snapraid scrub
|
|
|
|
Dieser Befehl vergleicht die Daten in Ihrem Array mit dem Hash,
|
|
der während des `sync`-Befehls berechnet wurde, um die Integrität
|
|
zu überprüfen.
|
|
|
|
Jeder Lauf des Befehls überprüft ungefähr 8% des Arrays,
|
|
ausgenommen Daten, die bereits in den letzten 10 Tagen gescrubbed wurden.
|
|
Sie können die Option -p, --plan verwenden, um eine andere Menge
|
|
anzugeben, und die Option -o, --older-than, um ein anderes Alter
|
|
in Tagen anzugeben. Zum Beispiel, um 5% des Arrays auf Blöcke zu
|
|
überprüfen, die älter als 20 Tage sind, verwenden Sie:
|
|
|
|
:snapraid -p 5 -o 20 scrub
|
|
|
|
Wenn während des Vorgangs stille oder Eingabe-/Ausgabefehler
|
|
gefunden werden, werden die entsprechenden Blöcke in der
|
|
`content`-Datei als fehlerhaft (bad) markiert und im Befehl
|
|
`status` aufgelistet.
|
|
|
|
:snapraid status
|
|
|
|
Um sie zu beheben, können Sie den Befehl `fix` verwenden und dabei
|
|
nach fehlerhaften Blöcken mit der Option -e, --filter-error
|
|
filtern:
|
|
|
|
:snapraid -e fix
|
|
|
|
Beim nächsten `scrub` verschwinden die Fehler aus dem `status`-Bericht,
|
|
wenn sie tatsächlich behoben sind. Um es schneller zu machen,
|
|
können Sie -p bad verwenden, um nur als fehlerhaft markierte Blöcke
|
|
zu scrubben.
|
|
|
|
:snapraid -p bad scrub
|
|
|
|
Das Ausführen von `scrub` auf einem nicht synchronisierten Array
|
|
kann Fehler melden, die durch entfernte oder geänderte Dateien
|
|
verursacht wurden. Diese Fehler werden in der `scrub`-Ausgabe
|
|
gemeldet, aber die zugehörigen Blöcke werden nicht als fehlerhaft
|
|
markiert.
|
|
|
|
Zusammenführen (Pooling)
|
|
Hinweis: Die unten beschriebene Pooling-Funktion wurde durch das
|
|
Tool mergerfs ersetzt, das jetzt die empfohlene Option für Linux-Benutzer
|
|
in der SnapRAID-Community ist. Mergerfs bietet eine flexiblere
|
|
und effizientere Möglichkeit, mehrere Laufwerke zu einem einzigen,
|
|
vereinheitlichten Einhängepunkt (Mount Point) zusammenzufassen,
|
|
was einen nahtlosen Zugriff auf Dateien über Ihr gesamtes Array
|
|
hinweg ermöglicht, ohne auf symbolische Links angewiesen zu sein.
|
|
Es lässt sich gut mit SnapRAID zum Paritätsschutz integrieren und
|
|
wird häufig in Setups wie OpenMediaVault (OMV) oder benutzerdefinierten
|
|
NAS-Konfigurationen verwendet.
|
|
|
|
Um alle Dateien in Ihrem Array im selben Verzeichnisbaum anzuzeigen,
|
|
können Sie die `pooling`-Funktion aktivieren. Sie erstellt eine
|
|
schreibgeschützte virtuelle Ansicht aller Dateien in Ihrem Array
|
|
mithilfe symbolischer Links.
|
|
|
|
Sie können das `pooling`-Verzeichnis in der Konfigurationsdatei
|
|
mit folgender Option konfigurieren:
|
|
|
|
:pool /pool
|
|
|
|
oder, wenn Sie Windows verwenden, mit:
|
|
|
|
:pool C:\pool
|
|
|
|
und anschließend den Befehl `pool` ausführen, um die virtuelle
|
|
Ansicht zu erstellen oder zu aktualisieren.
|
|
|
|
:snapraid pool
|
|
|
|
Wenn Sie eine Unix-Plattform verwenden und dieses Verzeichnis über
|
|
das Netzwerk für Windows- oder Unix-Maschinen freigeben möchten,
|
|
sollten Sie die folgenden Optionen zu Ihrer /etc/samba/smb.conf
|
|
hinzufügen:
|
|
|
|
:# Im globalen Abschnitt von smb.conf
|
|
:unix extensions = no
|
|
|
|
:# Im Freigabe-Abschnitt von smb.conf
|
|
:[pool]
|
|
:comment = Pool
|
|
:path = /pool
|
|
:read only = yes
|
|
:guest ok = yes
|
|
:wide links = yes
|
|
:follow symlinks = yes
|
|
|
|
In Windows erfordert die Freigabe symbolischer Links über ein Netzwerk,
|
|
dass Clients diese remote auflösen. Um dies zu ermöglichen,
|
|
müssen Sie neben der Freigabe des Pool-Verzeichnisses auch alle
|
|
Festplatten unabhängig freigeben, indem Sie die in der Konfigurationsdatei
|
|
definierten Festplattennamen als Freigabepunkte verwenden.
|
|
Sie müssen auch in der Option `share` der Konfigurationsdatei
|
|
den Windows UNC-Pfad angeben, den Remote-Clients benötigen, um
|
|
auf diese freigegebenen Festplatten zuzugreifen.
|
|
|
|
Zum Beispiel, wenn Sie von einem Server namens `darkstar` aus
|
|
arbeiten, können Sie die Optionen verwenden:
|
|
|
|
:data d1 F:\array\
|
|
:data d2 G:\array\
|
|
:data d3 H:\array\
|
|
:pool C:\pool
|
|
:share \\darkstar
|
|
|
|
und die folgenden Verzeichnisse über das Netzwerk freigeben:
|
|
|
|
:\\darkstar\pool -> C:\pool
|
|
:\\darkstar\d1 -> F:\array
|
|
:\\darkstar\d2 -> G:\array
|
|
:\\darkstar\d3 -> H:\array
|
|
|
|
um Remote-Clients den Zugriff auf alle Dateien unter \\darkstar\pool
|
|
zu ermöglichen.
|
|
|
|
Möglicherweise müssen Sie auch Remote-Clients konfigurieren, um
|
|
den Zugriff auf Remote-Symlinks mit dem Befehl zu aktivieren:
|
|
|
|
:fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
|
|
|
|
Wiederherstellen (Undeleting)
|
|
SnapRAID funktioniert eher wie ein Sicherungsprogramm als ein RAID-System
|
|
und kann verwendet werden, um Dateien in ihren vorherigen Zustand
|
|
wiederherzustellen oder das Löschen rückgängig zu machen, indem die
|
|
Option -f, --filter verwendet wird:
|
|
|
|
:snapraid fix -f DATEI
|
|
|
|
oder für ein Verzeichnis:
|
|
|
|
:snapraid fix -f VERZEICHNIS/
|
|
|
|
Sie können es auch verwenden, um nur versehentlich gelöschte Dateien
|
|
innerhalb eines Verzeichnisses wiederherzustellen, indem Sie die
|
|
Option -m, --filter-missing verwenden, die nur fehlende Dateien
|
|
wiederherstellt und alle anderen unberührt lässt.
|
|
|
|
:snapraid fix -m -f VERZEICHNIS/
|
|
|
|
Oder um alle gelöschten Dateien auf allen Laufwerken wiederherzustellen mit:
|
|
|
|
:snapraid fix -m
|
|
|
|
Wiederherstellung (Recovering)
|
|
Das Schlimmste ist passiert, und Sie haben eine oder mehrere Festplatten
|
|
verloren!
|
|
|
|
KEINE PANIK! Sie werden in der Lage sein, sie wiederherzustellen!
|
|
|
|
Das erste, was Sie tun müssen, ist, weitere Änderungen an Ihrem
|
|
Festplatten-Array zu vermeiden. Deaktivieren Sie alle Remote-Verbindungen
|
|
dazu und alle geplanten Prozesse, einschließlich geplanter SnapRAID-nächtlicher
|
|
`sync`- oder `scrub`-Läufe.
|
|
|
|
Fahren Sie dann mit den folgenden Schritten fort.
|
|
|
|
STEP 1 -> Reconfigure
|
|
Sie benötigen etwas Platz zur Wiederherstellung, idealerweise auf
|
|
zusätzlichen Ersatzfestplatten, aber eine externe USB-Festplatte oder
|
|
eine Remote-Festplatte ist ausreichend.
|
|
|
|
Ändern Sie die SnapRAID-Konfigurationsdatei so, dass die `data`-
|
|
oder `parity`-Option der ausgefallenen Festplatte auf einen Ort mit
|
|
genügend leerem Speicherplatz zur Wiederherstellung der Dateien zeigt.
|
|
|
|
Wenn zum Beispiel die Festplatte `d1` ausgefallen ist, ändern Sie von:
|
|
|
|
:data d1 /mnt/disk1/
|
|
|
|
zu:
|
|
|
|
:data d1 /mnt/new_spare_disk/
|
|
|
|
Wenn die wiederherzustellende Festplatte eine Paritätsfestplatte ist,
|
|
aktualisieren Sie die entsprechende `parity`-Option.
|
|
Wenn Sie mehrere ausgefallene Festplatten haben, aktualisieren Sie
|
|
alle ihre Konfigurationsoptionen.
|
|
|
|
STEP 2 -> Fix
|
|
Führen Sie den `fix`-Befehl aus und speichern Sie das Protokoll
|
|
in einer externen Datei mit:
|
|
|
|
:snapraid -d NAME -l fix.log fix
|
|
|
|
Wobei NAME der Name der Festplatte ist, wie z.B. `d1` in unserem
|
|
vorherigen Beispiel. Wenn die wiederherzustellende Festplatte eine
|
|
Paritätsfestplatte ist, verwenden Sie die Namen `parity`, `2-parity`,
|
|
usw. Wenn Sie mehrere ausgefallene Festplatten haben, verwenden Sie
|
|
mehrere -d-Optionen, um alle anzugeben.
|
|
|
|
Dieser Befehl wird lange dauern.
|
|
|
|
Stellen Sie sicher, dass Sie einige Gigabyte frei haben, um die
|
|
Datei fix.log zu speichern. Führen Sie ihn von einer Festplatte
|
|
mit ausreichend freiem Speicherplatz aus.
|
|
|
|
Jetzt haben Sie alles wiederhergestellt, was wiederherstellbar ist.
|
|
Wenn einige Dateien teilweise oder vollständig nicht wiederherstellbar
|
|
sind, werden sie umbenannt, indem die Erweiterung `.unrecoverable`
|
|
hinzugefügt wird.
|
|
|
|
Sie finden eine detaillierte Liste aller nicht wiederherstellbaren
|
|
Blöcke in der Datei fix.log, indem Sie alle Zeilen überprüfen,
|
|
die mit `unrecoverable:` beginnen.
|
|
|
|
Wenn Sie mit der Wiederherstellung nicht zufrieden sind, können Sie
|
|
sie so oft wie gewünscht wiederholen.
|
|
|
|
Wenn Sie zum Beispiel Dateien nach dem letzten `sync` aus dem Array
|
|
entfernt haben, kann dies dazu führen, dass einige Dateien nicht
|
|
wiederhergestellt werden. In diesem Fall können Sie den `fix`
|
|
mithilfe der Option -i, --import wiederholen, wobei Sie angeben,
|
|
wo sich diese Dateien jetzt befinden, um sie erneut in den
|
|
Wiederherstellungsprozess einzubeziehen.
|
|
|
|
Wenn Sie mit der Wiederherstellung zufrieden sind, können Sie
|
|
fortfahren, aber beachten Sie, dass Sie nach der Synchronisierung
|
|
den `fix`-Befehl nicht mehr wiederholen können!
|
|
|
|
STEP 3 -> Check
|
|
Als vorsichtige Überprüfung können Sie jetzt einen `check`-Befehl
|
|
ausführen, um sicherzustellen, dass auf der wiederhergestellten
|
|
Festplatte alles korrekt ist.
|
|
|
|
:snapraid -d NAME -a check
|
|
|
|
Wobei NAME der Name der Festplatte ist, wie z.B. `d1` in unserem
|
|
vorherigen Beispiel.
|
|
|
|
Die Optionen -d und -a weisen SnapRAID an, nur die angegebene
|
|
Festplatte zu überprüfen und alle Paritätsdaten zu ignorieren.
|
|
|
|
Dieser Befehl wird lange dauern, aber wenn Sie nicht übermäßig
|
|
vorsichtig sind, können Sie ihn überspringen.
|
|
|
|
STEP 4 -> Sync
|
|
Führen Sie den `sync`-Befehl aus, um das Array mit der neuen
|
|
Festplatte zu resynchronisieren.
|
|
|
|
:snapraid sync
|
|
|
|
Wenn alles wiederhergestellt ist, ist dieser Befehl sofort.
|
|
|
|
Befehle (Commands)
|
|
SnapRAID bietet ein paar einfache Befehle, mit denen Sie folgende Aktionen ausführen können:
|
|
|
|
* Den Status des Arrays ausgeben -> `status`
|
|
* Die Festplatten steuern -> `smart`, `probe`, `up`, `down`
|
|
* Einen Backup-/Wiederherstellungspunkt erstellen -> `sync`
|
|
* Daten regelmäßig überprüfen -> `scrub`
|
|
* Den letzten Backup-/Wiederherstellungspunkt wiederherstellen -> `fix`.
|
|
|
|
Befehle müssen in Kleinbuchstaben geschrieben werden.
|
|
|
|
status
|
|
Gibt eine Zusammenfassung des Zustands des Festplatten-Arrays aus.
|
|
|
|
Es enthält Informationen zur Paritätsfragmentierung, wie alt
|
|
die Blöcke sind, ohne Überprüfung, und alle aufgezeichneten
|
|
stillen Fehler, die beim Scrubbing aufgetreten sind.
|
|
|
|
Die präsentierten Informationen beziehen sich auf den letzten Zeitpunkt,
|
|
zu dem Sie `sync` ausgeführt haben. Spätere Änderungen werden
|
|
nicht berücksichtigt.
|
|
|
|
Wenn fehlerhafte Blöcke erkannt wurden, werden deren Blocknummern
|
|
aufgelistet. Um sie zu beheben, können Sie den Befehl `fix -e`
|
|
verwenden.
|
|
|
|
Es zeigt auch ein Diagramm an, das den letzten Zeitpunkt darstellt,
|
|
zu dem jeder Block gescrubbed oder synchronisiert wurde. Gescrubbte
|
|
Blöcke werden mit `*`, Blöcke, die synchronisiert, aber noch nicht
|
|
gescrubbed wurden, mit `o` angezeigt.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
smart
|
|
Gibt einen SMART-Bericht aller Festplatten im System aus.
|
|
|
|
Es enthält eine Schätzung der Ausfallwahrscheinlichkeit im nächsten
|
|
Jahr, sodass Sie den vorsorglichen Austausch von Festplatten planen können,
|
|
die verdächtige Attribute aufweisen.
|
|
|
|
Diese Wahrscheinlichkeitsschätzung wird durch Korrelation der SMART-Attribute
|
|
der Festplatten mit den Backblaze-Daten erhalten, die unter
|
|
folgender Adresse verfügbar sind:
|
|
|
|
:https://www.backblaze.com/hard-drive-test-data.html
|
|
|
|
Wenn SMART meldet, dass eine Festplatte ausfällt, wird `FAIL`
|
|
oder `PREFAIL` für diese Festplatte gedruckt, und SnapRAID
|
|
endet mit einem Fehler. In diesem Fall wird ein sofortiger
|
|
Austausch der Festplatte dringend empfohlen.
|
|
|
|
Weitere mögliche Statuszeichenfolgen sind:
|
|
logfail - In der Vergangenheit lagen einige Attribute unter
|
|
dem Schwellenwert.
|
|
logerr - Das Gerätefehlerprotokoll enthält Fehler.
|
|
selferr - Das Geräte-Selbsttestprotokoll enthält Fehler.
|
|
|
|
Wenn die Option -v, --verbose angegeben ist, wird eine tiefere
|
|
statistische Analyse bereitgestellt. Diese Analyse kann Ihnen bei
|
|
der Entscheidung helfen, ob Sie mehr oder weniger Parität benötigen.
|
|
|
|
Dieser Befehl verwendet das `smartctl`-Tool und entspricht dem
|
|
Ausführen von `smartctl -a` auf allen Geräten.
|
|
|
|
Wenn Ihre Geräte nicht korrekt automatisch erkannt werden, können Sie
|
|
einen benutzerdefinierten Befehl mithilfe der `smartctl`-Option
|
|
in der Konfigurationsdatei angeben.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
probe
|
|
Gibt den POWER-Zustand aller Festplatten im System aus.
|
|
|
|
`Standby` bedeutet, dass die Festplatte nicht dreht. `Active`
|
|
bedeutet, dass die Festplatte dreht.
|
|
|
|
Dieser Befehl verwendet das `smartctl`-Tool und entspricht dem
|
|
Ausführen von `smartctl -n standby -i` auf allen Geräten.
|
|
|
|
Wenn Ihre Geräte nicht korrekt automatisch erkannt werden, können Sie
|
|
einen benutzerdefinierten Befehl mithilfe der `smartctl`-Option
|
|
in der Konfigurationsdatei angeben.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
up
|
|
Dreht alle Festplatten des Arrays hoch (spins up).
|
|
|
|
Sie können nur bestimmte Festplatten mithilfe der Option -d, --filter-disk
|
|
hochdrehen.
|
|
|
|
Das gleichzeitige Hochdrehen aller Festplatten erfordert viel Strom.
|
|
Stellen Sie sicher, dass Ihr Netzteil dies aushalten kann.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
down
|
|
Dreht alle Festplatten des Arrays herunter (spins down).
|
|
|
|
Dieser Befehl verwendet das `smartctl`-Tool und entspricht dem
|
|
Ausführen von `smartctl -s standby,now` auf allen Geräten.
|
|
|
|
Sie können nur bestimmte Festplatten mithilfe der Option -d, --filter-disk
|
|
herunterdrehen.
|
|
|
|
Um automatisch bei einem Fehler herunterzufahren, können Sie die Option
|
|
-s, --spin-down-on-error mit jedem anderen Befehl verwenden, was dem
|
|
manuellen Ausführen von `down` bei Auftreten eines Fehlers
|
|
entspricht.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
diff
|
|
Listet alle Dateien auf, die seit dem letzten `sync` geändert wurden
|
|
und deren Paritätsdaten neu berechnet werden müssen.
|
|
|
|
Dieser Befehl überprüft nicht die Dateidaten, sondern nur den
|
|
Dateizeitstempel, die Größe und die Inode.
|
|
|
|
Nach dem Auflisten aller geänderten Dateien wird eine Zusammenfassung
|
|
der Änderungen präsentiert, gruppiert nach:
|
|
equal - Dateien, die sich seitdem nicht geändert haben.
|
|
added - Neu hinzugefügte Dateien, die vorher nicht vorhanden waren.
|
|
removed - Entfernte Dateien.
|
|
updated - Dateien mit einer anderen Größe oder einem anderen
|
|
Zeitstempel, was bedeutet, dass sie geändert wurden.
|
|
moved - Auf derselben Festplatte in ein anderes Verzeichnis
|
|
verschobene Dateien. Sie werden durch denselben Namen,
|
|
dieselbe Größe, denselben Zeitstempel und dieselbe Inode,
|
|
aber ein anderes Verzeichnis identifiziert.
|
|
copied - Dateien, die auf dieselbe oder eine andere Festplatte
|
|
kopiert wurden, wobei die Originaldatei noch vorhanden ist.
|
|
Sie werden dadurch identifiziert, dass sie denselben Namen,
|
|
dieselbe Größe und denselben Zeitstempel haben.
|
|
Wenn der Subsekunden-Zeitstempel Null ist, muss der vollständige
|
|
Pfad übereinstimmen, um identifiziert zu werden, nicht nur
|
|
der Name.
|
|
relocated - Dateien, die auf dieselbe oder eine andere Festplatte
|
|
verschoben wurden, wobei das Original verschwunden ist.
|
|
Sie werden dadurch identifiziert, dass sie denselben Namen,
|
|
dieselbe Größe und denselben Zeitstempel haben.
|
|
Wenn der Subsekunden-Zeitstempel Null ist, muss der vollständige
|
|
Pfad übereinstimmen, um identifiziert zu werden.
|
|
Im Gegensatz zu 'moved' Dateien auf derselben Festplatte haben
|
|
verschobene Dateien einen anderen Inode.
|
|
restored - Dateien mit einem anderen Inode, aber passendem
|
|
Verzeichnis, Namen, Größe und Zeitstempel.
|
|
Dies sind in der Regel Dateien, die nach dem Löschen
|
|
wiederhergestellt wurden.
|
|
|
|
Wenn ein `sync` erforderlich ist, ist der Rückgabecode des Prozesses 2
|
|
anstelle des Standardwerts 0. Der Rückgabecode 1 wird für eine
|
|
allgemeine Fehlerbedingung verwendet.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
sync
|
|
Aktualisiert die Paritätsinformationen. Alle geänderten Dateien
|
|
im Festplatten-Array werden gelesen, und die entsprechenden
|
|
Paritätsdaten werden aktualisiert.
|
|
|
|
Sie können diesen Vorgang jederzeit durch Drücken von Strg+C
|
|
anhalten, ohne die bereits geleistete Arbeit zu verlieren.
|
|
Beim nächsten Lauf wird der `sync`-Vorgang dort fortgesetzt,
|
|
wo er unterbrochen wurde.
|
|
|
|
Wenn während des Vorgangs stille oder Eingabe-/Ausgabefehler
|
|
gefunden werden, werden die entsprechenden Blöcke als fehlerhaft
|
|
markiert.
|
|
|
|
Dateien werden durch Pfad und/oder Inode identifiziert und anhand
|
|
von Größe und Zeitstempel überprüft.
|
|
Wenn die Dateigröße oder der Zeitstempel abweicht, werden die Paritätsdaten
|
|
für die gesamte Datei neu berechnet.
|
|
Wenn die Datei auf derselben Festplatte verschoben oder umbenannt
|
|
wird und dieselbe Inode beibehält, wird die Parität nicht neu
|
|
berechnet.
|
|
Wenn die Datei auf eine andere Festplatte verschoben wird, wird die
|
|
Parität neu berechnet, aber die zuvor berechneten Hash-Informationen
|
|
werden beibehalten.
|
|
|
|
Die `content`- und `parity`-Dateien werden bei Bedarf geändert.
|
|
Die Dateien im Array werden NICHT geändert.
|
|
|
|
scrub
|
|
Scrubbt das Array und überprüft auf stille oder Eingabe-/Ausgabefehler
|
|
auf Daten- und Paritätsfestplatten.
|
|
|
|
Jede Ausführung überprüft ungefähr 8% des Arrays, ausgenommen Daten,
|
|
die bereits in den letzten 10 Tagen gescrubbed wurden.
|
|
Dies bedeutet, dass Scrubbing einmal pro Woche sicherstellt, dass
|
|
jedes Bit an Daten mindestens einmal alle drei Monate überprüft wird.
|
|
|
|
Sie können einen anderen Scrub-Plan oder eine andere Menge mithilfe
|
|
der Option -p, --plan definieren, die Folgendes akzeptiert:
|
|
bad - Scrubbt als fehlerhaft markierte Blöcke.
|
|
new - Scrubbt gerade synchronisierte Blöcke, die noch nicht gescrubbed
|
|
wurden.
|
|
full - Scrubbt alles.
|
|
0-100 - Scrubbt den angegebenen Prozentsatz der Blöcke.
|
|
|
|
Wenn Sie einen Prozentsatz angeben, können Sie auch die Option
|
|
-o, --older-than verwenden, um festzulegen, wie alt der Block sein
|
|
soll. Die ältesten Blöcke werden zuerst gescrubbed, um eine optimale
|
|
Überprüfung zu gewährleisten. Wenn Sie nur die gerade synchronisierten
|
|
Blöcke scrubben möchten, die noch nicht gescrubbed wurden,
|
|
verwenden Sie die Option `-p new`.
|
|
|
|
Um Details zum Scrub-Status zu erhalten, verwenden Sie den Befehl
|
|
`status`.
|
|
|
|
Für jeden gefundenen stillen oder Eingabe-/Ausgabefehler werden die
|
|
entsprechenden Blöcke in der `content`-Datei als fehlerhaft (bad)
|
|
markiert. Diese fehlerhaften Blöcke werden in `status` aufgelistet
|
|
und können mit `fix -e` behoben werden. Nach der Behebung werden
|
|
sie beim nächsten Scrub erneut überprüft, und wenn sie als korrigiert
|
|
befunden werden, wird die fehlerhafte Markierung entfernt.
|
|
Um nur die fehlerhaften Blöcke zu scrubben, können Sie den Befehl
|
|
`scrub -p bad` verwenden.
|
|
|
|
Es wird empfohlen, `scrub` nur auf einem synchronisierten Array
|
|
auszuführen, um gemeldete Fehler zu vermeiden, die durch nicht
|
|
synchronisierte Daten verursacht werden. Diese Fehler werden als
|
|
keine stillen Fehler erkannt, und die Blöcke werden nicht als fehlerhaft
|
|
markiert, aber solche Fehler werden in der Ausgabe des Befehls
|
|
gemeldet.
|
|
|
|
Die `content`-Datei wird geändert, um die Zeit der letzten
|
|
Überprüfung für jeden Block zu aktualisieren und fehlerhafte
|
|
Blöcke zu markieren.
|
|
Die `parity`-Dateien werden NICHT geändert.
|
|
Die Dateien im Array werden NICHT geändert.
|
|
|
|
fix
|
|
Repariert alle Dateien und die Paritätsdaten.
|
|
|
|
Alle Dateien und Paritätsdaten werden mit dem im letzten `sync`
|
|
gespeicherten Zustand verglichen. Wenn ein Unterschied gefunden
|
|
wird, wird er auf den gespeicherten Zustand zurückgesetzt.
|
|
|
|
WARNUNG!
|
|
Der Befehl `fix` unterscheidet nicht zwischen Fehlern und
|
|
beabsichtigten Änderungen. Er setzt den Dateizustand bedingungslos
|
|
auf den letzten `sync` zurück.
|
|
|
|
Wenn keine andere Option angegeben ist, wird das gesamte Array verarbeitet.
|
|
Verwenden Sie die Filteroptionen, um eine Teilmenge von Dateien
|
|
oder Festplatten für die Operation auszuwählen.
|
|
|
|
Um nur die Blöcke zu beheben, die während `sync` und `scrub` als
|
|
fehlerhaft markiert wurden, verwenden Sie die Option -e, --filter-error.
|
|
Im Gegensatz zu anderen Filteroptionen wendet diese Behebungen nur
|
|
auf Dateien an, die seit dem letzten `sync` unverändert sind.
|
|
|
|
SnapRAID benennt alle Dateien, die nicht behoben werden können,
|
|
durch Hinzufügen der Erweiterung `.unrecoverable` um.
|
|
|
|
Vor dem Beheben wird das gesamte Array gescannt, um alle Dateien
|
|
zu finden, die seit der letzten `sync`-Operation verschoben wurden.
|
|
Diese Dateien werden anhand ihres Zeitstempels identifiziert, wobei
|
|
Name und Verzeichnis ignoriert werden, und werden bei Bedarf im
|
|
Wiederherstellungsprozess verwendet. Wenn Sie einige davon außerhalb
|
|
des Arrays verschoben haben, können Sie die Option -i, --import
|
|
verwenden, um zusätzliche Verzeichnisse zum Scannen anzugeben.
|
|
|
|
Dateien werden nur anhand des Pfads identifiziert, nicht anhand
|
|
der Inode.
|
|
|
|
Die `content`-Datei wird NICHT geändert.
|
|
Die `parity`-Dateien werden bei Bedarf geändert.
|
|
Die Dateien im Array werden bei Bedarf geändert.
|
|
|
|
check
|
|
Überprüft alle Dateien und die Paritätsdaten.
|
|
|
|
Es funktioniert wie `fix`, simuliert jedoch nur eine Wiederherstellung,
|
|
und es werden keine Änderungen in das Array geschrieben.
|
|
|
|
Dieser Befehl ist primär für manuelle Überprüfung gedacht, wie z.B.
|
|
nach einem Wiederherstellungsprozess oder unter anderen speziellen
|
|
Bedingungen. Für regelmäßige und geplante Überprüfungen verwenden
|
|
Sie `scrub`.
|
|
|
|
Wenn Sie die Option -a, --audit-only verwenden, wird nur der Hash
|
|
der Dateien überprüft, und die Paritätsdaten werden für einen
|
|
schnelleren Lauf ignoriert.
|
|
|
|
Dateien werden nur anhand des Pfads identifiziert, nicht anhand
|
|
der Inode.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
list
|
|
Listet alle Dateien auf, die sich zum Zeitpunkt des letzten `sync`
|
|
im Array befanden.
|
|
|
|
Mit -v oder --verbose wird auch die Untersekundenzeit angezeigt.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
dup
|
|
Listet alle doppelten Dateien auf. Zwei Dateien gelten als gleich,
|
|
wenn ihre Hashes übereinstimmen. Die Dateidaten werden nicht gelesen;
|
|
es werden nur die vorab berechneten Hashes verwendet.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
pool
|
|
Erstellt oder aktualisiert eine virtuelle Ansicht aller
|
|
Dateien in Ihrem Festplatten-Array im `pooling`-Verzeichnis.
|
|
|
|
Die Dateien werden nicht kopiert, sondern mithilfe symbolischer
|
|
Links verknüpft.
|
|
|
|
Beim Aktualisieren werden alle vorhandenen symbolischen Links und
|
|
leeren Unterverzeichnisse gelöscht und durch die neue Ansicht des
|
|
Arrays ersetzt. Alle anderen regulären Dateien bleiben erhalten.
|
|
|
|
Außerhalb des Pool-Verzeichnisses wird nichts geändert.
|
|
|
|
devices
|
|
Gibt die Low-Level-Geräte aus, die vom Array verwendet werden.
|
|
|
|
Dieser Befehl zeigt die Gerätezuordnungen im Array an und ist
|
|
hauptsächlich als Skriptschnittstelle gedacht.
|
|
|
|
Die ersten beiden Spalten sind die Low-Level-Geräte-ID und der Pfad.
|
|
Die nächsten beiden Spalten sind die High-Level-Geräte-ID und der Pfad.
|
|
Die letzte Spalte ist der Festplattenname im Array.
|
|
|
|
In den meisten Fällen haben Sie ein Low-Level-Gerät für jede
|
|
Festplatte im Array, aber in einigen komplexeren Konfigurationen
|
|
können mehrere Low-Level-Geräte von einer einzigen Festplatte
|
|
im Array verwendet werden.
|
|
|
|
Es wird nichts geändert.
|
|
|
|
touch
|
|
Setzt einen beliebigen Untersekunden-Zeitstempel für alle Dateien,
|
|
deren Untersekunden-Zeitstempel auf Null gesetzt ist.
|
|
|
|
Dies verbessert die Fähigkeit von SnapRAID, verschobene und
|
|
kopierte Dateien zu erkennen, da es den Zeitstempel fast
|
|
eindeutig macht und mögliche Duplikate reduziert.
|
|
|
|
Genauer gesagt, wenn der Untersekunden-Zeitstempel nicht Null ist,
|
|
wird eine verschobene oder kopierte Datei als solche identifiziert,
|
|
wenn sie mit Name, Größe und Zeitstempel übereinstimmt. Wenn der
|
|
Untersekunden-Zeitstempel Null ist, wird sie nur als Kopie betrachtet,
|
|
wenn der vollständige Pfad, die Größe und der Zeitstempel alle
|
|
übereinstimmen.
|
|
|
|
Der Zeitstempel mit Sekundenpräzision wird nicht geändert,
|
|
sodass alle Daten und Zeiten Ihrer Dateien erhalten bleiben.
|
|
|
|
rehash
|
|
Plant eine Neu-Hash-Berechnung (rehash) des gesamten Arrays.
|
|
|
|
Dieser Befehl ändert die verwendete Hash-Art, typischerweise beim
|
|
Upgrade von einem 32-Bit-System auf ein 64-Bit-System, um von
|
|
MurmurHash3 auf den schnelleren SpookyHash umzuschalten.
|
|
|
|
Wenn Sie bereits den optimalen Hash verwenden, tut dieser Befehl
|
|
nichts und informiert Sie darüber, dass keine Aktion erforderlich ist.
|
|
|
|
Die Neu-Hash-Berechnung wird nicht sofort durchgeführt, sondern
|
|
findet schrittweise während `sync` und `scrub` statt.
|
|
|
|
Sie können den Neu-Hash-Zustand mithilfe von `status` überprüfen.
|
|
|
|
Während der Neu-Hash-Berechnung behält SnapRAID die volle
|
|
Funktionalität bei, mit der einzigen Ausnahme, dass `dup` keine
|
|
doppelten Dateien mit einem anderen Hash erkennen kann.
|
|
|
|
locate
|
|
Lokalisiert Dateien, die auf den Paritätsfestplatten gespeichert sind. Für jede
|
|
übereinstimmende Datei wird deren Position innerhalb der Paritätsdatei und die Anzahl
|
|
der belegten Fragmente ausgegeben.
|
|
|
|
Sie können die Option -t, --tail verwenden, um den Vorgang auf Dateien zu beschränken,
|
|
die den angegebenen Endbereich (Tail) der Parität belegen.
|
|
|
|
Wenn Sie diese Dateien neu zuweisen möchten, können Sie die Option
|
|
-W, --force-realloc-tail verwenden.
|
|
Beachten Sie, dass solche Dateien während des Neuzuweisungsprozesses
|
|
nicht durch die Parität geschützt sind.
|
|
|
|
Optionen (Options)
|
|
SnapRAID bietet die folgenden Optionen:
|
|
|
|
-c, --conf CONFIG
|
|
Wählt die zu verwendende Konfigurationsdatei aus. Wenn nicht
|
|
angegeben, wird unter Unix die Datei `/usr/local/etc/snapraid.conf`
|
|
verwendet, falls sie existiert, andernfalls `/etc/snapraid.conf`.
|
|
Unter Windows wird die Datei `snapraid.conf` im selben
|
|
Verzeichnis wie `snapraid.exe` verwendet.
|
|
|
|
-f, --filter PATTERN
|
|
Filtert die zu verarbeitenden Dateien in `check` und `fix`.
|
|
Nur die Dateien, die dem angegebenen Muster entsprechen, werden
|
|
verarbeitet. Diese Option kann mehrmals verwendet werden.
|
|
Weitere Details zu Musterspezifikationen finden Sie im
|
|
Abschnitt PATTERN. Unter Unix stellen Sie sicher, dass Globbing-Zeichen
|
|
in Anführungszeichen gesetzt werden, wenn sie verwendet werden.
|
|
Diese Option kann nur mit `check` und `fix` verwendet werden.
|
|
Sie kann nicht mit `sync` und `scrub` verwendet werden, da
|
|
diese immer das gesamte Array verarbeiten.
|
|
|
|
-d, --filter-disk NAME
|
|
Filtert die zu verarbeitenden Festplatten in `check`, `fix`, `up`
|
|
und `down`. Sie müssen einen Festplattennamen angeben, wie
|
|
in der Konfigurationsdatei definiert. Sie können auch Paritätsfestplatten
|
|
mit den Namen `parity`, `2-parity`, `3-parity`, usw. angeben,
|
|
um Vorgänge auf eine bestimmte Paritätsfestplatte zu beschränken.
|
|
Wenn Sie mehrere --filter, --filter-disk und --filter-missing
|
|
Optionen kombinieren, werden nur Dateien ausgewählt, die allen
|
|
Filtern entsprechen. Diese Option kann mehrmals verwendet werden.
|
|
Diese Option kann nur mit `check`, `fix`, `up` und `down` verwendet
|
|
werden. Sie kann nicht mit `sync` und `scrub` verwendet werden,
|
|
da diese immer das gesamte Array verarbeiten.
|
|
|
|
-m, --filter-missing
|
|
Filtert die zu verarbeitenden Dateien in `check` und `fix`.
|
|
Nur die Dateien, die im Array fehlen oder gelöscht wurden, werden
|
|
verarbeitet. Bei Verwendung mit `fix` fungiert dies als
|
|
`undelete`-Befehl (Wiederherstellung von Gelöschtem).
|
|
Wenn Sie mehrere --filter, --filter-disk und --filter-missing
|
|
Optionen kombinieren, werden nur Dateien ausgewählt, die allen
|
|
Filtern entsprechen. Diese Option kann nur mit `check` und `fix`
|
|
verwendet werden. Sie kann nicht mit `sync` und `scrub`
|
|
verwendet werden, da diese immer das gesamte Array verarbeiten.
|
|
|
|
-e, --filter-error
|
|
Verarbeitet die Dateien mit Fehlern in `check` und `fix`.
|
|
Es verarbeitet nur Dateien, deren Blöcke während `sync`
|
|
und `scrub` als mit stillen oder Eingabe-/Ausgabefehlern
|
|
markiert wurden, wie in `status` aufgelistet.
|
|
Diese Option kann nur mit `check` und `fix` verwendet werden.
|
|
|
|
-p, --plan PERC|bad|new|full
|
|
Wählt den Scrub-Plan aus. Wenn PERC ein numerischer Wert
|
|
von 0 bis 100 ist, wird er als Prozentsatz der zu scrubbenden
|
|
Blöcke interpretiert. Anstelle eines Prozentsatzes können Sie
|
|
einen Plan angeben: `bad` scrubbt fehlerhafte Blöcke,
|
|
`new` scrubbt Blöcke, die noch nicht gescrubbed wurden,
|
|
und `full` scrubbt alles.
|
|
Diese Option kann nur mit `scrub` verwendet werden.
|
|
|
|
-o, --older-than DAYS
|
|
Wählt den ältesten Teil des Arrays aus, der in `scrub`
|
|
verarbeitet werden soll. DAYS ist das Mindestalter in Tagen,
|
|
damit ein Block gescrubbed werden kann; der Standardwert
|
|
ist 10. Blöcke, die als fehlerhaft markiert sind, werden
|
|
immer gescrubbed, unabhängig von dieser Option.
|
|
Diese Option kann nur mit `scrub` verwendet werden.
|
|
|
|
-a, --audit-only
|
|
Überprüft in `check` den Hash der Dateien, ohne die Paritätsdaten
|
|
zu überprüfen. Wenn Sie nur an der Überprüfung der Dateidaten
|
|
interessiert sind, kann diese Option den Überprüfungsprozess
|
|
erheblich beschleunigen.
|
|
Diese Option kann nur mit `check` verwendet werden.
|
|
|
|
-h, --pre-hash
|
|
Führt in `sync` eine vorläufige Hash-Phase aller neuen Daten
|
|
zur zusätzlichen Überprüfung vor der Paritätsberechnung durch.
|
|
Normalerweise wird in `sync` keine vorläufige Hash-Berechnung
|
|
durchgeführt, und die neuen Daten werden unmittelbar vor der
|
|
Paritätsberechnung gehasht, wenn sie zum ersten Mal gelesen werden.
|
|
Dieser Vorgang tritt auf, wenn das System unter starker Last
|
|
steht, wobei alle Festplatten drehen und eine ausgelastete CPU
|
|
vorliegt. Dies ist ein Extremzustand für die Maschine, und wenn
|
|
sie ein latentes Hardwareproblem hat, können stille Fehler
|
|
unentdeckt bleiben, da die Daten noch nicht gehasht sind.
|
|
Um dieses Risiko zu vermeiden, können Sie den `pre-hash`-Modus
|
|
aktivieren, um alle Daten zweimal lesen zu lassen und so ihre
|
|
Integrität sicherzustellen. Diese Option überprüft auch im Array
|
|
verschobene Dateien, um sicherzustellen, dass die Verschiebeoperation
|
|
erfolgreich war, und ermöglicht es Ihnen, bei Bedarf eine
|
|
`fix`-Operation durchzuführen, bevor Sie fortfahren.
|
|
Diese Option kann nur mit `sync` verwendet werden.
|
|
|
|
-i, --import DIR
|
|
Importiert aus dem angegebenen Verzeichnis alle Dateien, die
|
|
nach dem letzten `sync` aus dem Array gelöscht wurden.
|
|
Wenn Sie solche Dateien noch haben, können sie von `check` und
|
|
`fix` verwendet werden, um den Wiederherstellungsprozess zu
|
|
verbessern. Die Dateien werden gelesen, auch in Unterverzeichnissen,
|
|
und unabhängig von ihrem Namen identifiziert.
|
|
Diese Option kann nur mit `check` und `fix` verwendet werden.
|
|
|
|
-s, --spin-down-on-error
|
|
Dreht bei jedem Fehler alle verwalteten Festplatten herunter,
|
|
bevor mit einem von Null verschiedenen Statuscode beendet wird.
|
|
Dies verhindert, dass die Laufwerke nach einem abgebrochenen
|
|
Vorgang aktiv bleiben und drehen, was unnötige Hitzeentwicklung
|
|
und Stromverbrauch vermeiden hilft. Verwenden Sie diese Option,
|
|
um sicherzustellen, dass die Festplatten auch bei einem
|
|
Befehlsfehler sicher gestoppt werden.
|
|
|
|
-w, --bw-limit RATE
|
|
Wendet eine globale Bandbreitenbegrenzung für alle Festplatten
|
|
an. RATE ist die Anzahl der Bytes pro Sekunde. Sie können
|
|
einen Multiplikator wie K, M, G oder T angeben (z.B. --bw-limit 1G).
|
|
|
|
-t, --tail SIZE
|
|
Beschränkt die Dateiliste auf diejenigen, die nicht mehr als die
|
|
angegebene Tail-Größe der Paritätsfestplatten belegen.
|
|
Sie können Multiplikatoren wie K, M, G oder T verwenden (z. B. --tail 1G).
|
|
Diese Option ist nur in Verbindung mit dem Befehl
|
|
`locate` gültig.
|
|
|
|
-A, --stats
|
|
Aktiviert eine erweiterte Statusansicht, die zusätzliche
|
|
Informationen anzeigt. Der Bildschirm zeigt zwei Diagramme an:
|
|
Das erste Diagramm zeigt die Anzahl der gepufferten Stripes für jede
|
|
Festplatte sowie den Dateipfad der Datei, auf die derzeit auf dieser
|
|
Festplatte zugegriffen wird. Typischerweise hat die langsamste Festplatte
|
|
keinen verfügbaren Puffer, was die maximal erreichbare Bandbreite bestimmt.
|
|
Das zweite Diagramm zeigt den Prozentsatz der Wartezeit über die
|
|
letzten 100 Sekunden. Es wird erwartet, dass die langsamste Festplatte
|
|
die meiste Wartezeit verursacht, während andere Festplatten wenig
|
|
oder keine Wartezeit haben sollten, da sie ihre gepufferten Stripes
|
|
verwenden können. Dieses Diagramm zeigt auch die Zeit an, die
|
|
mit Warten auf Hash-Berechnungen und RAID-Berechnungen verbracht
|
|
wurde. Alle Berechnungen laufen parallel zu den Festplattenoperationen.
|
|
Solange für mindestens eine Festplatte eine messbare Wartezeit
|
|
vorhanden ist, deutet dies daher darauf hin, dass die CPU schnell
|
|
genug ist, um mit der Arbeitslast Schritt zu halten.
|
|
|
|
-Z, --force-zero
|
|
Erzwingt den unsicheren Vorgang der Synchronisierung einer Datei
|
|
mit Nullgröße, die zuvor nicht Null war. Wenn SnapRAID eine
|
|
solche Bedingung erkennt, stoppt es den Vorgang, es sei denn,
|
|
Sie geben diese Option an. Dies ermöglicht es Ihnen, leicht zu
|
|
erkennen, wann nach einem Systemabsturz einige Dateien, auf die zugegriffen wurde,
|
|
abgeschnitten (truncated) wurden. Dies ist eine mögliche Bedingung
|
|
unter Linux mit den ext3/ext4-Dateisystemen.
|
|
Diese Option kann nur mit `sync` verwendet werden.
|
|
|
|
-E, --force-empty
|
|
Erzwingt den unsicheren Vorgang der Synchronisierung einer
|
|
Festplatte, bei der alle ursprünglichen Dateien fehlen.
|
|
Wenn SnapRAID erkennt, dass alle ursprünglich auf der Festplatte
|
|
vorhandenen Dateien fehlen oder überschrieben wurden, stoppt es
|
|
den Vorgang, es sei denn, Sie geben diese Option an.
|
|
Dies ermöglicht es Ihnen, leicht zu erkennen, wann ein Daten-Dateisystem
|
|
nicht gemountet (eingehängt) ist.
|
|
Diese Option kann nur mit `sync` verwendet werden.
|
|
|
|
-U, --force-uuid
|
|
Erzwingt den unsicheren Vorgang der Synchronisierung, Überprüfung
|
|
und Behebung mit Festplatten, deren UUID geändert wurde.
|
|
Wenn SnapRAID erkennt, dass einige Festplatten ihre UUID
|
|
geändert haben, stoppt es den Vorgang, es sei denn, Sie geben
|
|
diese Option an. Dies ermöglicht es Ihnen, zu erkennen, wann
|
|
Ihre Festplatten an den falschen Einhängepunkten gemountet sind.
|
|
Es ist jedoch erlaubt, eine einzelne UUID-Änderung mit einfacher
|
|
Parität zu haben und mehr mit mehrfacher Parität, da dies
|
|
der normale Fall beim Austausch von Festplatten nach einer
|
|
Wiederherstellung ist.
|
|
Diese Option kann nur mit `sync`, `check` oder `fix` verwendet
|
|
werden.
|
|
|
|
-D, --force-device
|
|
Erzwingt den unsicheren Vorgang der Behebung mit unzugänglichen
|
|
Festplatten oder mit Festplatten auf demselben physischen Gerät.
|
|
Wenn Sie beispielsweise zwei Datenfestplatten verloren haben und
|
|
eine Ersatzfestplatte haben, um nur die erste wiederherzustellen,
|
|
können Sie die zweite unzugängliche Festplatte ignorieren.
|
|
Oder wenn Sie eine Festplatte auf dem auf einer bereits
|
|
verwendeten Festplatte verbleibenden freien Speicherplatz
|
|
wiederherstellen möchten, wobei sie dasselbe physische Gerät
|
|
gemeinsam nutzen.
|
|
Diese Option kann nur mit `fix` verwendet werden.
|
|
|
|
-N, --force-nocopy
|
|
Deaktiviert in `sync`, `check` und `fix` die Kopiererkennungsheuristik.
|
|
Ohne diese Option geht SnapRAID davon aus, dass Dateien mit den
|
|
gleichen Attributen, wie Name, Größe und Zeitstempel, Kopien mit
|
|
denselben Daten sind. Dies ermöglicht die Identifizierung von
|
|
kopierten oder von einer Festplatte auf eine andere verschobenen
|
|
Dateien und die Wiederverwendung der bereits berechneten Hash-Informationen,
|
|
um stille Fehler zu erkennen oder fehlende Dateien wiederherzustellen.
|
|
In einigen seltenen Fällen kann dieses Verhalten zu falsch positiven
|
|
Ergebnissen oder einem langsamen Vorgang aufgrund vieler Hash-Überprüfungen
|
|
führen, und diese Option ermöglicht es Ihnen, solche Probleme
|
|
zu beheben.
|
|
Diese Option kann nur mit `sync`, `check` und `fix` verwendet
|
|
werden.
|
|
|
|
-F, --force-full
|
|
Erzwingt in `sync` eine vollständige Neuberechnung der Parität.
|
|
Diese Option kann verwendet werden, wenn Sie eine neue Paritätsstufe
|
|
hinzufügen oder wenn Sie zu einer alten Content-Datei mit
|
|
neueren Paritätsdaten zurückgekehrt sind. Anstatt die Parität
|
|
von Grund auf neu zu erstellen, ermöglicht dies die Wiederverwendung
|
|
der in der Content-Datei vorhandenen Hashes zur Validierung
|
|
von Daten und zur Aufrechterhaltung des Datenschutzes während
|
|
des `sync`-Vorgangs unter Verwendung der vorhandenen Paritätsdaten.
|
|
Diese Option kann nur mit `sync` verwendet werden.
|
|
|
|
-R, --force-realloc
|
|
Erzwingt in `sync` eine vollständige Neuallokation von Dateien
|
|
und eine Wiederherstellung der Parität.
|
|
Diese Option kann verwendet werden, um alle Dateien vollständig
|
|
neu zuzuweisen und die Fragmentierung zu entfernen, während
|
|
die in der Content-Datei vorhandenen Hashes zur Validierung
|
|
von Daten wiederverwendet werden.
|
|
Diese Option kann nur mit `sync` verwendet werden.
|
|
WARNUNG! Diese Option ist nur für Experten gedacht, und es wird
|
|
dringend empfohlen, sie nicht zu verwenden.
|
|
Sie haben während der `sync`-Operation KEINEN Datenschutz.
|
|
|
|
-W, --force-realloc-tail SIZE
|
|
Funktioniert wie -R, --force-realloc, ist jedoch auf den angegebenen
|
|
Endbereich (die letzten SIZE Bytes) jeder Paritätsdatei beschränkt.
|
|
Erzwingt die Neuzuweisung (Verschiebung) aller Dateifragmente/-blöcke, die
|
|
derzeit in diesem Endabschnitt gespeichert sind, sodass sie an beliebiger Stelle
|
|
in den Paritätsdateien platziert werden können, wo freier Speicherplatz
|
|
verfügbar ist (einschließlich vorhandener Lücken).
|
|
Der Hauptzweck dieser Option besteht darin, die Größe der Paritätsdatei
|
|
auf der Festplatte zu verringern.
|
|
Wenn die Neuzuweisung den gesamten Endabschnitt erfolgreich leert
|
|
(keine Blöcke verbleiben dort), wird die Paritätsdatei gekürzt,
|
|
wodurch der ungenutzte Endbereich freigegeben wird.
|
|
Sie können Multiplikatoren wie K, M, G oder T verwenden (z. B.
|
|
--force-realloc-tail 1G).
|
|
Sie können locate -t, --tail verwenden, um die betroffenen Dateien
|
|
im Voraus zu ermitteln.
|
|
WARNUNG!
|
|
Diese Option ist nur für Experten gedacht und es wird dringend
|
|
empfohlen, sie nicht zu verwenden.
|
|
Während des `sync`-Vorgangs besteht für die betroffenen Dateien
|
|
KEIN Datenschutz.
|
|
|
|
-l, --log FILE
|
|
Schreibt ein detailliertes Protokoll in die angegebene Datei.
|
|
Wenn diese Option nicht angegeben ist, werden unerwartete Fehler
|
|
auf dem Bildschirm ausgegeben, was bei vielen Fehlern möglicherweise
|
|
zu einer übermäßigen Ausgabe führt. Wenn -l, --log angegeben
|
|
ist, werden nur schwerwiegende Fehler, die SnapRAID zum Stoppen
|
|
bringen, auf dem Bildschirm ausgegeben.
|
|
Wenn der Pfad mit `>>` beginnt, wird die Datei im Anhängemodus
|
|
(append mode) geöffnet. Vorkommen von `%D` und `%T` im Namen
|
|
werden durch Datum und Uhrzeit im Format YYYYMMDD bzw. HHMMSS
|
|
ersetzt. In Windows-Batch-Dateien müssen Sie das `%`-Zeichen
|
|
verdoppeln, z.B. result-%%D.log. Um `>>` zu verwenden, müssen
|
|
Sie den Namen in Anführungszeichen setzen, z.B. `">>result.log"`.
|
|
Um das Protokoll an die Standardausgabe oder den Standardfehler
|
|
auszugeben, können Sie `">&1"` bzw. `">&2"` verwenden.
|
|
Beschreibungen der Protokoll-Tags finden Sie in der Datei
|
|
snapraid_log.txt oder in der Manpage.
|
|
|
|
-L, --error-limit NUMBER
|
|
Legt ein neues Fehlerlimit fest, bevor die Ausführung gestoppt
|
|
wird. Standardmäßig stoppt SnapRAID, wenn es mehr als 100
|
|
Eingabe-/Ausgabefehler feststellt, was darauf hindeutet, dass
|
|
eine Festplatte wahrscheinlich ausfällt. Diese Option wirkt sich
|
|
auf `sync` und `scrub` aus, denen es gestattet ist, nach dem
|
|
ersten Satz von Festplattenfehlern fortzufahren, um ihre Vorgänge
|
|
abzuschließen. `check` und `fix` stoppen jedoch immer beim
|
|
ersten Fehler.
|
|
|
|
-S, --start BLKSTART
|
|
Startet die Verarbeitung ab der angegebenen Blocknummer.
|
|
Dies kann nützlich sein, um die Überprüfung oder Behebung
|
|
spezifischer Blöcke im Falle einer beschädigten Festplatte
|
|
zu wiederholen. Diese Option ist hauptsächlich für die erweiterte
|
|
manuelle Wiederherstellung gedacht und wird nur von `check`
|
|
und `fix` unterstützt.
|
|
|
|
-B, --count BLKCOUNT
|
|
Verarbeitet nur die angegebene Anzahl von Blöcken.
|
|
Diese Option ist hauptsächlich für die erweiterte manuelle
|
|
Wiederherstellung gedacht und wird nur von `check` und `fix`
|
|
unterstützt.
|
|
|
|
-C, --gen-conf CONTENT
|
|
Generiert eine Dummy-Konfigurationsdatei aus einer bestehenden
|
|
Content-Datei. Die Konfigurationsdatei wird in die Standardausgabe
|
|
geschrieben und überschreibt keine vorhandene.
|
|
Diese Konfigurationsdatei enthält auch die Informationen,
|
|
die zur Rekonstruktion der Festplatten-Einhängepunkte erforderlich
|
|
sind, falls Sie das gesamte System verlieren.
|
|
|
|
-v, --verbose
|
|
Gibt mehr Informationen auf dem Bildschirm aus.
|
|
Wenn einmal angegeben, werden ausgeschlossene Dateien
|
|
und zusätzliche Statistiken gedruckt.
|
|
Diese Option hat keine Auswirkung auf die Protokolldateien.
|
|
|
|
-q, --quiet
|
|
Gibt weniger Informationen auf dem Bildschirm aus.
|
|
Wenn einmal angegeben, wird die Fortschrittsleiste entfernt;
|
|
zweimal, die laufenden Operationen; dreimal, die Info-Meldungen;
|
|
viermal, die Statusmeldungen.
|
|
Schwerwiegende Fehler werden immer auf dem Bildschirm ausgegeben.
|
|
Diese Option hat keine Auswirkung auf die Protokolldateien.
|
|
|
|
-H, --help
|
|
Gibt eine kurze Hilfeanzeige aus.
|
|
|
|
-V, --version
|
|
Gibt die Programmversion aus.
|
|
|
|
Konfiguration (Configuration)
|
|
SnapRAID benötigt eine Konfigurationsdatei, um zu wissen, wo sich
|
|
Ihr Festplatten-Array befindet und wo die Paritätsinformationen
|
|
gespeichert werden sollen.
|
|
|
|
Unter Unix wird die Datei `/usr/local/etc/snapraid.conf` verwendet,
|
|
falls sie existiert, andernfalls `/etc/snapraid.conf`.
|
|
Unter Windows wird die Datei `snapraid.conf` im selben
|
|
Verzeichnis wie `snapraid.exe` verwendet.
|
|
|
|
Sie muss die folgenden Optionen (Groß- und Kleinschreibung beachten)
|
|
enthalten:
|
|
|
|
parity FILE [,FILE] ...
|
|
Definiert die Dateien, die zum Speichern der Paritätsinformationen verwendet werden.
|
|
Die Parität ermöglicht den Schutz vor einem einzelnen Festplattenausfall, ähnlich wie bei RAID5.
|
|
|
|
Sie können mehrere Dateien angeben, die sich auf unterschiedlichen
|
|
Festplatten befinden müssen. Wenn eine Datei nicht mehr wachsen
|
|
kann, wird die nächste verwendet. Der gesamte verfügbare Platz
|
|
muss mindestens so groß sein wie die größte Datenfestplatte im
|
|
Array.
|
|
|
|
Sie können später zusätzliche Paritätsdateien hinzufügen, aber Sie
|
|
können sie nicht neu anordnen oder entfernen.
|
|
|
|
Das Reservieren der Paritätsfestplatten für Parität stellt sicher,
|
|
dass sie nicht fragmentiert werden, was die Leistung verbessert.
|
|
|
|
Unter Windows werden 256 MB auf jeder Festplatte ungenutzt gelassen,
|
|
um die Warnung vor vollen Festplatten zu vermeiden.
|
|
|
|
Diese Option ist obligatorisch und kann nur einmal verwendet werden.
|
|
|
|
(2,3,4,5,6)-parity FILE [,FILE] ...
|
|
Definiert die Dateien, die zum Speichern zusätzlicher Paritätsinformationen verwendet werden.
|
|
|
|
Für jede angegebene Paritätsstufe wird eine zusätzliche Schutzstufe
|
|
aktiviert:
|
|
|
|
* 2-parity aktiviert RAID6 Dual-Parität.
|
|
* 3-parity aktiviert Triple-Parität.
|
|
* 4-parity aktiviert Quad- (vierfache) Parität.
|
|
* 5-parity aktiviert Penta- (fünffache) Parität.
|
|
* 6-parity aktiviert Hexa- (sechsfache) Parität.
|
|
|
|
Jede Paritätsstufe erfordert die Anwesenheit aller vorherigen
|
|
Paritätsstufen.
|
|
|
|
Die gleichen Überlegungen wie bei der Option `parity` gelten.
|
|
|
|
Diese Optionen sind optional und können nur einmal verwendet werden.
|
|
|
|
z-parity FILE [,FILE] ...
|
|
Definiert eine alternative Datei und ein alternatives Format zum
|
|
Speichern von Triple-Parität.
|
|
|
|
Diese Option ist eine Alternative zu `3-parity`, die primär für
|
|
Low-End-CPUs wie ARM oder AMD Phenom, Athlon und Opteron gedacht
|
|
ist, die den SSSE3-Befehlssatz nicht unterstützen. In solchen Fällen
|
|
bietet sie eine bessere Leistung.
|
|
|
|
Dieses Format ähnelt dem von ZFS RAIDZ3, ist aber schneller.
|
|
Wie ZFS funktioniert es nicht jenseits der Triple-Parität.
|
|
|
|
Bei Verwendung von `3-parity` werden Sie gewarnt, wenn das
|
|
`z-parity`-Format zur Leistungsverbesserung empfohlen wird.
|
|
|
|
Es ist möglich, von einem Format in ein anderes zu konvertieren,
|
|
indem die Konfigurationsdatei mit der gewünschten z-parity- oder
|
|
3-parity-Datei angepasst und `fix` zur Neuerstellung verwendet wird.
|
|
|
|
content FILE
|
|
Definiert die Datei, die zum Speichern der Liste und der Prüfsummen aller
|
|
im Festplatten-Array vorhandenen Dateien verwendet wird.
|
|
|
|
Sie kann auf einer für Daten, Parität oder einer anderen
|
|
verfügbaren Festplatte platziert werden.
|
|
Wenn Sie eine Datenfestplatte verwenden, wird diese Datei automatisch
|
|
vom `sync`-Vorgang ausgeschlossen.
|
|
|
|
Diese Option ist obligatorisch und kann mehrmals verwendet werden,
|
|
um mehrere Kopien derselben Datei zu speichern.
|
|
|
|
Sie müssen mindestens eine Kopie für jede verwendete Paritätsfestplatte
|
|
plus eine speichern. Die Verwendung zusätzlicher Kopien schadet nicht.
|
|
|
|
data NAME DIR
|
|
Definiert den Namen und Einhängepunkt der Datenfestplatten im Array. NAME
|
|
wird zur Identifizierung der Festplatte verwendet und muss eindeutig sein.
|
|
DIR ist der Einhängepunkt der Festplatte im Dateisystem.
|
|
|
|
Sie können den Einhängepunkt nach Bedarf ändern, solange Sie
|
|
den NAME unverändert lassen.
|
|
|
|
Der konfigurierte Pfad muss jedoch durchgehend auf dieselben
|
|
zugrunde liegenden Daten verweisen. Wenn der Pfad symbolische Links
|
|
enthält, müssen deren Ziele stabil bleiben. Das Ändern solcher Symlinks,
|
|
um das Datenverzeichnis im laufenden Betrieb zu wechseln, wird nicht
|
|
unterstützt.
|
|
|
|
Sie sollten eine Option für jede Datenfestplatte im Array verwenden.
|
|
|
|
Sie können eine Festplatte später umbenennen, indem Sie den NAME
|
|
direkt in der Konfigurationsdatei ändern und dann einen `sync`-Befehl
|
|
ausführen. Im Falle einer Umbenennung erfolgt die Zuordnung
|
|
mithilfe der gespeicherten UUID der Festplatten.
|
|
|
|
extra NAME DIR
|
|
Definiert den Namen und Einhängepunkt zusätzlicher Festplatten, die mit den
|
|
Befehlen `smart` und `probe` überwacht werden sollen.
|
|
|
|
Dies ist nützlich für die Überwachung von Festplatten, die nicht Teil des
|
|
Arrays sind, aber für das Funktionieren des Systems erforderlich sind, wie
|
|
z. B. die Boot-Festplatte.
|
|
|
|
Beachten Sie, dass solche Festplatten nicht von den Befehlen `up` und `down`
|
|
betroffen sind, da von ihnen erwartet wird, dass sie sich immer drehen.
|
|
|
|
snapshot
|
|
Aktiviert die Verwendung von Dateisystem-Snapshots für die Befehle `sync`, `scrub`,
|
|
`check` und `fix`.
|
|
|
|
Wenn aktiviert, erstellt SnapRAID zu Beginn eines 'sync' einen schreibgeschützten
|
|
Snapshot jedes unterstützten Daten-Dateisystems. Dies bietet eine stabile Ansicht
|
|
jedes Dateisystems und verhindert, dass spätere Änderungen die für die Paritätsberechnung
|
|
verwendeten Daten verändern.
|
|
|
|
Dies verbessert die Wiederherstellung erheblich: Wenn eine Datei aus dem
|
|
Live-Dateisystem gelöscht wird, bleibt sie im Snapshot erhalten. Dies verhindert,
|
|
dass die Parität für diesen Block "beschädigt" wird, sodass Sie Daten immer noch
|
|
erfolgreich wiederherstellen können, wenn eine andere Festplatte ausfällt.
|
|
|
|
Diese Option gilt ausschließlich für Datenträger, die mit den Dateisystemen
|
|
Btrfs, Bcachefs oder ZFS unter Linux und NTFS unter Windows formatiert sind.
|
|
Paritätsfestplatten oder Datenträger mit anderen Dateisystemen verwenden immer
|
|
die Live-Version des Dateisystems.
|
|
|
|
Das Erstellen und Löschen von Snapshots erfordert Administratorrechte.
|
|
Stellen Sie sicher, dass SnapRAID mit den erforderlichen Berechtigungen (z. B. sudo)
|
|
ausgeführt wird, wenn diese Option aktiviert ist.
|
|
|
|
Eine detaillierte Erklärung des Snapshot-Lebenszyklus finden Sie im Abschnitt SNAPSHOTS.
|
|
|
|
nohidden
|
|
Schließt alle versteckten Dateien und Verzeichnisse aus.
|
|
Unter Unix sind versteckte Dateien solche, die mit `.` beginnen.
|
|
Unter Windows sind es solche mit dem versteckten Attribut.
|
|
|
|
exclude/include PATTERN
|
|
Definiert die Datei- oder Verzeichnismuster, die im `sync`-Vorgang
|
|
ausgeschlossen oder eingeschlossen werden sollen.
|
|
Alle Muster werden in der angegebenen Reihenfolge verarbeitet.
|
|
|
|
Wenn das erste übereinstimmende Muster ein `exclude`-Muster ist,
|
|
wird die Datei ausgeschlossen. Wenn es ein `include`-Muster ist,
|
|
wird die Datei eingeschlossen. Wenn kein Muster übereinstimmt,
|
|
wird die Datei ausgeschlossen, wenn das zuletzt angegebene Muster
|
|
ein `include` ist, oder eingeschlossen, wenn das zuletzt angegebene
|
|
Muster ein `exclude` ist.
|
|
|
|
Beachten Sie, dass die Filterung hierarchisch beim Durchlaufen der
|
|
Verzeichnisse erfolgt. Wenn ein Verzeichnis mit einer `exclude`-Regel
|
|
übereinstimmt, wird das gesamte Verzeichnis übersprungen (verworfen),
|
|
und alle `include`-Regeln für darin enthaltene Dateien oder
|
|
Unterverzeichnisse werden nicht ausgewertet.
|
|
|
|
Weitere Details zu Musterspezifikationen finden Sie im Abschnitt
|
|
PATTERN.
|
|
|
|
Diese Option kann mehrmals verwendet werden.
|
|
|
|
blocksize SIZE_IN_KIBIBYTES
|
|
Definiert die grundlegende Blockgröße in Kibibytes für die Parität.
|
|
Ein Kibibyte entspricht 1024 Bytes.
|
|
|
|
Die Standard-Blockgröße ist 256, was für die meisten Fälle
|
|
ausreichen sollte.
|
|
|
|
WARNUNG! Diese Option ist nur für Experten gedacht, und es wird
|
|
dringend empfohlen, diesen Wert nicht zu ändern. Um diesen Wert
|
|
zukünftig zu ändern, müssen Sie die gesamte Parität neu erstellen!
|
|
|
|
Ein Grund für die Verwendung einer anderen Blockgröße ist, wenn Sie
|
|
viele kleine Dateien in der Größenordnung von Millionen haben.
|
|
|
|
Für jede Datei, auch wenn sie nur wenige Bytes groß ist, wird ein
|
|
ganzer Block Parität zugewiesen, und bei vielen Dateien kann dies
|
|
zu erheblichem ungenutztem Paritätsplatz führen. Wenn Sie die
|
|
Paritätsfestplatte vollständig füllen, dürfen Sie keine weiteren
|
|
Dateien zu den Datenfestplatten hinzufügen.
|
|
Der verschwendete Paritätsplatz akkumuliert sich jedoch nicht über
|
|
die Datenfestplatten hinweg. Verschwendeter Platz, der durch eine
|
|
hohe Anzahl von Dateien auf einer Datenfestplatte entsteht, begrenzt
|
|
nur die Datenmenge auf dieser Datenfestplatte, nicht auf anderen.
|
|
|
|
Als Annäherung können Sie davon ausgehen, dass die Hälfte der
|
|
Blockgröße für jede Datei verschwendet wird. Mit beispielsweise
|
|
100.000 Dateien und einer Blockgröße von 256 KiB verschwenden
|
|
Sie 12,8 GB Parität, was zu 12,8 GB weniger verfügbarem Speicherplatz
|
|
auf der Datenfestplatte führen kann.
|
|
|
|
Sie können die Menge des verschwendeten Platzes auf jeder Festplatte
|
|
mithilfe von `status` überprüfen. Dies ist die Menge an Platz, die Sie
|
|
auf den Datenfestplatten freilassen oder für Dateien verwenden müssen,
|
|
die nicht im Array enthalten sind. Wenn dieser Wert negativ ist,
|
|
bedeutet dies, dass Sie kurz davor sind, die Parität zu füllen,
|
|
und er stellt den Platz dar, den Sie noch verschwenden können.
|
|
|
|
Um dieses Problem zu vermeiden, können Sie eine größere Partition
|
|
für die Parität verwenden. Wenn die Paritätspartition beispielsweise
|
|
12,8 GB größer ist als die Datenfestplatten, haben Sie genügend
|
|
zusätzlichen Platz, um bis zu 100.000 Dateien auf jeder Datenfestplatte
|
|
ohne verschwendeten Platz zu verarbeiten.
|
|
|
|
Ein Trick, um eine größere Paritätspartition unter Linux zu erhalten,
|
|
ist die Formatierung mit dem Befehl:
|
|
|
|
:mkfs.ext4 -m 0 -T largefile4 DEVICE
|
|
|
|
Dies führt zu etwa 1,5% zusätzlichem Speicherplatz, ungefähr 60 GB
|
|
für eine 4 TB Festplatte, was etwa 460.000 Dateien auf jeder
|
|
Datenfestplatte ohne verschwendeten Platz ermöglicht.
|
|
|
|
hashsize SIZE_IN_BYTES
|
|
Definiert die Hash-Größe in Bytes für die gespeicherten Blöcke.
|
|
|
|
Die Standard-Hash-Größe beträgt 16 Bytes (128 Bit), was für die
|
|
meisten Fälle ausreichen sollte.
|
|
|
|
WARNUNG! Diese Option ist nur für Experten gedacht, und es wird
|
|
dringend empfohlen, diesen Wert nicht zu ändern. Um diesen Wert
|
|
zukünftig zu ändern, müssen Sie die gesamte Parität neu erstellen!
|
|
|
|
Ein Grund für die Verwendung einer anderen Hash-Größe ist, wenn Ihr
|
|
System über begrenzten Speicher verfügt. Als Faustregel benötigt
|
|
SnapRAID typischerweise 1 GiB RAM für jede 16 TB Daten im Array.
|
|
|
|
Genauer gesagt benötigt SnapRAID zum Speichern der Hashes der Daten
|
|
ungefähr TS*(1+HS)/BS Bytes RAM,
|
|
wobei TS die Gesamtgröße in Bytes Ihres Festplatten-Arrays ist,
|
|
BS die Blockgröße in Bytes und HS die Hash-Größe in Bytes.
|
|
|
|
Mit beispielsweise 8 Festplatten à 4 TB, einer Blockgröße von 256 KiB
|
|
(1 KiB = 1024 Bytes) und einer Hash-Größe von 16 erhalten Sie:
|
|
|
|
:RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1.93 GiB
|
|
|
|
Bei einem Wechsel zu einer Hash-Größe von 8 erhalten Sie:
|
|
|
|
:RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1.02 GiB
|
|
|
|
Bei einem Wechsel zu einer Blockgröße von 512 erhalten Sie:
|
|
|
|
:RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0.96 GiB
|
|
|
|
Bei einem Wechsel zu einer Hash-Größe von 8 und einer Blockgröße
|
|
von 512 erhalten Sie:
|
|
|
|
:RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0.51 GiB
|
|
|
|
autosave SIZE_IN_GIGABYTES
|
|
Speichert den Zustand beim Synchronisieren oder Scrubben automatisch
|
|
nach der angegebenen Menge an verarbeiteten GB.
|
|
Diese Option ist nützlich, um zu vermeiden, dass lange `sync`-Befehle
|
|
von vorne gestartet werden müssen, wenn sie durch einen Maschinenabsturz
|
|
oder ein anderes Ereignis unterbrochen werden.
|
|
|
|
temp_limit TEMPERATURE_CELSIUS
|
|
Legt die maximal zulässige Festplattentemperatur in Celsius fest.
|
|
Wenn angegeben, überprüft SnapRAID regelmäßig die Temperatur aller
|
|
Festplatten mithilfe des smartctl-Tools. Die aktuellen Festplattentemperaturen
|
|
werden während des Betriebs von SnapRAID angezeigt. Wenn eine Festplatte
|
|
diesen Grenzwert überschreitet, werden alle Vorgänge gestoppt, und
|
|
die Festplatten werden für die durch die Option `temp_sleep` definierte
|
|
Dauer heruntergefahren (in den Standby-Modus versetzt). Nach der
|
|
Schlafperiode werden die Vorgänge fortgesetzt und möglicherweise
|
|
erneut pausiert, wenn der Temperaturgrenzwert erneut erreicht wird.
|
|
|
|
Während des Betriebs analysiert SnapRAID auch die Heizkurve jeder
|
|
Festplatte und schätzt die langfristige stationäre Temperatur, die
|
|
erwartet wird, wenn die Aktivität fortgesetzt wird. Die Schätzung
|
|
wird nur durchgeführt, nachdem die Festplattentemperatur viermal
|
|
angestiegen ist, um sicherzustellen, dass genügend Datenpunkte
|
|
zur Verfügung stehen, um einen zuverlässigen Trend festzustellen.
|
|
Diese vorhergesagte stationäre Temperatur wird in Klammern neben
|
|
dem aktuellen Wert angezeigt und hilft bei der Beurteilung, ob die
|
|
Kühlung des Systems ausreichend ist. Diese geschätzte Temperatur
|
|
dient nur zu Informationszwecken und hat keine Auswirkung auf das
|
|
Verhalten von SnapRAID. Die Aktionen des Programms basieren
|
|
ausschließlich auf den tatsächlich gemessenen Festplattentemperaturen.
|
|
|
|
Um diese Analyse durchzuführen, benötigt SnapRAID eine Referenz für
|
|
die Systemtemperatur. Es versucht zunächst, diese von verfügbaren
|
|
Hardwaresensoren zu lesen. Wenn kein Systemsensor zugänglich ist,
|
|
wird die niedrigste zu Beginn des Laufs gemessene Festplattentemperatur
|
|
als Fallback-Referenz verwendet.
|
|
|
|
Normalerweise zeigt SnapRAID nur die Temperatur der heißesten
|
|
Festplatte an. Um die Temperatur aller Festplatten anzuzeigen,
|
|
verwenden Sie die Option -A oder --stats.
|
|
|
|
temp_sleep TIME_IN_MINUTES
|
|
Legt die Standby-Zeit in Minuten fest, wenn der Temperaturgrenzwert
|
|
erreicht wird. Während dieser Zeit bleiben die Festplatten heruntergefahren.
|
|
Der Standardwert ist 5 Minuten.
|
|
|
|
pool DIR
|
|
Definiert das Pooling-Verzeichnis, in dem die virtuelle Ansicht des
|
|
Festplatten-Arrays mithilfe des Befehls `pool` erstellt wird.
|
|
|
|
Das Verzeichnis muss bereits existieren.
|
|
|
|
share UNC_DIR
|
|
Definiert den Windows UNC-Pfad, der für den Remote-Zugriff auf die
|
|
Festplatten erforderlich ist.
|
|
|
|
Wenn diese Option angegeben ist, verwenden die im Pool-Verzeichnis
|
|
erstellten symbolischen Links diesen UNC-Pfad, um auf die Festplatten
|
|
zuzugreifen. Ohne diese Option verwenden die generierten symbolischen
|
|
Links nur lokale Pfade, was die Freigabe des Pool-Verzeichnisses
|
|
über das Netzwerk nicht ermöglicht.
|
|
|
|
Die symbolischen Links werden unter Verwendung des angegebenen UNC-Pfads
|
|
gebildet, wobei der in der `data`-Option angegebene Festplattenname
|
|
und schließlich das Dateiverzeichnis und der Name hinzugefügt werden.
|
|
|
|
Diese Option ist nur für Windows erforderlich.
|
|
|
|
smartctl DISK/PARITY OPTIONS...
|
|
Definiert benutzerdefinierte smartctl-Optionen, um die SMART-Attribute
|
|
für jede Festplatte abzurufen. Dies kann für RAID-Controller und einige
|
|
USB-Festplatten erforderlich sein, die nicht automatisch erkannt
|
|
werden können. Der Platzhalter %s wird durch den Gerätenamen ersetzt,
|
|
ist aber für feste Geräte wie RAID-Controller optional.
|
|
|
|
DISK ist derselbe Festplattenname, der in der `data`-Option angegeben
|
|
ist. PARITY ist einer der Paritätsnamen: `parity`, `2-parity`,
|
|
`3-parity`, `4-parity`, `5-parity`, `6-parity` oder `z-parity`.
|
|
|
|
In den angegebenen OPTIONS wird die Zeichenfolge `%s` durch den
|
|
Gerätenamen ersetzt. Bei RAID-Controllern ist das Gerät
|
|
wahrscheinlich fest, und Sie müssen `%s` möglicherweise nicht verwenden.
|
|
|
|
Sie können auch eine benutzerdefinierte Info-Optionszeichenfolge mit dem
|
|
Tag `[info: ...]` angeben, um die Standardoption `-a` zu ersetzen.
|
|
|
|
Weitere mögliche Optionen finden Sie in der smartmontools-Dokumentation:
|
|
|
|
:https://www.smartmontools.org/wiki/Supported_RAID-Controllers
|
|
:https://www.smartmontools.org/wiki/Supported_USB-Devices
|
|
|
|
Zum Beispiel:
|
|
|
|
:smartctl d1 [info: -H -i -c -A] -d sat %s
|
|
:smartctl parity -d sat %s
|
|
|
|
smartignore DISK/PARITY ATTR [ATTR...]
|
|
Ignoriert das angegebene SMART-Attribut bei der Berechnung der
|
|
Wahrscheinlichkeit eines Festplattenausfalls. Diese Option ist
|
|
nützlich, wenn eine Festplatte ungewöhnliche oder irreführende
|
|
Werte für ein bestimmtes Attribut meldet.
|
|
|
|
DISK ist derselbe Festplattenname, der in der `data`-Option angegeben
|
|
ist. PARITY ist einer der Paritätsnamen: `parity`, `2-parity`,
|
|
`3-parity`, `4-parity`, `5-parity`, `6-parity` oder `z-parity`.
|
|
Der Sonderwert * kann verwendet werden, um das Attribut auf allen
|
|
Festplatten zu ignorieren.
|
|
|
|
Es können mehrere Attribute durch Leerzeichen getrennt angegeben werden.
|
|
Jedes Attribut kann als Nummer von 1 bis 255 oder als Name ohne
|
|
Berücksichtigung der Groß-/Kleinschreibung (z. B. `Current_Pending_Sector`)
|
|
angegeben werden.
|
|
|
|
Um beispielsweise das Attribut `Current Pending Sector Count` und
|
|
`Reallocated Sectors Count` auf allen Festplatten über ihre Nummer
|
|
oder ihren Namen zu ignorieren:
|
|
|
|
:smartignore * 197 5
|
|
:smartignore * Current_Pending_Sector Reallocated_Sector_Ct
|
|
|
|
Um sie nur auf der ersten Paritätsfestplatte zu ignorieren:
|
|
|
|
:smartignore parity 197 5
|
|
|
|
Beispiele (Examples)
|
|
Ein Beispiel für eine typische Konfiguration für Unix ist:
|
|
|
|
:parity /mnt/diskp/snapraid.parity
|
|
:content /mnt/diskp/snapraid.content
|
|
:content /var/snapraid/snapraid.content
|
|
:data d1 /mnt/disk1/
|
|
:data d2 /mnt/disk2/
|
|
:data d3 /mnt/disk3/
|
|
:exclude /lost+found/
|
|
:exclude /tmp/
|
|
:smartctl d1 [info: -H -i -c -A] -d sat %s
|
|
:smartctl d2 -d usbjmicron %s
|
|
:smartctl parity -d areca,1/1 /dev/sg0
|
|
:smartctl 2-parity -d areca,2/1 /dev/sg0
|
|
|
|
Ein Beispiel für eine typische Konfiguration für Windows ist:
|
|
|
|
:parity E:\snapraid.parity
|
|
:content E:\snapraid.content
|
|
:content C:\snapraid\snapraid.content
|
|
:data d1 G:\array\
|
|
:data d2 H:\array\
|
|
:data d3 I:\array\
|
|
:exclude Thumbs.db
|
|
:exclude \$RECYCLE.BIN
|
|
:exclude \System Volume Information
|
|
:smartctl d1 -d sat %s
|
|
:smartctl d2 -d usbjmicron %s
|
|
:smartctl parity -d areca,1/1 /dev/arcmsr0
|
|
:smartctl 2-parity -d areca,2/1 /dev/arcmsr0
|
|
|
|
Snapshots
|
|
Wenn die Snapshot-Option in der Konfiguration aktiviert ist, verwendet SnapRAID
|
|
Dateisystem-Snapshots, um die während einer Operation gelesenen Daten stabil zu halten,
|
|
selbst wenn Dateien auf den Live-Dateisystemen nachträglich geändert oder gelöscht werden.
|
|
|
|
Die Verwaltung von Snapshots erfolgt vollständig automatisch und transparent.
|
|
Sie können SnapRAID genau wie bisher verwenden, wobei der zusätzliche Schutz
|
|
durch Snapshots vollständig im Hintergrund abgewickelt wird.
|
|
|
|
Dies bietet zwei wesentliche Vorteile:
|
|
|
|
Konsistenz - Dateien, die während eines lang laufenden Syncs oder Scrubs auf dem Live-Dateisystem
|
|
geändert werden, verursachen keine Paritätskonflikte oder abgebrochenen Operationen,
|
|
weil jedes Dateisystem mit Snapshot für die Dauer der Operation unverändert bleibt.
|
|
Wiederherstellung - Wenn eine Datei im Live-Dateisystem aktualisiert oder gelöscht wird,
|
|
bleibt sie im Snapshot erhalten. Wenn ein Festplattenausfall auftritt,
|
|
bevor der nächste Sync ausgeführt wird, verwendet SnapRAID die im Snapshot konservierten Daten,
|
|
um die ausgefallene Festplatte zu rekonstruieren.
|
|
|
|
Im Falle eines Festplattenausfalls während eines aktiven Sync-Vorgangs
|
|
ist SnapRAID auch in der Lage, automatisch sowohl aus dem Snapshot
|
|
der vorherigen Paritätsberechnung als auch aus der aktuellen zu lesen.
|
|
Dies maximiert die Wahrscheinlichkeit einer vollständigen Wiederherstellung, indem
|
|
Zugriff auf die genauen Datenblöcke gewährt wird, die zur Lösung der Paritätsgleichungen
|
|
erforderlich sind, selbst wenn diese Blöcke zwischen den Syncs geändert oder gelöscht wurden.
|
|
|
|
Ohne Snapshots führt eine aktualisierte oder gelöschte Datei auf einer gesunden
|
|
Festplatte zu fehlenden Datenblöcken, die möglicherweise zur Reparatur
|
|
anderer ausgefallener Festplatten benötigt werden.
|
|
|
|
Snapshots werden nur für Datenträger erstellt und nur dann, wenn das zugrunde liegende
|
|
Dateisystem diese Funktionalität unterstützt. Paritätsfestplatten verwenden immer
|
|
das Live-Dateisystem.
|
|
|
|
Derzeit wird dies auf Btrfs, Bcachefs und ZFS unter Linux
|
|
und auf NTFS unter Windows unterstützt.
|
|
|
|
Sie können Datenträger mit unterschiedlichen Dateisystemen mischen. Nur diejenigen, die
|
|
Snapshots unterstützen, werden diese nutzen, während andere Festplatten weiterhin
|
|
direkt auf dem Live-Dateisystem arbeiten.
|
|
|
|
Das Erstellen und Löschen von Snapshots erfordert Administratorrechte.
|
|
Stellen Sie sicher, dass SnapRAID mit den erforderlichen Berechtigungen (z. B. sudo)
|
|
ausgeführt wird, wenn Snapshots aktiviert sind.
|
|
|
|
Befehlsverhalten mit Snapshots (Command Behavior with Snapshots)
|
|
Die Befehle `sync` und `scrub` verwenden Snapshots für Datenträger, deren
|
|
Dateisysteme diese unterstützen. Auf einer Festplatte mit Snapshot sieht der Befehl
|
|
ein stabiles Dateisystemabbild, das von gleichzeitigen Änderungen am Live-Dateisystem
|
|
unbeeinflusst bleibt.
|
|
Während eines `sync` wird unabhängig für jedes unterstützte Daten-Dateisystem ein
|
|
neuer Snapshot erstellt. Diese Snapshots liefern gemeinsam die für die Paritätsberechnung
|
|
verwendeten Daten.
|
|
Im Gegensatz dazu verwendet der Befehl `scrub` den letzten Snapshot, also den, der
|
|
während des letzten erfolgreichen Syncs erstellt wurde, um einen zuverlässigen Referenzpunkt
|
|
beizubehalten, der mit der vorhandenen Parität übereinstimmt.
|
|
|
|
Bei den Befehlen `check` und `fix` hängt die Verwendung des letzten Snapshots
|
|
davon ab, ob bestimmte Festplatten mit der Option -d, --filter-disk ausgewählt wurden.
|
|
|
|
Eine explizit über -d ausgewählte Festplatte (das „Ziel“ der Operation)
|
|
verwendet immer das Live-Dateisystem. Für `fix` ermöglicht dies das Wiederherstellen
|
|
von Daten auf dem aktiven Festplattenersatz. Für `check` ermöglicht es die Simulation
|
|
des `fix`-Vorgangs unter denselben Bedingungen.
|
|
|
|
Auf alle anderen Datenträger (die „Referenz“-Festplatten) wird über ihre Snapshots zugegriffen.
|
|
Dies stellt sicher, dass SnapRAID selbst dann, wenn Sie während einer laufenden Wiederherstellung
|
|
Dateien auf Ihren gesunden Festplatten ändern, eine stabile, eingefrorene Referenz hat,
|
|
um die Paritätsgleichungen zu lösen.
|
|
|
|
Wenn keine Option -d angegeben ist, nimmt SnapRAID an, dass die Operation für das gesamte Array gilt.
|
|
In diesem Fall verwenden `check` und `fix` ausschließlich die Live-Dateisysteme.
|
|
|
|
Alle anderen Befehle arbeiten ausschließlich auf dem Live-Dateisystem.
|
|
|
|
Lebenszyklus von Snapshots (Snapshots Lifecycle)
|
|
SnapRAID verwaltet drei spezifische Snapshots, `stable`, `pending` und `scan`,
|
|
in einem versteckten Verzeichnis im Stammverzeichnis jedes Daten-Subvolumes.
|
|
Unter Btrfs, Bcachefs und NTFS wird das Verzeichnis `.snapraid/` verwendet,
|
|
unter ZFS das Standardverzeichnis `.zfs/snapshot/`.
|
|
|
|
Der `stable`-Snapshot repräsentiert den Zustand des letzten
|
|
erfolgreich abgeschlossenen `sync` und enthält die genauen Daten, die zur
|
|
Berechnung der aktuellen Parität verwendet wurden. Er dient als primäre Datenquelle
|
|
für die Befehle `scrub`, `check` und `fix`.
|
|
|
|
Der `scan`-Snapshot ist ein temporäres Abbild, das zu Beginn eines `sync`
|
|
erstellt wird, um einen eingefrorenen Zustand für das Scannen und die Paritätsberechnung bereitzustellen.
|
|
Nach dem Scannen und Speichern des neuen Inhaltszustands ersetzt er den vorherigen
|
|
`pending`-Snapshot.
|
|
|
|
Der `pending`-Snapshot ist das Abbild, das von einem unterbrochenen `sync` verwendet wird.
|
|
Nach erfolgreichem Abschluss des Vorgangs wird der vorherige `stable`-Snapshot gelöscht
|
|
und der `pending`-Snapshot wird heraufgestuft, um seinen Platz als neue stabile Referenz einzunehmen.
|
|
|
|
Wenn ein `sync` unterbrochen wird, bleibt der `pending`-Snapshot erhalten.
|
|
Nachfolgende `scrub`-, `check`- und `fix`-Befehle verwenden diesen ausstehenden Snapshot,
|
|
da er mit dem in der .content-Datei aufgezeichneten Dateisystemzustand übereinstimmt,
|
|
selbst wenn die Parität nur teilweise synchronisiert ist.
|
|
|
|
Im Falle einer `sync`-Unterbrechung lesen die Befehle `check` und `fix`
|
|
auch aus dem `stable`-Snapshot, um Datenblöcke von Dateien abzurufen,
|
|
die während des Syncs aktualisiert oder gelöscht wurden.
|
|
Dies ist möglich, da die .content-Datei Metadaten für alle geänderten oder
|
|
gelöschten Dateien während des gesamten Sync-Prozesses aufbewahrt.
|
|
Diese historischen Informationen werden erst gelöscht, wenn ein Sync erfolgreich abgeschlossen
|
|
und die endgültige Version der .content-Datei gespeichert wurde.
|
|
|
|
Wenn ein `sync` nach einer Unterbrechung neu gestartet wird, wird der vorhandene
|
|
ausstehende (pending) Snapshot gelöscht und ein neuer erstellt, um den
|
|
aktuellen Zustand des Live-Dateisystems zu erfassen.
|
|
Wenn ein `sync` jedoch unterbrochen wird, vermeiden Sie es, Dateien zu
|
|
ändern, zu löschen, zu ersetzen oder zu verschieben, bis ein nachfolgender
|
|
`sync` erfolgreich abgeschlossen ist. Die Parität kann noch Blöcke enthalten,
|
|
die aus dem vom unterbrochenen Sync verwendeten Snapshot berechnet wurden.
|
|
Ein späterer Sync könnte diesen Snapshot ersetzen, wodurch Zwischenversionen
|
|
von Dateien für die Wiederherstellung nicht mehr verfügbar sind.
|
|
|
|
Muster (Pattern)
|
|
Muster bieten eine flexible Möglichkeit, Dateien für die Einbeziehung oder
|
|
den Ausschluss zu filtern. Durch die Verwendung von Globbing-Zeichen können Sie Regeln definieren,
|
|
die mit bestimmten Dateinamen oder ganzen Verzeichnisstrukturen übereinstimmen, ohne
|
|
jeden Pfad manuell auflisten zu müssen.
|
|
|
|
Das Fragezeichen `?` entspricht einem beliebigen einzelnen Zeichen außer dem
|
|
Verzeichnistrennzeichen. Dies macht es nützlich für den Abgleich von Dateinamen mit variablen
|
|
Zeichen, während das Muster auf eine einzelne Verzeichnisebene beschränkt bleibt.
|
|
|
|
Der einfache Stern `*` entspricht einer beliebigen Folge von Zeichen, aber wie das
|
|
Fragezeichen überschreitet er niemals Verzeichnisgrenzen. Er stoppt beim
|
|
Schrägstrich, was ihn für den Abgleich innerhalb einer einzelnen Pfadkomponente
|
|
geeignet macht. Dies ist das Standardverhalten von Wildcards, das vom Shell-
|
|
Globbing bekannt ist.
|
|
|
|
Der Doppelstern-Platzhalter `**` entspricht nur dann über Verzeichnistrennzeichen
|
|
hinweg, wenn er an ein Verzeichnistrennzeichen angrenzt (einem Schrägstrich
|
|
vorangestellt oder nachgestellt). In dieser Form entspricht er null oder mehr
|
|
Zeichen über Verzeichnisebenen hinweg. Zum Beispiel entspricht `foo/**/bar` den
|
|
Pfaden `foo/bar`, `foo/a/bar` und `foo/a/b/bar`; `**/build` entspricht `build`
|
|
und `foo/bar/build`; und `src/**.js` entspricht `src/main.js` und
|
|
`src/ui/components/main.js`.
|
|
Die alleinstehende Form `/**/` wird nicht als vollständiges Muster akzeptiert.
|
|
|
|
Wenn `**` nicht an einen Schrägstrich angrenzt, verhält er sich wie `*` und
|
|
entspricht keinen Verzeichnistrennzeichen. Zum Beispiel entspricht `**.jpg`
|
|
der Datei `photo.jpg` im aktuellen Verzeichnis, nicht jedoch `dir/photo.jpg`.
|
|
Verwenden Sie für diesen Zweck `**/*.jpg`.
|
|
|
|
Zeichenklassen mit eckigen Klammern `[]` entsprechen einem einzelnen Zeichen aus einer
|
|
bestimmten Menge oder einem Bereich. Wie die anderen Einzelzeichenmuster
|
|
entsprechen sie nicht den Verzeichnistrennzeichen. Klassen unterstützen Bereiche und Negierung durch
|
|
ein Ausrufezeichen.
|
|
|
|
Der grundlegende Unterschied, den man sich merken sollte, ist, dass `*`, `?` und Zeichenklassen
|
|
alle Verzeichnisgrenzen respektieren und nur innerhalb einer einzelnen Pfadkomponente
|
|
übereinstimmen, während `**` nur dann über Verzeichnistrennzeichen hinweg übereinstimmen kann,
|
|
wenn es an einen Schrägstrich angrenzt.
|
|
|
|
Es gibt vier verschiedene Arten von Mustern:
|
|
|
|
=FILE
|
|
Wählt jede Datei mit dem Namen FILE aus.
|
|
Dieses Muster gilt nur für Dateien, nicht für Verzeichnisse.
|
|
|
|
=DIR/
|
|
Wählt jedes Verzeichnis mit dem Namen DIR und alles darin aus.
|
|
Dieses Muster gilt nur für Verzeichnisse, nicht für Dateien.
|
|
|
|
=/PATH/FILE
|
|
Wählt den exakt angegebenen Dateipfad aus. Dieses Muster gilt
|
|
nur für Dateien, nicht für Verzeichnisse.
|
|
|
|
=/PATH/DIR/
|
|
Wählt den exakt angegebenen Verzeichnispfad und alles darin aus.
|
|
Dieses Muster gilt nur für Verzeichnisse, nicht für Dateien.
|
|
|
|
Wenn Sie einen absoluten Pfad angeben, der mit / beginnt, wird er
|
|
auf das Array-Stammverzeichnis angewendet, nicht auf das lokale
|
|
Dateisystem-Stammverzeichnis.
|
|
|
|
Unter Windows können Sie den Backslash \ anstelle des Forward-Slash /
|
|
verwenden. Windows-Systemverzeichnisse, Junctions, Einhängepunkte
|
|
(Mount Points) und andere spezielle Windows-Verzeichnisse werden
|
|
als Dateien behandelt, was bedeutet, dass Sie zum Ausschließen
|
|
eine Dateiregel verwenden müssen, nicht eine Verzeichnisregel.
|
|
|
|
Wenn der Dateiname ein Zeichen `*`, `?`, `[`, oder `]` enthält,
|
|
müssen Sie es escapen, um zu vermeiden, dass es als Globbing-Zeichen
|
|
interpretiert wird. Unter Unix ist das Escape-Zeichen `\`; unter
|
|
Windows ist es `^`. Wenn sich das Muster in der Befehlszeile befindet,
|
|
müssen Sie das Escape-Zeichen verdoppeln, um zu vermeiden, dass es
|
|
von der Befehlsshell interpretiert wird.
|
|
|
|
In der Konfigurationsdatei können Sie verschiedene Strategien zum
|
|
Filtern der zu verarbeitenden Dateien verwenden.
|
|
Der einfachste Ansatz besteht darin, nur `exclude`-Regeln zu verwenden,
|
|
um alle Dateien und Verzeichnisse zu entfernen, die Sie nicht
|
|
verarbeiten möchten. Zum Beispiel:
|
|
|
|
:# Schließt jede Datei namens `*.unrecoverable` aus
|
|
:exclude *.unrecoverable
|
|
:# Schließt das Stammverzeichnis `/lost+found` aus
|
|
:exclude /lost+found/
|
|
:# Schließt jedes Unterverzeichnis namens `tmp` aus
|
|
:exclude tmp/
|
|
|
|
Der gegenteilige Ansatz besteht darin, nur die Dateien zu definieren,
|
|
die Sie verarbeiten möchten, indem Sie nur `include`-Regeln verwenden.
|
|
Zum Beispiel:
|
|
|
|
:# Schließt nur einige Verzeichnisse ein
|
|
:include /movies/
|
|
:include /musics/
|
|
:include /pictures/
|
|
|
|
Der letzte Ansatz besteht darin, `exclude`- und `include`-Regeln
|
|
zu mischen. In diesem Fall ist die Reihenfolge der Regeln wichtig.
|
|
Frühere Regeln haben Vorrang vor späteren.
|
|
Zur Vereinfachung können Sie zuerst alle `exclude`-Regeln und
|
|
dann alle `include`-Regeln auflisten. Zum Beispiel:
|
|
|
|
:# Schließt jede Datei namens `*.unrecoverable` aus
|
|
:exclude *.unrecoverable
|
|
:# Schließt jedes Unterverzeichnis namens `tmp` aus
|
|
:exclude tmp/
|
|
:# Schließt nur einige Verzeichnisse ein
|
|
:include /movies/
|
|
:include /musics/
|
|
:include /pictures/
|
|
|
|
Beachten Sie, dass das Ausschließen eines Verzeichnisses (mit DIR/
|
|
oder /PFAD/DIR/) verhindert, dass SnapRAID dieses Verzeichnis betritt
|
|
und durchsucht. Daher ist es nicht möglich, eine Datei oder ein
|
|
Unterverzeichnis innerhalb eines ausgeschlossenen übergeordneten
|
|
Verzeichnisses wieder einzuschließen, da der Scanner dieses niemals
|
|
durchläuft.
|
|
|
|
Beispielsweise wird bei folgender Konfiguration `file.dat` NICHT
|
|
eingeschlossen, da `/keep/` verworfen wird, bevor `file.dat` gesehen
|
|
werden kann:
|
|
|
|
:# Funktioniert NICHT: /keep/ wird vollständig übersprungen
|
|
:include /keep/file.dat
|
|
:exclude /keep/
|
|
|
|
Um Dateien innerhalb eines Verzeichnisses auszuschließen und bestimmte
|
|
Dateien beizubehalten, schließen Sie die Dateien im Verzeichnis aus,
|
|
anstatt das Verzeichnis selbst auszuschließen:
|
|
|
|
:# Funktioniert: /keep/ wird durchlaufen, aber andere Dateien darin werden ausgeschlossen
|
|
:include /keep/file.dat
|
|
:exclude /keep/*
|
|
|
|
In der Befehlszeile können Sie mit der Option -f nur `include`-Muster
|
|
verwenden. Zum Beispiel:
|
|
|
|
:# Überprüft nur die .mp3-Dateien.
|
|
:# Unter Unix Anführungszeichen verwenden, um die Globbing-Erweiterung durch die Shell zu vermeiden.
|
|
:snapraid -f "*.mp3" check
|
|
|
|
Unter Unix müssen Sie Globbing-Zeichen in der Befehlszeile in
|
|
Anführungszeichen setzen, um zu verhindern, dass die Shell sie erweitert.
|
|
|
|
Dateien Ignorieren (Ignore File)
|
|
Zusätzlich zu den globalen Regeln in der Konfigurationsdatei können Sie
|
|
`.snapraidignore`-Dateien in jedem Verzeichnis innerhalb des Arrays platzieren,
|
|
um dezentrale Ausschlussregeln zu definieren.
|
|
|
|
Regeln, die in `.snapraidignore` definiert sind, werden nach den Regeln in der
|
|
Konfigurationsdatei angewendet. Dies bedeutet, dass sie eine höhere Priorität haben
|
|
und verwendet werden können, um Dateien auszuschließen, die zuvor durch die globale
|
|
Konfiguration eingeschlossen wurden. Effektiv wird eine Datei ausgeschlossen, wenn
|
|
eine lokale Regel zutrifft, unabhängig von den globalen Include-Einstellungen.
|
|
|
|
Die Musterlogik in `.snapraidignore` spiegelt die globale Konfiguration wider,
|
|
verankert die Muster jedoch an dem Verzeichnis, in dem sich die Datei befindet:
|
|
|
|
=FILE
|
|
Wählt jede Datei namens FILE in diesem Verzeichnis oder darunter aus.
|
|
Dies folgt denselben Globbing-Regeln wie das globale Muster.
|
|
|
|
=DIR/
|
|
Wählt jedes Verzeichnis namens DIR und alles darin aus, das sich
|
|
in diesem Verzeichnis oder darunter befindet.
|
|
|
|
=/PATH/FILE
|
|
Wählt die exakt angegebene Datei relativ zum Speicherort
|
|
der `.snapraidignore`-Datei aus.
|
|
|
|
=/PATH/DIR/
|
|
Wählt das exakt angegebene Verzeichnis und alles darin aus,
|
|
relativ zum Speicherort der `.snapraidignore`-Datei.
|
|
|
|
Im Gegensatz zur globalen Konfiguration unterstützen `.snapraidignore`-Dateien nur
|
|
Ausschlussregeln; Sie können keine `include`-Muster oder Negationen (!) verwenden.
|
|
|
|
Wenn Sie beispielsweise eine `.snapraidignore` in `/mnt/disk1/projects/` haben:
|
|
|
|
:# Schließt NUR /mnt/disk1/projects/output.bin aus
|
|
:/output.bin
|
|
:# Schließt jedes Verzeichnis namens `build` innerhalb von projects/ aus
|
|
:build/
|
|
:# Schließt jede .tmp-Datei innerhalb von projects/ oder deren Unterordnern aus
|
|
:*.tmp
|
|
|
|
Inhalt (Content)
|
|
SnapRAID speichert die Liste und Prüfsummen Ihrer Dateien in der
|
|
Content-Datei.
|
|
|
|
Es ist eine Binärdatei, die alle im Festplatten-Array vorhandenen
|
|
Dateien auflistet, zusammen mit allen Prüfsummen zur Überprüfung
|
|
ihrer Integrität.
|
|
|
|
Die Content-Datei wird von den Befehlen `sync`, `scrub`, `touch` und
|
|
`rehash` gelesen und geschrieben. Sie wird von den Befehlen `status`,
|
|
`diff`, `check`, `fix`, `list`, `dup`, `locate` und `pool` gelesen und
|
|
von den Befehlen `smart`, `probe`, `up`, `down` und `devices` vollständig
|
|
ignoriert.
|
|
|
|
Parität (Parity)
|
|
SnapRAID speichert die Paritätsinformationen Ihres Arrays in den
|
|
Paritätsdateien.
|
|
|
|
Dies sind Binärdateien, die die berechnete Parität aller in der
|
|
`content`-Datei definierten Blöcke enthalten.
|
|
|
|
Diese Dateien werden von den Befehlen `sync` und `fix` gelesen
|
|
und geschrieben und nur von den Befehlen `scrub` und `check` gelesen.
|
|
|
|
Kodierung (Encoding)
|
|
SnapRAID ignoriert unter Unix jede Kodierung. Es liest und speichert
|
|
die Dateinamen mit derselben Kodierung, die vom Dateisystem
|
|
verwendet wird.
|
|
|
|
Unter Windows werden alle vom Dateisystem gelesenen Namen konvertiert
|
|
und im UTF-8-Format verarbeitet.
|
|
|
|
Um Dateinamen korrekt auszugeben, müssen Sie die Windows-Konsole
|
|
mit dem Befehl `chcp 65001` auf den UTF-8-Modus einstellen und
|
|
eine TrueType-Schriftart wie `Lucida Console` als Konsolenschriftart
|
|
verwenden. Dies betrifft nur die gedruckten Dateinamen; wenn Sie
|
|
die Konsolenausgabe in eine Datei umleiten, ist die resultierende
|
|
Datei immer im UTF-8-Format.
|
|
|
|
Exit-Code (Exit Code)
|
|
SnapRAID endet mit den folgenden Fehlercodes:
|
|
|
|
0 - Alles OK.
|
|
1 - Der Befehl ist auf Fehler gestoßen.
|
|
2 - Der Befehl `diff` hat festgestellt, dass alles OK ist, aber ein `sync` erforderlich ist.
|
|
|
|
Bekannte Probleme (Known Issues)
|
|
Dateisystemgrenzen
|
|
SnapRAID überschreitet beim Scannen einer Datenfestplatte keine Dateisystem-,
|
|
Mount- oder Subvolume-Grenzen. Wenn eine solche Grenze erkannt wird, gibt
|
|
SnapRAID eine WARNUNG aus und scannt nicht darüber hinaus.
|
|
|
|
Dateien, die sich jenseits solcher Grenzen befinden, sind nicht in der
|
|
Datenfestplatte enthalten und müssen separat konfiguriert werden, wenn sie
|
|
geschützt werden sollen.
|
|
|
|
Mount-Punkte mit Dateisystem-Snapshots
|
|
Wenn Dateisystem-Snapshots aktiviert sind, werden verschachtelte Mount-Punkte
|
|
und Bind-Mounts innerhalb einer Datenfestplatte nicht unterstützt.
|
|
|
|
Mount-Punkte sind Teil des Mount-Namespace des laufenden Systems und werden
|
|
in Dateisystem-Snapshots nicht beibehalten. Folglich kann beim Scannen eines
|
|
Snapshots ein Verzeichnis sichtbar werden, das im Live-Dateisystem durch
|
|
einen Mount-Punkt verdeckt war.
|
|
|
|
Platzieren Sie keine verschachtelten Mount-Punkte oder Bind-Mounts innerhalb
|
|
von Datenfestplatten, wenn Dateisystem-Snapshots aktiviert sind.
|
|
|
|
In-Place-Dateimodifikationen ohne Zeitstempeländerungen
|
|
SnapRAID erkennt Dateimodifikationen durch den Vergleich von Dateigrößen
|
|
und Änderungszeitstempeln (mtime).
|
|
|
|
Wenn eine Anwendung eine Datei in-place ändert, ohne deren Größe zu verändern
|
|
oder ihren Änderungszeitstempel zu aktualisieren, erkennen "diff" und "sync"
|
|
nicht, dass sich die Datei geändert hat, und ihre Parität wird nicht
|
|
aktualisiert.
|
|
|
|
Um sicherzustellen, dass SnapRAID solche Änderungen erkennt, aktualisieren
|
|
Sie den Änderungszeitstempel der Datei (z. B. mit dem Dienstprogramm "touch").
|
|
Andernfalls wird der Unterschied erst bei einem nachfolgenden "scrub" oder
|
|
"check" als Hash-Fehlübereinstimmung erkannt.
|
|
|
|
Nicht-ASCII-Groß-/Kleinschreibung unter Windows
|
|
SnapRAID verwendet auf allen Plattformen eine standardmäßige, vorhersehbare
|
|
UTF-8-Kodierung und beschränkt den Vergleich ohne Berücksichtigung der
|
|
Groß-/Kleinschreibung auf ASCII-Zeichen.
|
|
|
|
Windows-Dateisysteme leiden unter dem veralteten Konzept, die Unempfindlichkeit
|
|
gegenüber der Groß-/Kleinschreibung bei Unicode-Dateinamen über willkürliche,
|
|
systemabhängige Folding-Tabellen zu erzwingen. Infolgedessen verschleiert Windows
|
|
die Realität des Dateisystems, indem es völlig unterschiedliche
|
|
Unicode-Bytesequenzen so behandelt, als wären sie dieselbe Datei.
|
|
|
|
Beispielsweise sind `À.txt` und `à.txt` unterschiedliche Unicode-Namen, dennoch
|
|
behandelt Windows sie unlogischerweise als identisch, während SnapRAID ihre
|
|
tatsächliche Unterscheidung beibehält.
|
|
|
|
Diese Einschränkung wird durch den inkonsistenten Umgang von Windows mit
|
|
Unicode-Dateinamen und das Beharren auf einer Groß-/Kleinschreibungs-Aliasing
|
|
verursacht. Um Abweichungen durch das Case-Folding von Windows zu vermeiden,
|
|
geben Sie für alle Nicht-ASCII-Zeichen in Konfigurationspfaden und Filtern
|
|
stets die exakte Groß-/Kleinschreibung an.
|
|
|
|
Dateiendung für nicht wiederherstellbare Dateien
|
|
Wenn `fix` eine beschädigte Datei nicht vollständig wiederherstellen kann,
|
|
wird sie unter Quarantäne gestellt, indem die Erweiterung `.unrecoverable`
|
|
an ihren Namen angehängt wird.
|
|
|
|
Wenn ein späterer `fix`-Vorgang die Wiederherstellung wiederholt, erstellt
|
|
er eine neue Datei unter dem normalen Dateinamen und behält die alte
|
|
`.unrecoverable`-Datei bei, während die Wiederherstellung läuft. Wenn der
|
|
erneute Versuch fehlschlägt, ersetzt das neue fehlgeschlagene Ergebnis die
|
|
alte Quarantäne. Wenn der erneute Versuch vollständig erfolgreich ist, löscht
|
|
SnapRAID die veraltete `.unrecoverable`-Datei. Eine Quarantänedatei wird
|
|
niemals wieder in den normalen Dateinamen umbenannt.
|
|
|
|
Da SnapRAID Quarantänedateien ausschließlich anhand ihres Dateinamens
|
|
identifiziert, kann jede bereits vorhandene Datei, die zufällig die Endung
|
|
`.unrecoverable` verwendet, abgeschnitten, überschrieben, ersetzt oder gelöscht
|
|
werden, wenn ihr Basisname mit einer gerade wiederherzustellenden Datei
|
|
übereinstimmt.
|
|
|
|
Vermeiden Sie die Verwendung der Erweiterung `.unrecoverable` für reguläre
|
|
Dateien und stellen Sie sicher, dass `exclude *.unrecoverable` in Ihrer
|
|
Konfiguration enthalten ist, um zu verhindern, dass solche Dateien im
|
|
Paritätsdatensatz erfasst werden.
|
|
|
|
Wiederherstellung mit partiellem Fix
|
|
Wenn `fix` mit `-S, --start` oder `-B, --count` eingeschränkt wird,
|
|
arbeitet SnapRAID nur auf den ausgewählten Blöcken und führt weder eine
|
|
Finalisierung auf Dateiebene noch eine Quarantäne durch.
|
|
|
|
Wenn die Wiederherstellung Best-Effort-Daten erzeugt, bei denen nicht
|
|
nachgewiesen werden kann, dass sie den aktuellen Inhalt darstellen, können
|
|
solche Blöcke dennoch unter dem normalen Dateinamen geschrieben werden. Die mit
|
|
diesen wiederhergestellten Blöcken verbundene Ungewissheit bleibt nach Beendigung
|
|
des Befehls nicht erhalten.
|
|
|
|
Infolgedessen behandelt ein späterer `fix` diese lesbaren Blöcke als gültige
|
|
Dateidaten und versucht nicht, sie erneut wiederherzustellen. Dies kann dazu
|
|
führen, dass eine spätere Wiederherstellung Erfolg meldet, während die Datei
|
|
weiterhin unvollständige oder veraltete Daten enthält.
|
|
|
|
Die Optionen `-S` und `-B` sind nur für die fortgeschrittene manuelle
|
|
Wiederherstellung gedacht, typischerweise nachdem ein normaler `fix`
|
|
fehlgeschlagen ist. Wenn ein partieller `fix` nicht wiederherstellbare Daten
|
|
meldet, entfernen oder benennen Sie die betroffenen Dateien um, bevor Sie eine
|
|
weitere Wiederherstellung versuchen, oder überprüfen Sie deren Inhalt manuell.
|
|
|
|
NTFS-Hardlinks und ausgeschlossene Pfade
|
|
Unter NTFS speichern Verzeichniseinträge Dateigröße und Zeitstempel
|
|
unabhängig für jeden Hardlink zwischen. Wenn eine Datei über einen Link
|
|
geändert wird, können die Verzeichniseinträge anderer Links, die auf
|
|
dieselbe Datei verweisen, veraltete Metadaten behalten, bis auf sie
|
|
zugegriffen wird.
|
|
|
|
SnapRAID erkennt und normalisiert diesen Zustand automatisch, sobald
|
|
während eines Scans mindestens zwei Hardlinks zu derselben Datei gefunden
|
|
werden. Wenn jedoch nur ein Hardlink gescannt wird, während die anderen
|
|
durch Filter ausgeschlossen sind oder außerhalb des Datenfestplattenpfads
|
|
liegen, kann SnapRAID die Inode-Kollision nicht erkennen und verlässt sich
|
|
auf die zwischengespeicherten Metadaten des einzigen sichtbaren Links.
|
|
|
|
Infolgedessen können Änderungen, die über einen ausgeschlossenen oder
|
|
externen Hardlink vorgenommen wurden, von SnapRAID unbemerkt bleiben,
|
|
bis die Metadaten des einbezogenen Links durch das Betriebssystem
|
|
aktualisiert werden (z. B. wenn über diesen Pfad auf die Datei
|
|
zugegriffen oder sie geöffnet wird).
|
|
|
|
Um diese Einschränkung zu vermeiden, sollten geschützte Dateien nicht über
|
|
Hardlinks geändert werden, die von SnapRAID ausgeschlossen sind, oder es
|
|
sollte sichergestellt werden, dass alle Hardlinks zu einer Datei im Scan
|
|
enthalten sind, damit SnapRAID sie normalisieren kann.
|
|
|
|
Wiederherstellung nach einem unterbrochenen Multi-Paritäts-Sync
|
|
In einem Array mit mehreren Paritätsfestplatten kann ein unterbrochener
|
|
`sync` dazu führen, dass sich verschiedene Paritätsstufen vorübergehend
|
|
in unterschiedlichen Aktualisierungszuständen befinden. Beispielsweise
|
|
kann Parität 1 bereits neu aktualisierte Daten enthalten, während
|
|
Parität 2 noch die alten Daten enthält.
|
|
|
|
Während `check` oder `fix` testet SnapRAID verschiedene
|
|
Paritätskombinationen und validiert die rekonstruierten Daten anhand
|
|
der bekannten Block-Hashes (die den gesamten Block abdecken, typischerweise
|
|
256 KiB).
|
|
|
|
Wenn SnapRAID eine Rekonstruktion mit einer inkonsistenten Mischung aus
|
|
alter und neuer Parität versucht, erzeugen die linearen RAID-Gleichungen
|
|
fehlerhafte Daten. Damit eine solche ungültige Kombination fälschlicherweise
|
|
akzeptiert wird, müssten die Gleichungen rein zufällig mindestens einen
|
|
vollständigen 256-KiB-Block so perfekt rekonstruieren, dass sein Hash
|
|
übereinstimmt, während andere nicht synchronisierte Blöcke desselben
|
|
Stripes mit fehlerhaften Daten rekonstruiert werden.
|
|
|
|
Dieses Szenario beruht nicht auf einer Hash-Kollision; vielmehr müssten
|
|
die gemischten Paritätsgleichungen selbst zufällig genau den ursprünglichen
|
|
256-KiB-Blockinhalt erzeugen. Dies ist zwar bei speziell konstruierten oder
|
|
stark repetitiven Daten mathematisch denkbar, bei realen Daten jedoch
|
|
praktisch unmöglich.
|
|
|
|
Wenn alle Festplatten fehlerfrei sind, beseitigt der Abschluss des
|
|
unterbrochenen `sync` vor weiteren Änderungen diese Unklarheit. Wenn eine
|
|
Festplatte ausgefallen ist und eine Wiederherstellung erforderlich ist,
|
|
sollten vor dem Ausführen von `check` oder `fix` keine Änderungen an den
|
|
Datenfestplatten vorgenommen werden.
|
|
|
|
Übersetzung (Translation)
|
|
Dieses Dokument ist eine automatische Übersetzung des englischen Handbuchs.
|
|
Die maßgebliche Version finden Sie im englischen Handbuch.
|
|
|
|
Copyright
|
|
Diese Datei ist Copyright (C) 2026 Andrea Mazzoleni
|
|
|
|
Siehe auch (See Also)
|
|
snapraid_log(1), snapraidd(1), rsync(1)
|