If have a ZFS test pool running v28. I want to upgrade that pool to version 5000, but with the highest compatibility.
When I normally upgrade my pool to v5000, all feature flags are activated by ZFS automatically.
The problem is that the multi_vdev_crash_dump isn't supported in zfsonlinux and ZFS-OSX. So, I want to upgrade the pool without all feature activated by default.
The manual tells me that I should use the -V parameter:
However, when I recreate my test pool and upgrade using the -V parameter it still activates all feature flags.
Is this a bug? I assumed the whole goal of the new feature flags is that we can just pick those features we want to use so we can balance between maximum compatibility between OpenZFS versions and bleeding edge features.
In my specific situation, I just want to use the lz4_compress feature which is supported in all OpenZFS implementations.
When I normally upgrade my pool to v5000, all feature flags are activated by ZFS automatically.
Code:
[root@server /home/ssh]# zpool status test
pool: test
state: ONLINE
status: The pool is formatted using a legacy on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'. Once this is done, the
pool will no longer be accessible on software that does not support feature
flags.
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gpt/test1 ONLINE 0 0 0
gpt/test2 ONLINE 0 0 0
errors: No known data errors
[root@server /home/ssh]# zpool upgrade test
This system supports ZFS pool feature flags.
Successfully upgraded 'test' from version 28 to feature flags.
Enabled the following features on 'test':
async_destroy
empty_bpobj
lz4_compress
multi_vdev_crash_dump
spacemap_histogram
enabled_txg
hole_birth
extensible_dataset
bookmarks
The problem is that the multi_vdev_crash_dump isn't supported in zfsonlinux and ZFS-OSX. So, I want to upgrade the pool without all feature activated by default.
The manual tells me that I should use the -V parameter:
Code:
zpool upgrade [-V version] -a | pool ...
Enables all supported features on the given pool. Once this is done,
the pool will no longer be accessible on systems that do not support
feature flags. See zpool-features(7) for details on compatability
with system sthat support feature flags, but do not support all fea-
tures enabled on the pool.
-a Enables all supported features on all pools.
-V version
Upgrade to the specified legacy version. If the -V flag is
specified, no features will be enabled on the pool. This
option can only be used to increase version number up to the
last supported legacy version number.
However, when I recreate my test pool and upgrade using the -V parameter it still activates all feature flags.
Code:
[root@server /home/ssh]# zpool status test
pool: test
state: ONLINE
status: The pool is formatted using a legacy on-disk format. The pool can
still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'. Once this is done, the
pool will no longer be accessible on software that does not support feature
flags.
scan: none requested
config:
NAME STATE READ WRITE CKSUM
test ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gpt/test1 ONLINE 0 0 0
gpt/test2 ONLINE 0 0 0
errors: No known data errors
[root@server /home/ssh]# zpool upgrade -V 5000 test
This system supports ZFS pool feature flags.
Successfully upgraded 'test' from version 28 to feature flags.
Enabled the following features on 'test':
async_destroy
empty_bpobj
lz4_compress
multi_vdev_crash_dump
spacemap_histogram
enabled_txg
hole_birth
extensible_dataset
bookmarks
Is this a bug? I assumed the whole goal of the new feature flags is that we can just pick those features we want to use so we can balance between maximum compatibility between OpenZFS versions and bleeding edge features.
In my specific situation, I just want to use the lz4_compress feature which is supported in all OpenZFS implementations.