Archiv für den Monat: Juni 2014

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.