FreeBSD ZFS: Alle Snapshots eines zfs Filesystems löschen

Nutzt man automatisch erzeugte Snapshots mit ZFS kann es schon vorkommen, dass davon sehr viele entstehen. Aus diesem oder auch anderen Gründen kann es notwendig werden, alle Snapshots eines Filesystems zu löschen.
Wie geht man dabei vor? Es geht kompliziert und mit Shell-Zauberei (siehe meine Quelle) oder ganz einfach mit

zfs destroy -r tank/FILESYSTEM@%

Quelle: https://sysadminman.net/blog/2008/remove-all-zfs-snapshots-50

FreeBSD: Dateiduplikate finden

Beschreibung

Wie findet man in einem Filesystem bzw. einem oder mehreren Verzeichnissen Dateien, die nicht unbedingt den gleichen Namen tragen oder im selben Verzeichnis liegen?

Hier kann das Tool fdupes (fdupes in der Wikipedia.org) helfen. Dieses existiert sowohl für FreeBSD, als auch für Linux. Das Tool bietet noch ein paar Besonderheiten:

  • Es vergleicht Dateien nicht nur anhand der Größe, sondern bildet über die Datei eine Checksumme und vergleicht diese. Anschließend erfolgt ein byte-to-byte Vergleich
  • Suchergebnisse können aufgelistet oder auch gleich gelöscht werden
  • Es besteht auch die Möglichkeit,  Duplikate per Hardlink (Hardlink in der Wikipedia.de) auf nur eine existierende Datei zu verlinken (Notwendig ist Option „-L“, welche ich nur unter Debian gefunden habe)

Installation

Unter FreeBSD kann es entweder mittels pkg oder über die Ports Collection (/usr/ports/sysutils/fdupes) installiert werden:

PKG: pkg install fdupes
PORTS: cd /usr/ports/sysutils/fdupes && make install clean

Anwendung

Als Beispiel nehme ich das Verzeichnis /usr/ports/lang auf einem FreeBSD System und wende die Parameter -r (rekursiv), -S (zeige Dateigröße) und -n (keine leeren Dateien) auf das aktuelle Verzeichnis (./) an:

root@bsd:/usr/ports/lang/ > fdupes -r -S -n ./
6308 bytes each:
./php5/files/extra-patch-php-fpm-ipv6
./php55/files/extra-patch-php-fpm-ipv6
./php56/files/extra-patch-php-fpm-ipv6

915 bytes each:
./pypy/files/patch-lib-python__2.7__distutils__sysconfig_pypy.py
./pypy-devel/files/patch-lib-python__2.7__distutils__sysconfig_pypy.py

1691 bytes each:
./pypy/files/patch-lib-python__2.7__distutils__command__install.py
./pypy-devel/files/patch-lib-python__2.7__distutils__command__install.py

178 bytes each:
./php52-extensions/pkg-descr
./php53-extensions/pkg-descr
./php5-extensions/pkg-descr

Zu erkennen ist, dass es in unterschiedlichen Verzeichnissen Dateien mit gleicher Größe und in diesem Fall mit gleichem Namen gibt.
Vergleicht man nun den Dateiinhalt (von Textdateien) miteinander, kann man verifizieren, ob es sich tatsächlich um die gleichen Files handelt:

root@bsd:/usr/ports/lang/ > diff -y --suppress-common-lines ./php55/pkg-message.mod ./php56/pkg-message.mod
root@bsd:/usr/ports/lang/ >

Diff wird mit den Parametern -y (zwei Spalten) und –suppress-common-lines (unterdrücke gleiche Inhalte) aufgerufen. Das Ergebnis des Vergleiches mit DIFF ist, dass es keine Unterschiede gibt.

 

Natürlich gibt es noch mehr Parameter, mit denen man fdupes aufrufen kann.

 

Was kann man nun damit machen?

Ein schönes Beispiel ist z. B. Backup mit fdupes und rsync (http://krausens-online.de/fdupes-hardlinks-und-backup-mit-rsync/).
Oder man sucht einfach nur nach gleichen Dateien.

FreeBSD 9.0 erschienen

Free BSD ist in der Version 9.0 erschienen

Seit 12.01.2012 ist FreeBSD in der Version 9.0 erschienen -Link-

Einige der interessantesten Veränderungen sind sicher
– das Update auf ZFS Version 28, welches nun auch Deduplizierung unterstützt. Außerdem gibt es jetzt die Möglichkeit, einen ZFS Mirror gezielt aufzuspalten (split) und auch im Nachhinein aus einem einzelnen, nicht redundanten ZFS Volume ein RAIDZ zu basteln.
– Update auf NFS v4
– Der überarbeitete Installer

Erhältlich ist FreeBSD für alle relevanten Plattformen (x86 32bit und 64bit, PowerPC, Itanium ia64 und SPARC).

Mehr dazu auch:FreeBSD is a registered trademark of The FreeBSD Foundation. The FreeBSD logo and The Power to Serve are trademarks of The FreeBSD Foundation.

Wikipedia 

Offizielle Freebsd Release Notes 

– Ausgabe 01/2012 des BSD Magazine

 

Howto: FreeBSD mit ZFS und Verschlüsselung

Im Wiki auf BSDForen.de bin ich auf den Beitrag „ZFS (raidz), Geli und USB Boot“ gestoßen. Hier wird sehr gut und Schritt für Schritt erklärt, wie FreeBSD installiert werden kann, um von USB zu booten und wie man ZFS auf einem durchgehend verschlüsseltem System nutzen kann.

Hat mir sehr geholfen, die Eigenschaften von FreeBSD besser zu verstehen.