logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
13. Dezember 2025, 19:02:20
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Tutorials  |  Thema: Datei/Extent Referenzierung und wie man ein BTRFS Dedupliziert « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: Datei/Extent Referenzierung und wie man ein BTRFS Dedupliziert  (Gelesen 90 mal)
Sebastian
YaBB God
*****

Offline

Einträge: 812





Profil anzeigen
Datei/Extent Referenzierung und wie man ein BTRFS Dedupliziert
« am: 07. Dezember 2025, 18:42:48 »

Einleitung:

Btrfs bietet als Copy-on-Write (CoW) Dateisystem die Möglichkeit, identische Datenblöcke in sogenannten Extents gemeinsam zu nutzen. In der Praxis entstehen diese „shared extents“ jedoch nicht immer automatisch. Genau hier setzen Deduplizierungswerkzeuge wie duperemove an, die doppelte Dateninhalte nachträglich identifizieren und Extents effizient zusammenführen.

TLDR; Btrfs kann Extents gemeinsam nutzen, macht dies jedoch nicht in allen Szenarien automatisch. Deduplizierer wie duperemove erkennen identische Inhalte und sparen effektiv Speicher, was bei klassischen Dateisystemen wie EXT4 technisch nicht möglich wäre.

Hauptteil:

Btrfs speichert Daten in Extents, also zusammenhängenden Datenbereichen. Wird eine Datei kopiert, kann das Dateisystem theoretisch erkennen, dass der Inhalt identisch ist und beide Dateien auf dieselben Extents verweisen. In der Realität hängt dieses Verhalten jedoch stark vom genutzten Tool und der Art des Schreibprozesses ab.

Typische Gründe für nicht-geteilte Extents:

  • Beim Kopieren zweier Dateien mit identischem Inhalt erzeugen viele Programme neue Extents, anstatt bestehende zu verlinken. Die Entscheidung liegt beim Userspace-Tool, nicht bei Btrfs selbst. (Entwarnung gibt es beim Tool cp das als Standardverhalten [tt]--reflink=auto[/tt] verwendet. Das zum Kopieren auch viele Dateimanager intern verwenden.)
  • Viele Programme erzeugen beim Speichern eine komplett neue Datei. Dadurch greift CoW nicht auf Blockebene, da das Programm die alte Datei löscht und eine neue schreibt.
  • Auch Backup-Tools oder Build-Systeme schreiben häufig erneute Vollkopien, selbst wenn sich Inhalte kaum unterscheiden.


In solchen Fällen entstehen redundante Datenblöcke, die Btrfs nicht selbst zusammenführt. Btrfs bietet zwar Mechanismen wie reflinks oder Copy-on-Write, verlässt sich aber auf Userspace-Programme, um Extents gemeinsam zu nutzen. Ohne gezielten Eingriff bleiben doppelte Inhalte bestehen.

Genau an dieser Stelle hilft duperemove.
Das Werkzeug durchsucht gewählte Verzeichnisse, hashbasiert oder blockweise, ermittelt identische Datenbereiche und ersetzt diese durch gemeinsame Extents mittels reflink.
Damit wird die Datenlage nachträglich optimiert, ohne die Dateien selbst zu verändern.

Beispiele:

Im Folgenden ein klassischer Arbeitsablauf mit duperemove:
Code:

# Scan und Datenbank erzeugen (um nach den ersten lauf nur noch nach änderungen zu scannen) und anschliessende Deduplizierung
duperemove -r -d --hashfile=/var/tmp/duperemove.db /home/user

Fazit:

Deduplizierungstools wie duperemove sind auf Btrfs sinnvoll, weil identische Inhalte im Alltag nicht automatisch als gemeinsame Extents enden. CoW allein reicht nicht aus, da viele Anwendungen Dateien neu schreiben und dadurch unnötige Redundanz erzeugen. Besonders in Umgebungen mit vielen ähnlichen Daten – z. B. Backups, Build-Artefakte – spart eine Extent-basierte Nachoptimierung erheblich Speicher.
Klassische Journal-Dateisysteme wie EXT4 unterstützen keine Extent-basierte Deduplizierung. Die grundlegende Architektur verhindert das Teilen von Datenblöcken zwischen verschiedenen Dateien, wodurch Werkzeuge wie duperemove dort technisch nicht möglich sind.

Quellenangabe:


Nachtrag:

In meinen Alltag entstehen hauptsächlich nicht geteilte Extents wenn ich von einen anderen Datenträger Dateien in mein BTRFS kopiere und diese Dateien in anderen Verzeichnissen bereits vorhanden sind. Arbeite ich inhalb eines BTRFS können fast alle meine Tools referenzieren statt zu kopieren.

LG
Sebastian
Gespeichert

Wo die digitale Kultur blüht, nutzen Angreifer Emotionen, Gewohnheiten und Markenbindung aus. Der Schutz beginnt nicht mit Technik, sondern mit Bewusstsein. Wer sich informiert, vorsichtig klickt und sichere Tools nutzt, kann auch unbeschwert an der Digitalkultur teilnehmen.
Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Tutorials  |  Thema: Datei/Extent Referenzierung und wie man ein BTRFS Dedupliziert « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!