Difference between revisions of "ZFS Update"

From Funtoo
Jump to navigation Jump to search
Line 1: Line 1:
Newer versions of ZFS introduce bug fixes, support for newer kernels, and in some instances, introduce new storage pool features.
Newer versions of ZFS introduce bug fixes, support for newer kernels, and in some instances, introduce new storage pool features.


Portage will update these packages in the normal fashion through {{c|emerge --update @world}}. Important '''additional steps''' are often required for Funtoo Linux installed on a ZFS storage pool.
Portage will update these packages in the normal fashion through {{c|emerge --update @world}}. Special attention should be given when updating ZFS with Funtoo Linux installed onto ZFS: i.e. root (/) resides in a storage pool. Important '''additional steps''' are often required for Funtoo Linux installed on a ZFS storage pool.


<nowiki>*</nowiki> The ZFS ebuilds are {{c|sys-fs/zfs}}, {{c|sys-fs/zfs-kmod}} and {{c|sys-kernel/spl}}.
<nowiki>*</nowiki> The ZFS ebuilds are {{c|sys-fs/zfs}}, {{c|sys-fs/zfs-kmod}} and {{c|sys-kernel/spl}}.
Line 8: Line 8:


===Funtoo installed on ZFS===
===Funtoo installed on ZFS===
Special attention should be given when updating ZFS with Funtoo Linux installed onto ZFS: i.e. root (/) resides in a storage pool. In particular, '''initramfs''' responsible for importing and mounting root (/) during boot ideally should be updated ''prior to'' rebooting. Placing the updated executables ({{c|/sbin/zpool}}, {{c|/sbin/zfs}}) in your initramfs will reduce the likelihood of boot failure. Updating initramfs may require the updating of bootloader or UEFI configuration.
After updating ZFS packages the '''initramfs''' responsible for importing and mounting root (/) should also be '''updated prior to rebooting'''. By having an initramfs with the same ZFS executables ({{c|zpool}}, {{c|zfs}}) as found in {{f|/sbin}} will reduce the likelihood of boot failure.
 
Do note that updating initramfs may also require the updating of bootloader or UEFI configuration as well.


====...with GRUB====
====...with GRUB====
For typical installations, GRUB can support {{f|/boot}} residing within a ZFS storage pool (together with root {{f|/}}). There is an official installation guide for this configuration: [[ZFS Install Guide]].
For typical installations, GRUB can support {{f|/boot}} residing within a ZFS storage pool (together with root {{f|/}}). There is an official installation guide for this configuration: [[ZFS Install Guide]].


Updating from old versions of ZFS (0.6.3 or older) will introduce new storage pool features. Old versions of GRUB may not be able to support {{f|/boot}} residing on a pool that utilizes these latest features. To reduce the likelihood of boot failure, GRUB should be ''updated'' before upgrading storage pools.
Updating from old versions of ZFS (0.6.3 or older) introduces new storage pool features. Older versions of GRUB do not support {{f|/boot}} inside of a ZFS storage pool with these latest features enabled. To reduce the likelihood of boot failure, GRUB should also be updated in addition to initramfs. As mentioned earlier, these steps should occur before rebooting or enabling new storage pool features.


Once Portage has completed updating the ZFS packages, review the status of your root storage pool. Here, this is assumed to be {{c|rpool}} and when upgrading from old ZFS may indicate the availability of new features.
After updating ZFS pages a review of the pool status will indicate if new features are available.


{{console|body=
{{console|body=
Line 35: Line 37:
errors: No known data errors
errors: No known data errors
}}
}}
'''Instructions:'''
'''Instructions:'''


Line 40: Line 43:
# For now, ignore the option to upgrade the storage pool {{C|rpool}}.
# For now, ignore the option to upgrade the storage pool {{C|rpool}}.
# Update your initramfs to include the latest ZFS binary executables.
# Update your initramfs to include the latest ZFS binary executables.
# Ensure and if possible upgrade {{Package|sys-boot/grub}} to the latest version. Follow [[Install]] for instructions on how to install GRUB.
# Ensure and if possible upgrade {{Package|sys-boot/grub}} to the latest version. Follow [[Install]] for instructions on how to install GRUB. This includes repeating the steps involving {{c|grub-install}}.
# Confirm that you are able to successfully reboot following these updates.
# Confirm that your system reboots successfully. (Mounting the root pool)


====Updating (root) Storage Pool Features====
====Updating (root) Storage Pool Features====

Revision as of 11:54, October 15, 2016

Newer versions of ZFS introduce bug fixes, support for newer kernels, and in some instances, introduce new storage pool features.

Portage will update these packages in the normal fashion through emerge --update @world. Special attention should be given when updating ZFS with Funtoo Linux installed onto ZFS: i.e. root (/) resides in a storage pool. Important additional steps are often required for Funtoo Linux installed on a ZFS storage pool.

* The ZFS ebuilds are sys-fs/zfs, sys-fs/zfs-kmod and sys-kernel/spl.

   Important

As best practice, it is strongly recommended that all users backup their data on a regular basis - irrespective of the file system being used. This could be particularly important should something go wrong while modifying or updating a live file system.

Funtoo installed on ZFS

After updating ZFS packages the initramfs responsible for importing and mounting root (/) should also be updated prior to rebooting. By having an initramfs with the same ZFS executables (zpool, zfs) as found in /sbin will reduce the likelihood of boot failure.

Do note that updating initramfs may also require the updating of bootloader or UEFI configuration as well.

...with GRUB

For typical installations, GRUB can support /boot residing within a ZFS storage pool (together with root /). There is an official installation guide for this configuration: ZFS Install Guide.

Updating from old versions of ZFS (0.6.3 or older) introduces new storage pool features. Older versions of GRUB do not support /boot inside of a ZFS storage pool with these latest features enabled. To reduce the likelihood of boot failure, GRUB should also be updated in addition to initramfs. As mentioned earlier, these steps should occur before rebooting or enabling new storage pool features.

After updating ZFS pages a review of the pool status will indicate if new features are available.

root # zpool status
  pool: rpool
 state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
	still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
	the pool may no longer be accessible by software that does not support
	the features. See zpool-features(5) for details.
  scan: none requested
config:

	NAME                                             STATE     READ WRITE CKSUM
	rpool                                            ONLINE       0     0     0
	  ata-Samsung_SSD_840_EVO_120GB_123456789ABCDEF  ONLINE       0     0     0

errors: No known data errors

Instructions:

To reduce the likelihood of your system from to boot with this new ZFS:

  1. For now, ignore the option to upgrade the storage pool rpool.
  2. Update your initramfs to include the latest ZFS binary executables.
  3. Ensure and if possible upgrade No results to the latest version. Follow Install for instructions on how to install GRUB. This includes repeating the steps involving grub-install.
  4. Confirm that your system reboots successfully. (Mounting the root pool)

Updating (root) Storage Pool Features

   Warning

work in progress..

root # zpool upgrade
This system supports ZFS pool feature flags.

All pools are formatted using feature flags.


Some supported features are not enabled on the following pools. Once a
feature is enabled the pool may become incompatible with software
that does not support the feature. See zpool-features(5) for details.

POOL  FEATURE
---------------
rpool
      async_destroy
      empty_bpobj
      lz4_compress
      spacemap_histogram
      enabled_txg
      hole_birth
      extensible_dataset
      embedded_data
      bookmarks
      filesystem_limits
      large_blocks
root # zpool upgrade rpool
This system supports ZFS pool feature flags.

Enabled the following features on 'rpool':
  async_destroy
  empty_bpobj
  lz4_compress
  spacemap_histogram
  enabled_txg
  hole_birth
  extensible_dataset
  embedded_data
  bookmarks
  filesystem_limits
  large_blocks
root # zpool status
  pool: rpool
 state: ONLINE
  scan: none requested
config:

	NAME                                             STATE     READ WRITE CKSUM
	rpool                                            ONLINE       0     0     0
	  ata-Samsung_SSD_840_EVO_120GB_123456789ABCDEF  ONLINE       0     0     0

errors: No known data errors