Welche Dateisysteme bieten Snapshot-Funktionen, mit denen Benutzer Daten wiederherstellen können?

8

Ich arbeite an einem Projekt, das der Jugend Linux beibringen wird. Da wir wissen, dass sie dazu neigen, Elemente in ihren Home-Verzeichnissen zu löschen oder zu beschädigen, suchen wir nach einer guten Snapshot-Option. Wir haben keinen Zugriff auf ausgefallene Tools von großen Speicheranbietern und hoffen, eine Lösung auf Dateisystemebene zu finden.

Ich habe viel über btrfs gelesen, aber wenig Erfahrung. Ich habe einige Erfahrungen mit LVM, bin aber mit der Snapshot-Funktion nicht vertraut. Haben entweder das Dateisystem oder ein anderes die Option, Snapshots entweder nach Bedarf oder nach Zeitplan zu erstellen? Dann machen Sie diesen Snapshot immer ohne Root in einem .snapshot-Ordner in jedem Home-Ordner verfügbar?

Mit dieser Lösung kann ein Benutzer Backups bei Bedarf innerhalb eines Zeitfensters von beispielsweise 24 bis 48 Stunden selbst wiederherstellen. Wir werden einen weiteren Sicherungsprozess für das System und weitere globale Sicherungen durchführen. Wir möchten jedoch nicht, dass dieser Prozess von Studenten angewendet wird, die nur „Fehler“ machen.

Graue Rasse
quelle
LVM erstellt einen Blockgeräte-Snapshot. Das Dateisystem (die meisten modernen) auf der Partition wird syncunmittelbar vor der Erstellung des Snapshots bearbeitet. Um einige Daten aus dem Snapshot wiederherzustellen, müssen Sie sie bereitstellen. Beachten Sie jedoch, dass jeder Schnappschuss eine Größe hat. Der Speicherplatz wird zum Speichern von Unterschieden zwischen dem Snapshot-Status und dem aktuellen Status verwendet. Daher ist das Speichern des Snapshots als Backup keine gute Idee.
Hub
@Hub Danke für das Feedback. Vielleicht ist "Backup" das falsche Wort. Da dies keine primäre Form der Sicherung oder Speicherung ist. Wir sind uns bewusst, dass Speicherplatz für Unterschiede oder die vom Dateisystem / Volume Manager verwendete Technik benötigt wird. Ziel ist es jedoch, einen temporären Schnappschuss bereitzustellen, damit Schüler, die Fehler machen, frühere Informationen schnell wiederherstellen und abrufen können. Sie werden trotz unserer Schulung keine Best Practices zum Speichern ihrer eigenen Backups anwenden, bevor sie Änderungen vornehmen, und möchten ihnen daher helfen, dies zu überwinden.
Gray Race
1
Ich habe keine Erfahrung dieser Art, aber ich denke, Sie brauchen so etwas: en.wikipedia.org/wiki/Versioning_file_system LVM passt nicht, weil Sie jede Datei mounten und kopieren müssen (oder geänderte Dateien verfolgen müssen). etwas wiederherstellen. LVM hat keine interne "Wiederherstellung".
Hub

Antworten:

6

Unter Linux ist btrfs Ihre Hauptoption für Snapshots innerhalb eines Dateisystems, ist jedoch noch nicht stabil, obwohl es einige fsck- und Reparatur-Tools enthält .

ZFS ist eine weitere Option von Solaris. Während Sie dies theoretisch unter Linux verwenden könnten, ist es meistens nur im Userland implementiert (obwohl an einer kernelbasierten Implementierung gearbeitet wird) und nicht in Standard-Linux-Distributionen.

Diese LVM-Antwort enthält einige Details zu den Vor- und Nachteilen der Verwendung von LVM-Snapshots sowie einige btrfs / ZFS-Links. Bei einigen Dateisystemen (ext3 und XFS) sorgt LVM dafür, dass der FS eingefroren wird, bevor der Snapshot erstellt wird. LVM-Snapshots können jedoch Leistungsprobleme aufweisen und dennoch einige Fehler aufweisen.

Ich denke nicht, dass LVM eine großartige Lösung für Ihre Anwendung "Schneller Schnappschuss von Benutzerdaten" ist, und btrfs / ZFS sind noch nicht geeignet [Stand 2011].

Stattdessen möchten Sie vielleicht sehen rsnapshot , die ein User-Space - Tool ist , dass effiziente Snapshots erstellt jedes Dateisystem verwenden, ohne LVM zu verwenden. Da es rsync verwendet und die Snapshots in aufeinanderfolgenden Verzeichnissen speichert und feste Verknüpfungen zwischen verschiedenen Snapshots verwendet, wenn sich eine Datei nicht geändert hat, kann es selbst bei relativ großen Dateigruppen überraschend schnell ausgeführt werden. Es wird häufig für Sicherungen verwendet, kann aber auch für diese Art von Benutzerdaten-Snapshot-Anforderung verwendet werden. Mit ein wenig Setup kann jeder seine Snapshot-Dateien mithilfe von schreibgeschütztem NFS oder Samba wiederherstellen - siehe diesen Abschnitt HOWTO Dateien wiederherstellen . Dateien können mit Standard-Linux-Tools wiederhergestellt werden, da rsnapshot das Quellverzeichnis in jedes Snapshot-Verzeichnis spiegelt.

rsnapshot ist mit seinen Standardfunktionen sehr flexibel und da es in Perl geschrieben ist, ist es recht einfach, es anzupassen, z. B. wenn Sie On-Demand-Snapshots bereitstellen möchten. Die Hauptnachteile im Vergleich zu Dateisystem-Snapshots sind Geschwindigkeit und Speicherplatz. Jede Datei, die sich ändert, führt zu einer neuen Kopie im Snapshot, während Dateisystem-Snapshots nur neue Blöcke in die Datei kopieren.

RichVel
quelle
Vielen Dank für das Follow-up. Ich werde mir rsnapshot am Montag genauer ansehen.
Graues Rennen
2

Nur getupft DIESE Seite auf Wikipedia gibt es eine Snapshot - Funktionen Spalte - nur bewusst in der Zukunft , dies sein , die Menschen wollten.

Chopper3
quelle
1

Sie sollten für diesen Zweck keine LVM-Snapshots verwenden, da diese einen großen Leistungsverlust bedeuten (insbesondere, wenn mehrere "rollende" Snapshots gleichzeitig aktiv sind). Leider hat Linux einfach keine ausgereiften Dateisysteme mit Unterstützung für Snapshots.

Daher empfehle ich, FreeBSD auf Ihrem Dateiserver zu verwenden. Das Standardformat des UFS2-Dateisystems unterstützt Snapshots. FreeBSD enthält auch eine ordnungsgemäße ZFS-Implementierung (im Gegensatz zu dem hässlichen Kludge unter Linux) mit Snapshots und vielen anderen sehr erweiterten Funktionen. In Verbindung mit einem einfachen Tool wie diesem ähnelt es dem, was High-End-Speicheranbieter wie NetApp anbieten.

Wenn Sie einen Server haben, der als Dateiserver fungieren soll, sollten Sie sich FreeNAS ansehen, das FreeBSD und ZFS gut in ein Appliance-ähnliches System packt.

einrasten
quelle
1
Guter Punkt, und UFS2 oder ZFS können unter FreeBSD verwendet werden, während sie unter Linux nicht (ZFS) sind. In der ursprünglichen Frage wird jedoch erwähnt, dass der Jugend Linux beigebracht wird, sodass ein separates FreeBSD-NAS erforderlich wäre. Ich weiß auch nicht, ob die snapshotverknüpften FreeBSD- Befehle von Nicht-Root-Benutzern verwendet werden können. Da die Schüler Linux lernen würden, ist es am besten, wenn die Snapshots von Nicht-Root-Benutzern erstellt und verwendet werden können. rsnapshotDies ist relativ einfach, und mit einigen Einrichtungsarbeiten könnte jeder Benutzer seinen eigenen Snapshot-Baum haben, der ihm gehört.
RichVel
Ich gehe davon aus, dass die Jugendlichen keinen Zugriff auf den Dateiserver haben, sondern dass er mit NFS oder ähnlichem auf den Linux-Workstations gemountet ist, auf denen sie Linux lernen. Sie müssen die Architektur des Dateiservers nicht kennen. Das verknüpfte snapshotDienstprogramm verfügt über die Funktionalität, mit der die Snapshots den Benutzern zur Verfügung gestellt werden können, fast genauso wie bei NetApp. Es ist nicht erforderlich rsnapshot, Snapshot-Imitationen manuell zu erstellen, wenn Sie ein besseres Betriebssystem (für diesen Zweck) verwenden können, das Snapshots im Dateisystemcode implementiert. Richtige Schnappschüsse sind atomar.
Snap
Dies ist eine praktikable Option. Ich bin besorgt über das Dateisystem und den Netzwerk-Overhead mit NFS. Im Rahmen des Lernens von Linux werden die Schüler Code kompilieren, Datenbanken ausführen und andere E / A-intensive Prozesse durchführen. Sie werden all diese Arbeiten in ihren Heimverzeichnissen erledigen. Wenn dies über NFS vernetzt ist, mache ich mir Sorgen um eine Leistungsminderung. Dies betrifft insbesondere ein Homebrew-System, da unser Produktions-NAS aus verschiedenen politischen Gründen nicht verfügbar ist. Die Snapshot-Funktionalität ist der Basisleistung untergeordnet, da wir zwar über globale Sicherungssysteme verfügen, jedoch Self-Service-Snapshots wünschen.
Grey Race
Datenbanken über NFS klingen etwas haarig, obwohl es anscheinend funktionieren kann, wenn die Last nicht zu hoch ist und Sie eine aktuelle DBMS-Version verwenden: serverfault.com/questions/30525/mysql-5-1-34-on-nfs-w- netapp . Sie müssten auch sowohl FreeBSD als auch Linux in Ihrem Labor ausführen. Dies kann gut sein, wenn die fähigeren Schüler helfen (etwas Neues zu lernen), oder schlecht, wenn Sie alles selbst erledigen und wenig Zeit haben.
RichVel
In Bezug auf die Aussage "hässlicher Kludge in Linux gefunden" gehe ich davon aus, dass sich dies auf zfs-fuse.net bezieht (was in der Tat nach einer suboptimalen Art der Implementierung klingt). Beachten Sie jedoch, dass ZFS auch in einer "normalen" Implementierung, zfsonlinux.org , verfügbar ist (obwohl es aufgrund von Lizenzproblemen nicht direkt im Kernel enthalten ist).
Hlovdal