From: Nigel Croxon <ncroxon@redhat.com>
To: Oleksandr Shchirskyi <oleksandr.shchirskyi@linux.intel.com>
Cc: linux-raid@vger.kernel.org,
Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>,
Jes Sorensen <jes@trained-monkey.org>
Subject: Re: [PATCH] mdadm: fix reshape from RAID5 to RAID6 with backup file
Date: Fri, 26 Mar 2021 07:59:22 -0400 (EDT) [thread overview]
Message-ID: <1876594627.1682680.1616759962103.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <b77b55d3-d9b2-fac9-c756-fabced0546a0@linux.intel.com>
----- Original Message -----
From: "Oleksandr Shchirskyi" <oleksandr.shchirskyi@linux.intel.com>
To: "Nigel Croxon" <ncroxon@redhat.com>
Cc: linux-raid@vger.kernel.org, "Mariusz Tkaczyk" <mariusz.tkaczyk@linux.intel.com>, "Jes Sorensen" <jes@trained-monkey.org>
Sent: Tuesday, March 23, 2021 4:58:27 PM
Subject: Re: [PATCH] mdadm: fix reshape from RAID5 to RAID6 with backup file
On 3/23/2021 5:36 PM, Nigel Croxon wrote:
> Oleksandr,
> Can you post your dmesg output when running the commands?
>
> I've back down from 5.11 to 5.8 and I still see:
> [ +0.042694] md/raid0:md126: raid5 must have missing parity disk!
> [ +0.000001] md: md126: raid0 would not accept array
>
> Thanks, Nigel
Hello Nigel,
I've switched to 4.18.0-240.el8.x86_64 kernel (I have RHEL8.3) and I still
have the same results, issue is still easily reproducible when patch
4ae96c8 is applied.
Cropped test logs with and w/o your patch:
# git log -n1 --oneline
f94df5c (HEAD -> master, origin/master, origin/HEAD) imsm: support for
third Sata controller
# make clean; make; make install-systemd; make install
# mdadm -CR imsm0 -e imsm -n4 /dev/nvme[0-3]n1 && mdadm -CR volume -l0
--chunk 64 --size=10G --raid-devices=1 /dev/nvme0n1 --force
# mdadm -G /dev/md/imsm0 -n2
# dmesg -c
[ 393.530389] md126: detected capacity change from 0 to 10737418240
[ 407.139318] md/raid:md126: device nvme0n1 operational as raid disk 0
[ 407.153920] md/raid:md126: raid level 4 active with 1 out of 2 devices,
algorithm 5
[ 407.246037] md: reshape of RAID array md126
[ 407.357940] md: md126: reshape interrupted.
[ 407.388144] md: reshape of RAID array md126
[ 407.398737] md: md126: reshape interrupted.
[ 407.403486] md: reshape of RAID array md126
[ 459.414250] md: md126: reshape done.
# cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md126 : active raid4 nvme3n1[2] nvme0n1[0]
10485760 blocks super external:/md127/0 level 4, 64k chunk,
algorithm 0 [3/2] [UU_]
md127 : inactive nvme3n1[3](S) nvme2n1[2](S) nvme1n1[1](S) nvme0n1[0](S)
4420 blocks super external:imsm
unused devices: <none>
# mdadm -Ss; wipefs -a /dev/nvme[0-3]n1
# dmesg -C
# git revert 4ae96c802203ec3cfbb089240c56d61f7f4661b3
# make clean; make; make install-systemd; make install
# mdadm -CR imsm0 -e imsm -n4 /dev/nvme[0-3]n1 && mdadm -CR volume -l0
--chunk 64 --size=10G --raid-devices=1 /dev/nvme0n1 --force
# mdadm -G /dev/md/imsm0 -n2
# dmesg -c
[ 623.772039] md126: detected capacity change from 0 to 10737418240
[ 644.823245] md/raid:md126: device nvme0n1 operational as raid disk 0
[ 644.838542] md/raid:md126: raid level 4 active with 1 out of 2 devices,
algorithm 5
[ 644.928672] md: reshape of RAID array md126
[ 697.405351] md: md126: reshape done.
[ 697.409659] md126: detected capacity change from 10737418240 to 21474836480
# cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md126 : active raid0 nvme3n1[2] nvme0n1[0]
20971520 blocks super external:/md127/0 64k chunks
md127 : inactive nvme3n1[3](S) nvme2n1[2](S) nvme1n1[1](S) nvme0n1[0](S)
4420 blocks super external:imsm
Do you need more detailed logs? My system/drives configuration details?
Regards,
Oleksandr Shchirskyi
From f0c80c8e90b2ce113b6e22f919659430d3d20efa Mon Sep 17 00:00:00 2001
From: Nigel Croxon <ncroxon@redhat.com>
Date: Fri, 26 Mar 2021 07:56:10 -0400
Subject: [PATCH] mdadm: fix growing containers
This fixes growing containers which was broken with
commit 4ae96c802203ec3c (mdadm: fix reshape from RAID5 to RAID6 with
backup file)
The issue being that containers use the function
wait_for_reshape_isms and expect a number value and not a
string value of "max". The change is to test for external
before setting the correct value.
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
---
Grow.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/Grow.c b/Grow.c
index 1120929..de28540 100644
--- a/Grow.c
+++ b/Grow.c
@@ -921,7 +921,7 @@ static int subarray_set_num(char *container, struct mdinfo *sra, char *name, int
}
int start_reshape(struct mdinfo *sra, int already_running,
- int before_data_disks, int data_disks)
+ int before_data_disks, int data_disks, struct supertype *st)
{
int err;
unsigned long long sync_max_to_set;
@@ -935,20 +935,23 @@ int start_reshape(struct mdinfo *sra, int already_running,
else
sync_max_to_set = (sra->component_size * data_disks
- sra->reshape_progress) / data_disks;
+
if (!already_running)
sysfs_set_num(sra, NULL, "sync_min", sync_max_to_set);
- err = err ?: sysfs_set_num(sra, NULL, "sync_max", sync_max_to_set);
+
+ if (st->ss->external)
+ err = err ?: sysfs_set_num(sra, NULL, "sync_max", sync_max_to_set);
+ else
+ err = err ?: sysfs_set_str(sra, NULL, "sync_max", "max");
+
if (!already_running && err == 0) {
int cnt = 5;
- int err2;
do {
err = sysfs_set_str(sra, NULL, "sync_action",
"reshape");
- err2 = sysfs_set_str(sra, NULL, "sync_max",
- "max");
- if (err || err2)
+ if (err)
sleep(1);
- } while (err && err2 && errno == EBUSY && cnt-- > 0);
+ } while (err && errno == EBUSY && cnt-- > 0);
}
return err;
}
@@ -3470,7 +3473,7 @@ started:
goto release;
err = start_reshape(sra, restart, reshape.before.data_disks,
- reshape.after.data_disks);
+ reshape.after.data_disks, st);
if (err) {
pr_err("Cannot %s reshape for %s\n",
restart ? "continue" : "start", devname);
--
2.27.0
next prev parent reply other threads:[~2021-03-26 12:00 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <764426808.38181143.1615910368475.JavaMail.zimbra () redhat ! com>
2021-03-22 16:21 ` [PATCH] mdadm: fix reshape from RAID5 to RAID6 with backup file Oleksandr Shchirskyi
2021-03-22 16:47 ` Nigel Croxon
2021-03-22 17:16 ` Nigel Croxon
2021-03-22 17:41 ` Oleksandr Shchirskyi
2021-03-23 16:36 ` Nigel Croxon
2021-03-23 20:58 ` Oleksandr Shchirskyi
2021-03-26 11:59 ` Nigel Croxon [this message]
2021-04-01 20:49 ` Jes Sorensen
2021-04-02 9:40 ` Oleksandr Shchirskyi
2021-04-06 18:31 ` Jes Sorensen
2021-01-20 20:05 Nigel Croxon
2021-02-16 14:28 ` Nigel Croxon
2021-02-26 22:06 ` Jes Sorensen
2021-03-16 14:54 ` Tkaczyk, Mariusz
2021-03-16 15:21 ` Nigel Croxon
2021-03-16 15:51 ` Nigel Croxon
2021-03-16 15:59 ` Nigel Croxon
2021-03-17 8:34 ` Tkaczyk, Mariusz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1876594627.1682680.1616759962103.JavaMail.zimbra@redhat.com \
--to=ncroxon@redhat.com \
--cc=jes@trained-monkey.org \
--cc=linux-raid@vger.kernel.org \
--cc=mariusz.tkaczyk@linux.intel.com \
--cc=oleksandr.shchirskyi@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.