ZFS Consolidating Two Servers To One

Hey folks -

I think the answer is: "Everything will work out properly" but I wanted to run it by the experts. I have two FreeBSD servers here at home and I'm considering consolidating them into a single server. They're both making use of ZFS, and my main concern is disk renumbering and how that may affect the ZFS pools (if at all).

At a high level, one of the servers is my "log in and do everything on it" server. The other is my storage server with lots o' drives. The latter has a rack-mount chassis. The goal will be to move the motherboard of the "do everything" server into the chassis of the storage server, connect up all of the drives, and go. The only challenge I think I see is that currently, the first server's OS is installed on a mirrored ZFS pool, using drives ada0 and ada1. The storage server is also currently using ada0 and ada1 (along with ada[2-8]). I need to move the OS volume with the motherboard, so that means there will be some renumbering.

Will ZFS figure that out for me once the new, combined server spins up? Or will I have to help it along?
 
ZFS generally figures it out 'automatigically'. One thing to note though, make sure the pools themselves are named differently or you'll get name-clashes. So don't try to import a pool named 'zroot' if you already have a pool named 'zroot'. Also watch out for mountpoints, you don't want to import a second pool that mounts the same filesystems as the first pool.
 
So don't try to import a pool named 'zroot' if you already have a pool named 'zroot'. Also watch out for mountpoints, you don't want to import a second pool that mounts the same filesystems as the first pool.

Thanks. I'm not concerned with mount points (/ vs /local) and name collisions (root vs local). The aforementioned naming is unique to each, so that should work fine.

Now to make sure that behemoth of a motherboard will fit in the chassis...
 
If you are paranoid (I would be ...)

While the old two systems are still up and running, write down (for example on a piece of paper) which ZFS pools exists, what file systems and mount points are in them, and what physical drives they use. You can for example use "camcontrol identify" to get the model and serial numbers or the WWN of all the drives. Ideally, name all your partitions, using gpart, with clear and unique names. That will make debugging easier, and is generally good administration practice.

Start with the drives from just one server connected, boot the machine, and make sure everything is fine. Shut it down, and connect the drives from the other server, and now you should see all the ZFS pools from both, all mounted on the correct mount points. If it is less than perfect, use the above piece of paper to untangle the spaghetti.

This all relies on all pools and mount points being distinct on both systems, as SirDice said above!
 
Back
Top