The Limits of bectl

I am about to upgrade from 14.3 to 15.0 on my most important machine, the one that I use as my desktop and additionally has got poudriere on. So I will be careful and create BEs.

It occurs to me that bectl has a limit of use.

15.0 has the next version of zfs. If I upgrade to 15.0, change the loader.efi and do a complete poudriere and upgrade the packages, and then don't like it, I can still get back to a previous BE. But if anywhere along the line I upgrade zfs, and then find something I don't like about 15.0, I presume I won't be able to get back.

I think I will do everything, but wait a week or so before I upgrade zfs.
 
You're totally right. At the very moment you upgrade your pool(s), there is no way back unless...

You made a zpool-checkpoint(8) on your pool(s) before to upgrade it/them. There, you can rewind to the previous version of zfs. That said, if you do that (rewind), you lose all tha data changes on the pool since the checkpoint. Also, you can't leave a checkpoint for too long as it consumes room and forbid some zfs functionalities. See this as a reassurance for short term, just in case.

You're not obliged at all to upgrade your pool(s). It's just you will get this annoying message asking you to upgrade at each zpool status.

But, once you upgraded the pool(s) and deleted the checkpoint(s), there is actually no way back. You can destroy the BEs referring to 14.3. I did that last weekend.

PS: please, update your loaders before to upgrade your pool. It's an elementary precaution.
 
As a curiosity, I upgraded from 14.x to 15.0 maybe a month ago (maybe less, I'm very bad with time). I had no idea about this zpool status command because I know very little. I just executed it and both my pools (I have 2) say that I should run zpool upgrade to enable the new features. So, I guess that while you don't execute this latter command, you can still get back to a previous zfs version. That zpool-checkpoint command, of course, sounds like a great added precaution.

update your loaders
What does this mean, if you don't mind me asking?
 
No, you can stay on the old version of zfs.
So you mean I'm not executing the latest version yet, I guess.

This is my version:
Code:
zfs-2.4.0-rc4-FreeBSD_g099f69ff5
zfs-kmod-2.4.0-rc4-FreeBSD_g099f69ff5
Edit:
FreeBSD freebsd.xxx.xxx 15.0-RELEASE FreeBSD 15.0-RELEASE releng/15.0-n280995-7aedc8de6446 GENERIC amd64
 
New versions of ZFS may have bug fixes but they also have new features or flags that trigger new behavior.
New versions of loader understand new ZFS stuff, older versions of loader do not understand new ZFS stuff.
That's why everyone warns "update loaders to the new versions BEFORE you zpool upgrade".

Now an interesting fact about new versions of software (not just ZFS and loaders):
They typically understand older versions. Heck even MS office products can open files created with older versions.
Backwards compatibility.

Older versions, since they have no knowledge of new versions (features/flags) they can't work on files created with new versions.

No, you can stay on the old version of zfs.

100% correct. Typically I only zpool upgrade if I need new the new stuff, otherwise I just ignore the message in zpool status.
Luckily the recovery is relatively easy:
Boot into the install media (for the newer version) as LiveCD then you can mount the old efi partition and pull new loader code off the install media and update the efi partition.

I'd bet that almost everyone here using ZFS has mucked this up once, pounded their head, then never forgot.
The lesson there is it never hurts to have a USB with the install media on hand.
 
Back
Top