ZFS on Linux: How to find the arc stats (was arcstat.py)

This has now changed; run the following to find the adaptive read cache stats (ARC):   cat /proc/spl/kstat/zfs/arcstats   You can gleam some really useful information out of how your RAM is being utilised and what your required ARC size might be from the results – this may be a topic for a future post, […]

ZFS: zpool replace returns error: cannot replace, devices have different sector alignment

Trying to replace a failed SSD in a zpool we encountered the following error:   cannot replace 4233944908106055 with ata-INTEL_SSDSC2BW240A4_CVD02KY2403GN: devices have different sector alignment   The pool was aligned to 4k sectors – e.g. ashift=12 – whereas the new SSD was aligned to 512b sectors. There’s a quick and easy fix to this – […]

ZFS on Linux: Zpool import failed

We upgraded a Proxmox box today which was running ZFS and ran into this rather scary looking error:   zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion `nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0′ failed.   Zpools would not import and zpool status did not work. Resolved (so far, anyhow, still testing) by running:   apt-get install zfsutils   Another good reason […]

ZFS: Adding a new mirror to an existing ZFS pool

  Mirrored vdevs are great for performance and it is quite straight-forward to add a mirrored vdev to an existing pool (presumably one with one or more similar vdevs already):   zpool add [poolname] mirror [device01] [device02] [device03]   If it’s a two-way mirror you will only have two devices in the above. An example […]

ZFS on Linux (Ubuntu) – arcstat.py is now available! How do you run it?

UPDATE: This information is now out of date, see new post here.   One very handy ZFS-related command which has been missing from the standard ZFS on Linux implementation has been arcstat.py. This script provides a great deal of useful information about how effective your adaptive read cache (ARC) is.   ZFSoL 0.6.2 includes it, […]

ZFS: Renaming a zpool

  If you’ve imported a pool from another system and want to change the name or have just changed your mind, this is actually quite straightforward to do. Run the following (as root): zpool export [poolname] As an example, for a pool named tank which we wish to rename notankshere: zpool export tank Then run: […]

Western Digital Green drive resilver rates

    We get asked fairly regularly about resilver rates for ZFS pools – these matter as it impacts on how quickly a vdev with faulty disks can rebuild data onto a fresh disk, as well as how quickly you can swap one disk for another. The longer it takes to rebuild the vdev after […]

ZFS on Ubuntu error: Failed to load ZFS module stack

  If you see the above error in a fresh installation of ZFS on Ubuntu one cause may be that the package build-essentials wasn’t installed prior to installing the ubuntu-zfs package; run:   sudo apt-get purge ubuntu-zfs   then check for the remaining packages with the following:   dpkg –list | grep zfs   …and […]

ZFS: How to change the compression level

By default ZFS uses the lzjb compression algorithm; you can select others when setting compression on a ZFS folder. To try another one do the following:   sudo zfs set compression=gzip [zfs dataset]   This changes the compression algorithm to gzip. By default this sets it to gzip-6 compression; we can actually specify what level […]

ZFS: Replacing a drive with a larger drive within a vdev

One way to expand the capacity of a zpool is to replace each disk with a larger disk; once the last disk is replaced the pool can be expanded (or will auto-expand, depending on your pool settings). To do this we do the following:   zpool replace [poolname] [old drive] [new drive]   e.g.:   […]