multi-zone raid0 corruption
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Release Notes for Ubuntu |
Won't Fix
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Precise |
Won't Fix
|
Undecided
|
Unassigned | ||
Trusty |
Fix Committed
|
Undecided
|
Unassigned | ||
Xenial |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Disco |
Won't Fix
|
Undecided
|
Unassigned | ||
Eoan |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
mdadm (Debian) |
Fix Released
|
Unknown
|
|||
mdadm (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Precise |
Won't Fix
|
Undecided
|
Unassigned | ||
Trusty |
Confirmed
|
Undecided
|
Unassigned | ||
Xenial |
Confirmed
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
dann frazier | ||
Disco |
Won't Fix
|
Undecided
|
dann frazier | ||
Eoan |
Fix Committed
|
Undecided
|
dann frazier | ||
Focal |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Bug 1849682 tracks the temporarily revert of the fix for this issue, while this bug tracks the re-application of that fix once we have a full solution.
[Impact]
(cut & paste from https:/
An unintentional RAID0 layout change was introduced in the v3.14 kernel. This effectively means there are 2 different layouts Linux will use to write data to RAID0 arrays in the wild - the “pre-3.14” way and the “3.14 and later” way. Mixing these layouts by writing to an array while booted on these different kernel versions can lead to corruption.
Note that this only impacts RAID0 arrays that include devices of different sizes. If your devices are all the same size, both layouts are equivalent, and your array is not at risk of corruption due to this issue.
Unfortunately, the kernel cannot detect which layout was used for writes to pre-existing arrays, and therefore requires input from the administrator. This input can be provided via the kernel command line with the raid0.default_
mdadm --stop /dev/md0
mdadm --assemble -U layout-alternate /dev/md0 /dev/sda1 /dev/sda2
See the mdadm manpage for more details. Once set in this manner, the layout will be recorded in the array and will not need to be explicitly specified in the future.
(The mdadm part of this SRU is for the above support ^)
[Test Case]
= mdadm =
Confirm that a multi-zone raid0 created w/ older mdadm is able to be started on a fixed kernel by setting a layout.
1) Ex: w/ old kernel/mdadm:
mdadm --create /dev/md0 --run --metadata=default \
--level=0 --raid-devices=2 /dev/vdb1 /dev/vdc1
2) Reboot onto fixed kernel & update mdadm
3) sudo mdadm --stop /dev/md0 &&
sudo mdadm --assemble -U layout-alternate \
/dev/md0 /dev/vdb1 /dev/vdc1
4) Confirm that the array autostarts on reboot
5) Confirm that w/ new kernel & new mdadm, a user can create and start an array in a backwards-
6) Verify that 'mdadm --detail /dev/md0' displays the layout
= linux =
Similar to above, but using kernel command line options.
[Regression Risk]
The kernel side of things will break starting pre-existing arrays. That's intentional.
The mdadm side will cause a regression in functionality where a user can no longer create multi-zone raid0s on kernels that do not yet have the raid0 layout patches. This is intentional, as such RAID arrays present a corruption risk.
description: | updated |
description: | updated |
description: | updated |
Changed in mdadm (Debian): | |
status: | Unknown → New |
Changed in mdadm (Debian): | |
status: | New → Fix Released |
description: | updated |
Changed in mdadm (Ubuntu Eoan): | |
assignee: | nobody → dann frazier (dannf) |
status: | Confirmed → In Progress |
Changed in mdadm (Ubuntu Disco): | |
assignee: | nobody → dann frazier (dannf) |
status: | Confirmed → In Progress |
Changed in mdadm (Ubuntu Bionic): | |
assignee: | nobody → dann frazier (dannf) |
status: | Confirmed → In Progress |
tags: |
added: verification-done-disco removed: verification-needed-disco |
tags: |
added: verification-needed verification-needed-bionic verification-needed-disco verification-needed-eoan removed: verification-done verification-done-bionic verification-done-disco verification-done-eoan |
Changed in linux (Ubuntu Bionic): | |
status: | Confirmed → Fix Committed |
Changed in linux (Ubuntu Disco): | |
status: | Confirmed → Fix Committed |
Changed in linux (Ubuntu Eoan): | |
status: | Confirmed → Fix Committed |
Changed in linux (Ubuntu Trusty): | |
status: | Confirmed → Fix Committed |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Disco): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Eoan): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Xenial): | |
status: | Confirmed → Fix Committed |
tags: |
added: verification-needed verification-needed-bionic verification-needed-disco verification-needed-eoan removed: verification-done verification-done-bionic verification-done-disco verification-done-eoan |
tags: | removed: block-proposed-bionic block-proposed-disco block-proposed-eoan |
tags: |
added: verification-done-xenial removed: verification-needed-xenial |
Changed in linux (Ubuntu Disco): | |
status: | Fix Committed → Won't Fix |
Changed in mdadm (Ubuntu Disco): | |
status: | Fix Committed → Won't Fix |
Changed in ubuntu-release-notes: | |
status: | New → Won't Fix |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1850540
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.