GNU / Linux hat einen Union Mount, der Dirs überlagert. Sie können also ein beschreibbares Verzeichnis über ein schreibgeschütztes Verzeichnis mounten. Wenn das beschreibbare Verzeichnis nicht angehängt ist, bleibt das schreibgeschützte Verzeichnis unberührt.
Ich suche nach der gleichen Funktionalität für Blockgeräte - vorzugsweise mit dem beschreibbaren Teil, der in einer Datei gespeichert ist. Also würde ich gerne etwas machen wie:
device-setup /dev/newdevice /dev/read-only-device overlayfile
Wenn ich in / dev / newdevice schreibe, sollten die Änderungen in einer Überlagerungsdatei gespeichert werden. Wenn ich die Sektoren lese, in die geschrieben wurde, sollte ich die Daten aus der Überlagerungsdatei erhalten. Wenn ich Sektoren lese, in die nicht geschrieben wurde, sollte ich die Daten von / dev / read-only-device erhalten.
Gibt es so ein Tool?
quelle
Antworten:
Sie können dies mit dem Geräte-Mapper und seinem
snapshot
Ziel tun .Grundsätzlich tun Sie dasselbe wie bei LVM, wenn Sie einen beschreibbaren Snapshot erstellen.
Dann können Sie auf das überlagerte Gerät als zugreifen
/dev/mapper/newdevice
.Wenn Sie gleichzeitig Zugriff auf das Originalgerät benötigen, haben Sie folgende Möglichkeiten:
Und greifen Sie darauf zu
/dev/mapper/originaldevice
.Sie können auf dieses Gerät schreiben. Zusätzlich zu den auf das Snapshot-Gerät geschriebenen Chunks enthält die Overlay-Datei eine Kopie der Chunks, die beim Schreiben auf den Snapshot-Ursprung überschrieben wurden.
Die Überlagerungsdatei kann eine Sparse-Datei sein. (Erstellen Sie sie beispielsweise als
truncate -s10G the-file
) und müssen nicht so groß sein wie das Originalgerät. Sie können feststellen, wie voll es mit istdmsetup status "$newdevname"
.Hinweis: Für ein Snapshot-Gerät gelten Größen- und Inhaltsanforderungen .
quelle