I'm a native Solaris guy and as I look into more Linux use, I'm a little confused about a theme I'm seeing in some posts about ZFS on linux.

The posts refer to the use of device names when defining a pool and then trouble with those device names when the pool is moved from one host to another or if a disk controller is changed, etc. Many talk about using "zpool import -d /dev/disk/by-id" to fix this problem because /dev/sda, /dev/sdb, etc might not match-up on the new system.

This seems odd to me. ZFS on Solaris doesn't really care about device names, per-se, after the pool is created. Each disk in a pool is tagged with metadata that identifies the disk, the pool it's in, and what it's role is within that pool. So, taking an entire array and exporting/importing it to new server with completely different disk controllers and /dev layout is effortless.

Once the pool is imported, then device paths and ID's are important so you can do things like add/remove/replace drives, but from a holistic pool view, it's not really baggage you have to carry from one system to another.

When an import command is run, you can see each disk polled to find all of the members automatically and the /dev paths are mapped accordingly.

Is this different on the Linux implementation of ZFS? If not, what am I missing here?

Thank you

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.