Wie kann ich meine Daten mit BTRFS deduplizieren?

15

Ich habe Lubuntu 15.04 auf meinem EEE PC 701 mit dem Dateisystem BTRFS installiert. Ich möchte meine Daten deduplizieren, weiß aber nicht wie.

wb9688
quelle

Antworten:

14

Beginnen Sie mit einer vollständigen Sicherung, damit Sie nichts verlieren, wenn etwas schief geht.

Ich glaube du suchst duperemove -d

"Duperemove ist ein einfaches Werkzeug, um doppelte Speicherbereiche zu finden und sie zur Deduplizierung einzureichen. Wenn eine Liste von Dateien vorliegt, werden deren Inhalte blockweise gehasht und diese Hashes miteinander verglichen, um zueinander passende Speicherbereiche zu finden und zu kategorisieren. Wenn die Option -d angegeben wird, sendet duperemove diese Extents zur Deduplizierung mit dem Befehl btrfs-scope-same ioctl.

Duperemove hat zwei Hauptbetriebsarten, von denen eine eine Teilmenge der anderen ist.

Readonly / Nicht-Deduplizierender Modus

Bei Ausführung ohne -d (Standardeinstellung) druckt duperemove eine oder mehrere Tabellen mit übereinstimmenden Speicherbereichen aus, von denen ermittelt wurde, dass sie ideale Kandidaten für die Deduplizierung sind. Infolgedessen ist der schreibgeschützte Modus nützlich, um zu sehen, was Duperemove tun kann, wenn es mit '-d' ausgeführt wird. Die Ausgabe kann auch von einer anderen Software verwendet werden, um die Extents zu einem späteren Zeitpunkt zur Deduplizierung einzureichen.

Es ist wichtig zu beachten, dass in diesem Modus nicht alle Instanzen übereinstimmender Speicherbereiche gedruckt werden, sondern nur diejenigen, die für die Deduplizierung in Betracht gezogen werden.

Im Allgemeinen beschäftigt sich duperemove nicht mit der zugrunde liegenden Darstellung der von ihm verarbeiteten Bereiche. Einige von ihnen könnten komprimiert sein, I / O-Vorgänge durchlaufen oder sogar bereits dedupliziert worden sein. Im Deduplizierungsmodus verarbeitet der Kernel diese Details und daher versuchen wir, diese Arbeit nicht zu replizieren.

Deduplizierungsmodus

Dies funktioniert ähnlich wie der schreibgeschützte Modus, mit der Ausnahme, dass die duplizierten Speicherbereiche, die in unserem Schritt "Lesen, Hashing und Vergleichen" gefunden wurden, tatsächlich zur Deduplizierung übermittelt werden. Nach Abschluss des Vorgangs wird eine Schätzung der gesamten deduplizierten Daten gedruckt. Diese Schätzung wird berechnet, indem die Gesamtmenge der gemeinsam genutzten Bytes in jeder Datei vor und nach der Deduplizierung verglichen wird.

Weitere Informationen zum Ausführen von duperemove finden Sie auf der Manpage von duperemove. "

Dies scheint nicht im btrfs-tools-Paket zu erscheinen, aber es gibt hier eine Git-Hub-Seite dafür . Aktuelle offene und geschlossene Ausgaben (auch bekannt als pulse) finden Sie hier.

Pakete für alle derzeit unterstützten Versionen von Ubuntu finden Sie in dieser PPA

Ich muss noch einmal wiederholen, dass das Sichern dringend empfohlen wird . Siehe: https://github.com/markfasheh/duperemove/issues/50

Zitierte Quelle: https://github.com/markfasheh/duperemove

Manpage: https://manpages.debian.org/testing/duperemove/duperemove.8.de.html

Elder Geek
quelle
Wenn ich duperemove -d eingebe, erhalte ich die
Hilfeseite
1
Was bekommen Sie, wenn Sie "man duperemove" eingeben? Ich glaube, Sie müssen die Dateien angeben, um es auszuführen. wie induperemove [options] files...
Elder Geek
/ Ich habe es erst gestern benutzt - FTR, der Befehl ist duperemove -rdh path1 path2 pathn, wo -rfür rekursive, -dtatsächlich deduplizierte und -hfür Menschen lesbare Zahlen.
Hallo-Engel
@ Hi-Angel aktualisierte Antwort - Link zur Manpage hinzugefügt
Elder Geek
3

Ich habe immer Bedup benutzt . Es ist sehr schnell und zuverlässig. Dieses Tool wird auch auf der offiziellen BTRFS-Seite erwähnt . Ich habe duperemove noch nie benutzt (bedup ist älter).

Adam Ryczkowski
quelle
2
Zu diesem Zeitpunkt befindet sich bedup nicht mehr in der aktiven Entwicklung und ist absolut veraltet.
Perkins
3
@Perkins Ich bin anderer Meinung. Ich habe gerade ein Feedback für das Problem erhalten, das ich heute gepostet habe, und mit dieser Hilfe habe ich gerade mehr als 7 GB Speicherplatz auf meinem neuen 16.04-Server "ausgeschöpft".
Adam Ryczkowski
3
Vielleicht hat es dann jemand wieder aufgegriffen. Ich hatte es nach ungefähr einem Jahr aufgegeben, weil ich nicht einmal mehr richtig nach Duplikaten suchen konnte. Allerdings ist duperemove sicherer, wenn es nicht für die Verwendung des neuen ioctl aktualisiert wurde, da es die Deduplizierung atomar im Kernelraum durchführt, anstatt eines der Duplikate zu vernichten und eine Kopie des anderen zu erstellen. Aber dann bekommt bedup tatsächlich Dateien, die klein genug sind, um in einem Baum gespeichert zu werden, was duperemove derzeit nicht kann, weil der Kernel keine Unterstützung dafür bietet.
Perkins