After yesterday’s success with the ZFS configuration I’m hoping to perform some snapshots and get the compression to be a bit better. I was a bit disappointed with the compression ratio yesterday which was a pitiful 1.15x. I’ll be cheating and downloading a mail log file from one of our sendmail servers! So firstly I’ll set the copies to one and use the default compression method of lzjb. Remember that we can’t set the co ies to 1 and expect the system to delete one, so I’ll hose the data and start again when its reset.
# zfs copies=1 DATA # zfs compression=on DATA # cd /DATA # rm * # ls -lah total 4 drwxr-xr-x 2 root wheel 2B Oct 17 19:35 . drwxr-xr-x 20 root wheel 512B Oct 16 22:27 ..
Now lets copy in the file and see how much space it takes…
# cp /home/dan/maillog ./ # ls -lah total 53055 drwxr-xr-x 2 root wheel 3B Oct 17 19:36 . drwxr-xr-x 20 root wheel 512B Oct 16 22:27 .. -rw-r----- 1 root wheel 263M Oct 17 19:36 maillog # zfs get available,used,compressratio,compression DATA NAME PROPERTY VALUE SOURCE DATA available 3.56T - DATA used 102M - DATA compressratio 2.59x - DATA compression on local
Still not great, so lets select the gzip compression after first deleting the file…
# zfs compression=gzip DATA # cp /home/dan/maillog ./ # zfs get available,used,compressratio,compression DATA NAME PROPERTY VALUE SOURCE DATA available 3.56T - DATA used 30.8M - DATA compressratio 8.74x - DATA compression gzip local
Much better!
Snapshots
This must be the coolest feature of ZFS, lets hope it works in a manner i hope for. I’m going to add a new directory for my collection of stuff then snapshot it. After that i’ll hose the data a try to recover it.
# zfs create DATA/dans_stuff # cp /home/dan/Downloads/FreeBSD-8.2-RELEASE-amd64-memstick.img /DATA/dans_stuff/ # mv maillog ./dans_stuff/ # cd dans_stuff/ # ls FreeBSD-8.2-RELEASE-amd64-memstick.img maillog
Now for the snapshot…
# zfs snapshot DATA/dans_stuff@20111017
So looking for the .zfs directory and couldn’t find anything ?? Whats gone wrong??? Well upon careful reading through the man zfs
I realised that the .zfs folder is invisible by default, but we can unhide it with the following:
# zfs snapdir=visible DATA/dans_stuff # cd .zfs # ls shares snapshot # cd snapshot/ # ls 20111017 # ls -lah total 2 dr-xr-xr-x 3 root wheel 3B Oct 17 19:47 . dr-xr-xr-x 4 root wheel 4B Oct 17 19:47 .. drwxr-xr-x 2 root wheel 4B Oct 17 19:50 20111017 # cd 20111017/ # ls FreeBSD-8.2-RELEASE-amd64-memstick.img maillog
Now I’ve deleted the maillog file and I want it back as it was, I’ll do a rollback.
zfs rollback DATA/dans_stuff@20111017 # ls -lah total 811440 drwxr-xr-x 3 root wheel 4B Oct 17 19:50 . drwxr-xr-x 3 root wheel 3B Oct 17 19:50 .. dr-xr-xr-x 4 root wheel 4B Oct 17 19:47 .zfs -rw-r--r-- 1 root wheel 1.0G Oct 17 19:50 FreeBSD-8.2-RELEASE-amd64-memstick.img -rw-r----- 1 root wheel 263M Oct 17 19:43 maillog
Finally we can destroy the the snapshot.
zfs destroy DATA/dans_stuff@20111017
Well it all seems to work as advertised so far. I’ll get a more ‘industrial’ test online as and when, then we’ll see what it can do!