All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Guilherme G. Piccoli" <gpiccoli@canonical.com>
To: Song Liu <songliubraving@fb.com>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	Song Liu <liu.song.a23@gmail.com>, NeilBrown <neilb@suse.com>,
	linux-raid <linux-raid@vger.kernel.org>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	Jay Vosburgh <jay.vosburgh@canonical.com>
Subject: Re: [PATCH v2 1/2] md raid0/linear: Introduce new array state 'broken'
Date: Wed, 21 Aug 2019 16:10:47 -0300	[thread overview]
Message-ID: <d0a3709e-c3a9-c0b1-c3c1-bf5a6d6932af@canonical.com> (raw)
In-Reply-To: <B7287054-70AC-47A8-BA5A-4D3D7C3F689F@fb.com>

On 21/08/2019 13:14, Song Liu wrote:
> [...] 
> 
> What do you mean by "not clear MD_BROKEN"? Do you mean we need to restart
> the array? 
> 
> IOW, the following won't work:
> 
>   mdadm --fail /dev/md0 /dev/sdx
>   mdadm --remove /dev/md0 /dev/sdx
>   mdadm --add /dev/md0 /dev/sdx
>   
> And we need the following instead:
> 
>   mdadm --fail /dev/md0 /dev/sdx
>   mdadm --remove /dev/md0 /dev/sdx
>   mdadm --stop /dev/md0 /dev/sdx
>   mdadm --add /dev/md0 /dev/sdx
>   mdadm --run /dev/md0 /dev/sdx
> 
> Thanks,
> Song
> 

Song, I've tried the first procedure (without the --stop) and failed to
make it work on linear/raid0 arrays, even trying in vanilla kernel.
What I could do is:

1) Mount an array and while writing, remove a member (nvme1n1 in my
case); "mdadm --detail md0" will either show 'clean' state or 'broken'
if we have my patch;

2) Unmount the array and run: "mdadm -If nvme1n1 --path
pci-0000:00:08.0-nvme-1"
This will result: "mdadm: set device faulty failed for nvme1n1:  Device
or resource busy"
Despite the error, md0 device is gone.

3) echo 1 > /sys/bus/pci/rescan [nvme1 device is back]

4) mdadm -A --scan [md0 is back, with both devices and 'clean' state]

So, either if we "--stop" or if we incremental fail a member of the
array, when it's back the state will be 'clean' and not 'broken'.
Hence, I don't see a point in clearing the MD_BROKEN flag for
raid0/linear arrays, nor I see where we could do it.

And thanks for the link for your tree, I'll certainly rebase my patch
against that.
Cheers,


Guilherme

WARNING: multiple messages have this Message-ID (diff)
From: "Guilherme G. Piccoli" <gpiccoli@canonical.com>
To: Song Liu <songliubraving@fb.com>
Cc: Song Liu <liu.song.a23@gmail.com>,
	linux-raid <linux-raid@vger.kernel.org>,
	"linux-block@vger.kernel.org" <linux-block@vger.kernel.org>,
	"dm-devel@redhat.com" <dm-devel@redhat.com>,
	Jay Vosburgh <jay.vosburgh@canonical.com>,
	NeilBrown <neilb@suse.com>
Subject: Re: [PATCH v2 1/2] md raid0/linear: Introduce new array state 'broken'
Date: Wed, 21 Aug 2019 16:10:47 -0300	[thread overview]
Message-ID: <d0a3709e-c3a9-c0b1-c3c1-bf5a6d6932af@canonical.com> (raw)
In-Reply-To: <B7287054-70AC-47A8-BA5A-4D3D7C3F689F@fb.com>

On 21/08/2019 13:14, Song Liu wrote:
> [...] 
> 
> What do you mean by "not clear MD_BROKEN"? Do you mean we need to restart
> the array? 
> 
> IOW, the following won't work:
> 
>   mdadm --fail /dev/md0 /dev/sdx
>   mdadm --remove /dev/md0 /dev/sdx
>   mdadm --add /dev/md0 /dev/sdx
>   
> And we need the following instead:
> 
>   mdadm --fail /dev/md0 /dev/sdx
>   mdadm --remove /dev/md0 /dev/sdx
>   mdadm --stop /dev/md0 /dev/sdx
>   mdadm --add /dev/md0 /dev/sdx
>   mdadm --run /dev/md0 /dev/sdx
> 
> Thanks,
> Song
> 

Song, I've tried the first procedure (without the --stop) and failed to
make it work on linear/raid0 arrays, even trying in vanilla kernel.
What I could do is:

1) Mount an array and while writing, remove a member (nvme1n1 in my
case); "mdadm --detail md0" will either show 'clean' state or 'broken'
if we have my patch;

2) Unmount the array and run: "mdadm -If nvme1n1 --path
pci-0000:00:08.0-nvme-1"
This will result: "mdadm: set device faulty failed for nvme1n1:  Device
or resource busy"
Despite the error, md0 device is gone.

3) echo 1 > /sys/bus/pci/rescan [nvme1 device is back]

4) mdadm -A --scan [md0 is back, with both devices and 'clean' state]

So, either if we "--stop" or if we incremental fail a member of the
array, when it's back the state will be 'clean' and not 'broken'.
Hence, I don't see a point in clearing the MD_BROKEN flag for
raid0/linear arrays, nor I see where we could do it.

And thanks for the link for your tree, I'll certainly rebase my patch
against that.
Cheers,


Guilherme

  parent reply	other threads:[~2019-08-21 19:10 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-16 13:40 [PATCH v2 1/2] md raid0/linear: Introduce new array state 'broken' Guilherme G. Piccoli
2019-08-16 13:40 ` Guilherme G. Piccoli
2019-08-16 13:41 ` [PATCH v2 2/2] mdadm: Introduce new array state 'broken' for raid0/linear Guilherme G. Piccoli
2019-08-16 13:41   ` Guilherme G. Piccoli
2019-08-19 18:10 ` [PATCH v2 1/2] md raid0/linear: Introduce new array state 'broken' Song Liu
2019-08-19 18:10   ` Song Liu
2019-08-19 18:30   ` Guilherme G. Piccoli
2019-08-19 18:30     ` Guilherme G. Piccoli
2019-08-19 18:57     ` Song Liu
2019-08-19 18:57       ` Song Liu
2019-08-19 19:11       ` Guilherme G. Piccoli
2019-08-19 19:11         ` Guilherme G. Piccoli
2019-08-19 21:57         ` Song Liu
2019-08-19 21:57           ` Song Liu
2019-08-21 14:16           ` Guilherme G. Piccoli
2019-08-21 14:16             ` Guilherme G. Piccoli
2019-08-21 16:14             ` Song Liu
2019-08-21 16:14               ` Song Liu
2019-08-21 18:06               ` Song Liu
2019-08-21 18:06                 ` Song Liu
2019-08-21 19:10               ` Guilherme G. Piccoli [this message]
2019-08-21 19:10                 ` Guilherme G. Piccoli
2019-08-21 19:22                 ` Song Liu
2019-08-21 19:22                   ` Song Liu
2019-08-22 16:16                   ` Guilherme G. Piccoli
2019-08-22 16:16                     ` Guilherme G. Piccoli
2019-08-22  8:49 ` Guoqing Jiang
2019-08-22  8:49   ` Guoqing Jiang
2019-08-22 15:35   ` Guilherme G. Piccoli
2019-08-22 15:35     ` Guilherme G. Piccoli

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=d0a3709e-c3a9-c0b1-c3c1-bf5a6d6932af@canonical.com \
    --to=gpiccoli@canonical.com \
    --cc=dm-devel@redhat.com \
    --cc=jay.vosburgh@canonical.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=liu.song.a23@gmail.com \
    --cc=neilb@suse.com \
    --cc=songliubraving@fb.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.