Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update info re mixed raid levels Web-UI compatibility #468 #515

83 changes: 24 additions & 59 deletions howtos/stable_kernel_backport.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ Installing the Stable Kernel Backport
.. warning::

This How-to is intended for advanced users only.
It's contents are likely irrelevant unless you require capabilities beyond our default openSUSE base.
Its contents are likely irrelevant, unless you require capabilities beyond our default openSUSE base.
We include these instructions with the proviso that they will significantly modify your system from our upstream base.
As such you will be running a far less tested system, and consequently may face more system stability/reliability risks.
N.B. Pools created with this newer kernel have the newer free space tree i.e. (space_cache=v2).
Future imports require kernels which are equally new/capable (at least ideally).
N.B. Pools created with this newer kernel have the newer free space tree (i.e., space_cache=v2).
As do Pools created using "Built on openSUSE" Leap 15.6 and newer instances.
Future pool imports require kernels which are equally new/capable (at least ideally).

If you are reporting issues on our `Community Forum <https://forum.rockstor.com/>`_
or in any of our `GitHub <https://github.com/rockstor>`_ repositories,
Expand All @@ -19,16 +20,16 @@ please indicate if you have applied these changes.
Install all updates before following these instructions.
And test your system again after a reboot to ensure that this procedure is still necessary.

As of writing, the Leap version used in our v4 "Built on openSUSE" comes with many openSUSE/SuSE organised patches.
As of writing, the Leap version used in our "Built on openSUSE" comes with many openSUSE/SuSE organised patches.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
As of writing, the Leap version used in our "Built on openSUSE" comes with many openSUSE/SuSE organised patches.
As of this writing, the Leap version used in our "Built on openSUSE" comes with many openSUSE/SuSE organised patches.

Almost all of these patches are backports from newer kernels,
applied to a designated 'base' kernel version.
As such the running kernel is newer than its 'base' version indicates.

Rockstor V4 "Built on openSUSE" no longer installs newer kernels than its upstream OS,
as it once did when based on CentOS 7 (Rockstor v3).
Rockstor "Built on openSUSE" does not install newer kernels than its upstream OS,
as it once did when based on CentOS 7 (Rockstor v3 and earlier).
That is primarily because it is no longer necessary,
our new upstream actively maintains btrfs and employs some of the key btrfs contributors.
As a result all relevant btrfs backports are already in our upstream default kernel.
As a result many relevant btrfs backports are already in our upstream default kernel.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
As a result many relevant btrfs backports are already in our upstream default kernel.
As a result many relevant btrfs backports are already in our upstream default kernel.

But in some situations it may be desirable to enable a newer base kernel version.

.. _why_newer_kernel:
Expand All @@ -46,20 +47,29 @@ There are two main reasons:
Btrfs raid 5/6 read-only
------------------------

OpenSUSE's Leap 15.3/15.4 default kernels restrict the parity raid levels of 5 & 6 to read-only.
This decision was taken as the parity raid levels are far younger than the non parity levels of 0, 1, and 10.
Rockstor's Web-UI supports btrfs raid 0, 1, 10, 5, and 6.
See the following links for how other newer raid levels such as :ref:`raid1c3_raid1c4` and :ref:`mixed_raid_levels` are treated.
OpenSUSE's Leap 15.3/15.4/15.5 default kernels restrict the parity raid levels of 5 & 6 to read-only.
This decision was taken as the parity raid profiles are far younger than the non parity profiles of 0, 1, and 10.

When creating a parity raid pool (volume in btrfs parlance) we see the following message in the system journal:
From openSUSE Leap 15.6 this is no longer the case as a far newer kernel base was chosen.
As such our "Built on openSUSE" Leap 15.6 variant and newer have read-write parity btrfs raid out-of-the-box.

See :ref:`redundancyprofiles` for supported btrfs profiles per Rockstor version.

Pre "Built on openSUSE" Leap 15.6,
when creating a parity raid pool (volume in btrfs parlance), the following message appears in the system journal:

.. code-block:: console

kernel: btrfs: RAID56 is supported read-only, load module with allow_unsupported=1

Rather than just *allowing unsupported* it is proposed that instead we take advantage of a newer kernel.
Rather than just *allowing unsupported* it was proposed that instead one took advantage of a newer kernel.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Rather than just *allowing unsupported* it was proposed that instead one took advantage of a newer kernel.
Rather than just *allowing unsupported*, it was proposed that instead one took advantage of a newer kernel.

In this case the upstream-of-openSUSE latest stable kernel version back-ported to openSUSE.
And in turn Rockstor.

.. warning::

As of Leap 15.6, there are far fewer btrfs reasons to use the Stable_kernel_Backport approach.
Consider instead installing a later version of Rockstor,
or following the appropriate in-place "Distribution update from 15.* to 15.*` howto.

.. _newer_kernel_repos:

Expand Down Expand Up @@ -118,48 +128,3 @@ In which case omit the "--no-recommends" option to also install these firmware
.. note::

A system reboot will be required for the above changes to take effect.

.. _raid1c3_raid1c4:

Btrfs raid1c3 raid1c4
---------------------

These raid levels are currently the newest available in btrfs.
As they are based on the far more mature btrfs raid1 they may be considered more mature than the parity raid levels.
They simply 'amplify' the number of copies stored across the same number of independent devices.

- **raid1c3** - 3 copies across 3 independent drives.
- **raid1c4** - 4 copies across 4 independent drives.

The :ref:`stable_kernel_backport` above procedure also enables the use of these even newer btrfs raid levels.
At least in the underlying operating system.

.. note::

Rockstor 'allows' these raid levels but is currently un-aware of them.
As such if any Pool modifications are enacted via the Web-UI,
e.g :ref:`poolbalance` or :ref:`poolresize` the Rockstor defaults will be reasserted.
See :ref:`dlbalance_re_raid` to reassert a custom raid profile.

.. _mixed_raid_levels:

Btrfs mixed raid levels
-----------------------

Btrfs, somewhat uniquely, can have one raid level for data and another for metadata.
One approach to alleviate the currently know issues, design wise, in the btrfs parity raid levels,
is to use:

- **data** - btrfs raid5 or preferred raid6
- **metadata** - btrfs raid1c3 or preferred raid1c4

Note that with the preferred options above btrfs can have a 2 disk failure capability per pool.
This is of particular interest to those running pools consisting of many devices.

.. note::

As per the :ref:`raid1c3_raid1c4` note, Rockstor is unaware of some non standard data/metadata mixes.
And likewise the Web-UI Pool operations of :ref:`poolbalance` or :ref:`poolresize`
will undo any custom pool data/metadata mixed raid setup and revert to Rockstor defaults.
See :ref:`dlbalance_re_raid` to re-assert a custom mixed raid arrangement.
All other operations however should function as normal.
Loading
Loading