Notes on building ZFS pools on linux

First off. The examples I’ve seen out there stating how to create a zfs pool on linux call for you to name the pool drives by their drive names (sdc, add, see, etc…) I would definitely recommend against this. If drives move in the system ZFS will not be able to identify those drives as part of it’s array. Use the device-id instead. You can see it by doing the following:
$ ls -lah /dev/disk/by-id/
you will get a list of device id’s followed by their common name. Always add these by their common name so if you get…

lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0JK88 -> ../../sdc
lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0JTW6 -> ../../sde
lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0KBKY -> ../../sdd
lrwxrwxrwx 1 root root  9 Aug 12 16:26 ata-ST3000DM001-9YN166_S1F0KDEE -> ../../sdb

Then create your pool with
#zpool create -f mynewpool raidz ata-ST3000DM001-9YN166_S1F0JK88 ata-ST3000DM001-9YN166_S1F0JTW6 ata-ST3000DM001-9YN166_S1F0KBKY ata-ST3000DM001-9YN166_S1F0KBKY

There is of course an alternative (which is how I fixed my issue with the letters changing). If you create the pool above with
#zpool create -f mynewpool raidz sdb sdc sdd sde
you can always export and reimport the pool
#zpool export mynewpool
#zpool import mynewpool
And ifs will automatically pickup the real device-id’s. You would just need to remember to add that step just after you get the pool built.

I have a comment to an original post on how to zfs send/receive to move the data from your old zfs directories to the new ones.

An excellent reference for zfs on linux is here on

And of course a link to the ZFS Admin Guide from Oracle




Leave a Reply

Line and paragraph breaks automatic.
XHTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

WordPress Anti-Spam by WP-SpamShield