Schlagwort-Archiv: zfs

Guide: Cleaning up ZFS-Snapshots

Starting a guide-section for problems i encountered. For me to remember and for others to find.

When using a automated backup mechanism for ZFS-snapshots it can get a) very messy and b) when moving lots of files crowed in terms of diskspace.

One solution is to delete some of them. Let’s assume you do not need any of them anymore there are various ways to get rid of them.


#!/bin/bash
for snapshot in `zfs list -H -t snapshot | cut -f 1`
do
zfs destroy $snapshot
done

Works, but a bit plain.

next up: the oneliner


zfs list -H -t snapshot | cut -f 1 | tr '\n' ','| xargs zfs destroy

(-H removes the heading from the output which is needed for scripts, cut -f 1 takes the first chunk,tr takes the newline and replaces it with a comma, xargs feeds zfs destroy with the generated list)

zfs list -t snapshot -H | cut -f 1 | xargs -n 1 zfs destroy -v

(same as above, except here we are not substituting the newline with a comma using tr, but telling xargs to give one line at a time as a argument to zfs destroy.)

finally: RTFM (man zfs)
you can define a range of snapshots with the %-sign.

zfs destroy -v tank@fresh%current

works fine, but if you want to clean them all out you can do a single %-sign and get them all.

zfs destroy -v tank@%

and be done with it. although there seems to be a problem if there are dependencies on the snapshots. i keep getting a clean -vn output with snapshots but when removing the -n i get real zfs-filesystems that want to be deleted and unmounted first. stick to the oneliner for now.

Hint: use zfs destroy -nv for a test-run to check your selection (-n for a dry run and -v for verbose output). use -r for recursive deletion, -R for recusive deletion of snapshots with dependencies.

Luftspeicher

Ich verwende für so ziemlich alles ein Macbook Air. Der Speicher reicht natürlich nicht lange, dafür ist die SSD schneller als alles was ich bisher kannte.

Die Musik, Backups, Filme, etc. habe ich schon lange auf eine NAS mit ZFS ausgelagert, jedoch ist lokaler Speicher im Rechner manchmal nicht zu ersetzen. Vor kurzem hat Transcend die JetDrive Lite-Reihe angekündigt, welche meine Bedüfnisse unter Umständen abdecken könnte.

Letztendlich bekommt man eine SD-Karte, die so kurz ist, dass sie nicht aus dem Gehäuse ragt sobald sie eingesetzt ist. Bei mir ist es das 128GB-Modell für das mid-2011-Air geworden (JetDrive Lite 130).

Das funktioniert im groben ganz gut, soll heißen: Karte sitzt, wird erkannt und speichert was man will.
Ein Nachteil bei den älteren Macbooks ist, dass der SD-Slot über USB2 angebunden ist, und damit die Transferrate auf maximal 40MB/s beschränkt ist. Aber besser als nichts.

Die Karte ist gut verarbeitet, sitzt bündig am Gehäuse und macht was sie soll. Meistens.
Als erstes habe ich die Karte mit ZFS getestet und nach zwei Tagen schon 4 Datenfehler gehabt. Ist natürlich nicht gespiegelt gewesen, habe also nichts davon. Ausser das Wissen, dass die Karte (wie wahrscheinlich jeder andere Flashspeicher) gerne mal ein paar Bits umfallen lässt.

Im Moment ist wieder ein HFS+ drauf, der Effekt ist klein. Vermutlich sehe ich dank fehlenden Checksums die Fehler einfach nicht. Argh!

Zwei SD-Kartenslots und eine weitere Karte würden helfen, aber dann wird alles ein wenig albern, oder? Ich würde so gerne einfach eine ECHTE SSD in mein Air reinlöten können. Schade auch.

Ein Lobgesang auf Datensicherheit

Ich bin seit geraumer Zeit großer Fan von FreeBSD, zuerst wegen der Stabilität und jetzt auch wegen ZFS. Folgende Meldung meines Servers nachdem ich eine von mehreren Festplatten rausgerupft entfernt und danach mit dem Pool weitergearbeitet habe. Damals mit mdadm und lvm unter Gentoo hat sowas deutlich mehr Schmerzen verursacht.

~ $ zpool status
pool: zroot
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Wed Feb 12 19:18:14 2014
312G scanned out of 1.67T at 237M/s, 1h40m to go
104G resilvered, 18.21% done

Hatte ich schon erwähnt, dass ich die Wiederherstellung nicht mal selbst starten musste sonder alles automatisch passierte? Hach, ZFS!

Und hatte ich schon die checksums, snapshot, dedup … Hach!

FreeBSD 10 auf raidz1-Pool

Habe mich eine Weile geärgert, aber gerade den Fehler gefunden. Ein frisches FreeBSD-10, per USB-Stick auf drei leeren Platten in einem raidz1 und GPT  installiert, bootet nicht. Erst dachte ich , dass es an meinem Motherboard (Asus Z87-A (C2)) liegt, das kann jedoch GPT. Der Fehler sitzt im Installer von FreeBSD, der es versäumt nach dem Anlegen des Pools eine aktive Platte zu setzen.

gpart set -a active adaX

Und alles ist gut.