Moving from zroot from one zpool to another

Please also see Moving boot from one zpool to another and Adding a zroot pool to an existing system.

On my 20x HDD system at home (also known as knew), I am having a recurring problem with booting. This is also the same system mentioned in my FreeBSD Forums thread about some CAM errors.

Side note: I now think those CAM errors may be temperature related.  EDIT: 2018-12-29: They were not temperature related. I think it was a faulty drive connector on the backplane.

Rather than struggle with this issue, I want to move zroot to a pair of SSDs which are both directed attached to the M/B. With this solution, I can still use ZFS, but the complexity is gone. It is then just a simple disk attached directly, no HBA involved.

HBA are great. They are great for storage, and large arrays, but I don’t want to use them for my boot.

The issue: how to move it all over.

I think I need to do this all offline, while booted from a live-thumbdrive (I will undoubtedly use mfsBSD).

The issue: what needs to be moved from the existing zpool?

Where to mount the SSDs?

There are no spare drive bays in this system. I may have to mount them inside the M/B portion of the case. The case is magnetic. Perhaps I can mount the SSDs in a 2.5″ to 3.5″ drive adaptor, and then attach that to the side of the case. I think I can do that.

The existing zpool

These are the existing zpools:

[dan@knew:~] $ zpool list
NAME        SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
system     45.2T  3.36T  41.9T         -     7%     7%  1.00x  ONLINE  -
tank_data  45.2T  34.9T  10.3T         -    16%    77%  1.00x  ONLINE  -
tank_fast   408G   492K   408G         -     0%     0%  1.00x  ONLINE  -

Only the system zpool is relevant here. That is the original zpool and is the one from which the system boots.

Here are the filesystems (with some omissions of candidates not suitable for moving)

[dan@knew:~] $ zfs list -r system
NAME                                            USED  AVAIL  REFER  MOUNTPOINT
system                                         2.56T  30.8T   329K  /
system/bootenv                                  329K  30.8T   329K  none
system/root                                     612K  30.8T   612K  /root
system/rootfs                                  15.6G  30.8T  15.6G  legacy
system/tmp                                     2.93M  30.8T  2.93M  /tmp
system/usr                                      412G  30.8T   329K  /usr
system/usr/home                                2.22G  30.8T   329K  /usr/home
system/usr/home/dan                            2.22G  30.8T  2.22G  /usr/home/dan
system/usr/local                                883M  30.8T   883M  /usr/local
system/usr/obj                                 1.74G  30.8T  1.74G  /usr/obj
system/usr/ports                               1.80G  30.8T  1.80G  /usr/ports
system/usr/ports/distfiles                      256K  30.8T   256K  /usr/ports/distfiles
system/usr/src                                 1.82G  30.8T  1.82G  /usr/src
system/var                                      714M  30.8T   329K  /var
system/var/audit                                366K  30.8T   366K  /var/audit
system/var/empty                                329K  30.8T   329K  /var/empty
system/var/log                                  713M  30.8T   713M  /var/log
system/var/tmp                                  457K  30.8T   457K  /var/tmp
[dan@knew:~] $ 

/usr/home is not moving.

Here is a fresh install of FreeBSD 11 on zroot:

$ zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot                462M  5.22T    88K  /zroot
zroot/ROOT           460M  5.22T    88K  none
zroot/ROOT/default   460M  5.22T   460M  /
zroot/tmp             96K  5.22T    96K  /tmp
zroot/usr            444K  5.22T    88K  /usr
zroot/usr/home       180K  5.22T   180K  /usr/home
zroot/usr/ports       88K  5.22T    88K  /usr/ports
zroot/usr/src         88K  5.22T    88K  /usr/src
zroot/var            588K  5.22T    88K  /var
zroot/var/audit       88K  5.22T    88K  /var/audit
zroot/var/crash       88K  5.22T    88K  /var/crash
zroot/var/log        148K  5.22T   148K  /var/log
zroot/var/mail        88K  5.22T    88K  /var/mail
zroot/var/tmp         88K  5.22T    88K  /var/tmp

Again, I won’t move /usr/home.

Here are the root directory entries:

$ ls /
COPYRIGHT	dev		home		media		proc		sbin		usr
bin		entropy		lib		mnt		rescue		sys		var
boot		etc		libexec		net		root		tmp		zroot

I cannot use copy | receive here because they are not distinct file systems.

I think I’m just going to have to do this as I go along…

What size SSD?

A recent FreeBSD 11.1 install takes up about 460MB:

[dan@r710-01 ~]$ zpool list
NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
zroot  5.39T   464M  5.39T         -     0%     0%  1.00x  ONLINE  -
[dan@r710-01 ~]$ 

Let’s have some room and say we want a minimum of a 1GB SSD. But realistically speaking, it’ll be more like 40-100GB.

Edit 2018-12-29

Sadly, I did not record what I did. Now I am set to repeat the process on slocum.

Website Pin Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google StumbleUpon Premium Responsive

Leave a Comment

Scroll to Top