Führen Sie Dateischreibvorgänge unter Linux als In-Memory-Fake durch

Führen Sie Dateischreibvorgänge unter Linux als In-Memory-Fake durch

Ich möchte einen Linux-Prozess in einer Fake-Write-Umgebung ausführen, in der alle Dateischreibvorgänge (mit demschreiben(2)Systemaufruf) werden in einen Cache im Arbeitsspeicher umgeleitet und nachfolgende Lesevorgänge (nur derselben Region) werden aus dem Cache ausgeführt. Der Cache kann nach Abschluss des Vorgangs gelöscht werden.

Die Dateien, die der Prozess ändern wird, sind riesig (mehrere Terabyte), aber die Gesamtmenge der geschriebenen Daten ist klein (ein paar Megabyte). Overlayfs ist also keine Option, da ich nicht mehrere Terabyte freien Speicherplatz habe.

Bitte beachten Sie, dass ich mich nicht um gefälschte Geräteknoten oder gefälschte Berechtigungen kümmere.gefälschte Wurzel(1)hilft mir nicht.

Dies sollte mit LD_PRELOAD umsetzbar sein,ptrace(2),Sicherung(8)oderDM-Schnappschuss. Gibt es ein Tool, das dies für mich erledigt, wie dieses:

$ fakewrites ./myprog myfile.dat

Antwort1

https://launchpad.net/libeatmydata

LD_PRELOAD-Bibliothek, die alle Formen des sicheren Schreibens von Daten auf die Festplatte deaktiviert. fsync() wird zu einem NO-OP, O_SYNC wird entfernt usw. Die Idee besteht darin, sie beim Testen zu verwenden, um schnellere Testläufe zu erreichen, bei denen keine echte Haltbarkeit erforderlich ist.

verwandte Informationen