On 2012-12-19 07:01, Christopher J. Ruwe wrote:
On Mon, 17 Dec 2012 16:00:06 -0600
dweimer <dwei...@dweimer.net> wrote:

I recently migrated a machine that was built on a VM to physical
hardware using the zfs send -R option against a snapshot of its root
zfs setup.  I went from smaller drives to larger, both using a
mirrored zpool.  However the devices were different, the device IDs
on the VM were da0 and da1, the device IDs on the physical hardware
were ada0 and ada1.  I had used labels when creating the gpt layout
to plan for this. And all worked great, in fact it was the fastest I
have ever converted a virtual machine to a physical machine.
After I finished  though, I got curious, was it actually necessary
for me to mount the new boot zfs partition while running on the live
cd and copy the zpool.cache file I had created when creating the
zpool or would have the existing cache file that would have been
included in the zfs send contained the right information?  As the
zpool was pointed at the gpt label devices, or was the fact that the
size changed enough difference that copying the file was indeed
necessary?


I fear you might be mixing things up here. You did a zfs-migrate, not a zpool-migrate, you created a new zpool and received the datasets on that
new zpool, even if the zpool names were the same.

The function of zpool.cache is to tell the OS about available
device-zpool combinations. Without, the OS does not know which zpools
are available and accordingly cannot mount the root-ZFS passed in the
vfs.root.mountfrom directive in loader.conf, which is why you needed to
copy the zpool.cache and, if you changed the zpool-names, needed to
adapt loader.conf.

There are plans to change this behaviour, as it is deemed superfluous at
least in the case of disks, but I do not know how much that has
progressed so far.


http://lists.freebsd.org/pipermail/freebsd-fs/2012-October/015328.html


Hope I could shed some light on that issue, although I am by no means an
expert on this.

Cheers,

Yes that did explain it, and I did keep the zpool the same name to avoid having to change the loader.conf. This also does answer other things as well for me. In that this should be able to be done from a mirror to a zraid, or single disk pool. But as you have pointed out the migration is done on the ZFS data layer that is on top of the zpool layer, so it shouldn't matter what the underlying zpool raid level is. And likewise wouldn't matter if the hardware devices behind it changed even if I hadn't used gpt labels to configure the zpool.
Good information to know going forward, thanks for the explanation.

--
Thanks,
   Dean E. Weimer
   http://www.dweimer.net/
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to