* Zeroing multiple superblocks
@ 2010-01-22 20:09 Jim Paris
2010-01-25 9:52 ` Andre Noll
0 siblings, 1 reply; 5+ messages in thread
From: Jim Paris @ 2010-01-22 20:09 UTC (permalink / raw)
To: linux-raid
Should --zero-superblock be changed to clear all superblocks,
or at least warn when not all superblocks are cleared?
I ran into a problem a year ago where I had a disk with both 0.90 and
1.0 format metadata. The wrong one was scanned at boot, causing a
"doesn't match others - assembly aborted" error. At the time, I
thought I fixed it by doing a --zero-superblock and re-adding the
disk, but it turns out the disk still had two, causing the same
problem (reboots are rare on this machine).
For example:
# dd if=/dev/zero of=diskimage bs=1M count=8
# losetup -fv diskimage
Loop device is /dev/loop0
# mdadm --create /dev/md0 --level=1 --metadata=0.90 --raid-devices=2 /dev/loop0 missing
mdadm: array /dev/md0 started.
# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# mdadm --create /dev/md0 --level=1 --metadata=1.0 --raid-devices=2 /dev/loop0 missing
mdadm: /dev/loop0 appears to be part of a raid array:
level=raid1 devices=2 ctime=Fri Jan 22 14:55:26 2010
Continue creating array? y
mdadm: array /dev/md0 started.
# mdadm --stop /dev/md0
Now notice how --zero-superblock has to be run twice before it starts
complaining that no superblock was found:
# mdadm --zero-superblock /dev/loop0
# mdadm --zero-superblock /dev/loop0
# mdadm --zero-superblock /dev/loop0
mdadm: Unrecognised md component device - /dev/loop0
I guess the only way to be fully safe with the current approach is to
do a zero-superblock over and over until it complains.
-jim
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Zeroing multiple superblocks
2010-01-22 20:09 Zeroing multiple superblocks Jim Paris
@ 2010-01-25 9:52 ` Andre Noll
2010-01-29 12:31 ` Neil Brown
0 siblings, 1 reply; 5+ messages in thread
From: Andre Noll @ 2010-01-25 9:52 UTC (permalink / raw)
To: Jim Paris; +Cc: linux-raid
[-- Attachment #1: Type: text/plain, Size: 710 bytes --]
On 15:09, Jim Paris wrote:
> I guess the only way to be fully safe with the current approach is to
> do a zero-superblock over and over until it complains.
mdadm --zero-superblock tries to guess the location of the superblock.
If more than one superblock is found, the one with the latest creation
time is being zeroed. So yes, the method you describe works and I think
it is the most reliable way to remove all superblocks of a device.
Maybe we could teach mdadm --zero-superblock to honor the --metadata=x
option which would zero-out the region of the device where the
version-x superblock is located.
Andre
--
The only person who always got his work done by Friday was Robinson Crusoe
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Zeroing multiple superblocks
2010-01-25 9:52 ` Andre Noll
@ 2010-01-29 12:31 ` Neil Brown
2010-02-01 21:22 ` Bill Davidsen
0 siblings, 1 reply; 5+ messages in thread
From: Neil Brown @ 2010-01-29 12:31 UTC (permalink / raw)
To: Andre Noll; +Cc: Jim Paris, linux-raid
On Mon, 25 Jan 2010 10:52:21 +0100
Andre Noll <maan@systemlinux.org> wrote:
> On 15:09, Jim Paris wrote:
>
> > I guess the only way to be fully safe with the current approach is to
> > do a zero-superblock over and over until it complains.
>
> mdadm --zero-superblock tries to guess the location of the superblock.
> If more than one superblock is found, the one with the latest creation
> time is being zeroed. So yes, the method you describe works and I think
> it is the most reliable way to remove all superblocks of a device.
>
> Maybe we could teach mdadm --zero-superblock to honor the --metadata=x
> option which would zero-out the region of the device where the
> version-x superblock is located.
Latest mdadm has this feature.
And if --metadata= isn't given, it repeatedly trying to find and zero a
superblock until no more superblocks can be found.
NeilBrown
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Zeroing multiple superblocks
2010-01-29 12:31 ` Neil Brown
@ 2010-02-01 21:22 ` Bill Davidsen
2010-02-01 21:44 ` Neil Brown
0 siblings, 1 reply; 5+ messages in thread
From: Bill Davidsen @ 2010-02-01 21:22 UTC (permalink / raw)
To: Neil Brown; +Cc: Andre Noll, Jim Paris, linux-raid
Neil Brown wrote:
> On Mon, 25 Jan 2010 10:52:21 +0100
> Andre Noll <maan@systemlinux.org> wrote:
>
>
>> On 15:09, Jim Paris wrote:
>>
>>
>>> I guess the only way to be fully safe with the current approach is to
>>> do a zero-superblock over and over until it complains.
>>>
>> mdadm --zero-superblock tries to guess the location of the superblock.
>> If more than one superblock is found, the one with the latest creation
>> time is being zeroed. So yes, the method you describe works and I think
>> it is the most reliable way to remove all superblocks of a device.
>>
>> Maybe we could teach mdadm --zero-superblock to honor the --metadata=x
>> option which would zero-out the region of the device where the
>> version-x superblock is located.
>>
>
> Latest mdadm has this feature.
> And if --metadata= isn't given, it repeatedly trying to find and zero a
> superblock until no more superblocks can be found.
>
That would be potentially a bad thing, people do run things like RAID1+5
and might want to clear on block and save the other, still possibly part
of a running array, one. I'm not sure that's a safe default behavior.
--
Bill Davidsen <davidsen@tmr.com>
"We can't solve today's problems by using the same thinking we
used in creating them." - Einstein
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Zeroing multiple superblocks
2010-02-01 21:22 ` Bill Davidsen
@ 2010-02-01 21:44 ` Neil Brown
0 siblings, 0 replies; 5+ messages in thread
From: Neil Brown @ 2010-02-01 21:44 UTC (permalink / raw)
To: Bill Davidsen; +Cc: Andre Noll, Jim Paris, linux-raid
On Mon, 01 Feb 2010 16:22:25 -0500
Bill Davidsen <davidsen@tmr.com> wrote:
> Neil Brown wrote:
> > On Mon, 25 Jan 2010 10:52:21 +0100
> > Andre Noll <maan@systemlinux.org> wrote:
> >
> >
> >> On 15:09, Jim Paris wrote:
> >>
> >>
> >>> I guess the only way to be fully safe with the current approach is to
> >>> do a zero-superblock over and over until it complains.
> >>>
> >> mdadm --zero-superblock tries to guess the location of the superblock.
> >> If more than one superblock is found, the one with the latest creation
> >> time is being zeroed. So yes, the method you describe works and I think
> >> it is the most reliable way to remove all superblocks of a device.
> >>
> >> Maybe we could teach mdadm --zero-superblock to honor the --metadata=x
> >> option which would zero-out the region of the device where the
> >> version-x superblock is located.
> >>
> >
> > Latest mdadm has this feature.
> > And if --metadata= isn't given, it repeatedly trying to find and zero a
> > superblock until no more superblocks can be found.
> >
>
> That would be potentially a bad thing, people do run things like RAID1+5
> and might want to clear on block and save the other, still possibly part
> of a running array, one. I'm not sure that's a safe default behavior.
>
The situation you describe would not normally cause any problems.
"mdadm --zero-superblock" only erases metadata that looks like valid
metadata at a valid location.
If you have a disk (sda) inside a RAID5 (md0) inside a RAID1 (md1),
then:
mdadm --zero-superblock /dev/sda
would only see the metadata for the RAID5 and so would only clear that.
mdadm --zero-superblock /dev/md0
would only see the metadata for the RAID1 and so would only clear that.
mdadm --zero-superblock /dev/md1
would not see any metadata.
However, if you used v1.0 metadata for the RAID1, and v1.1 metadata for
the RAID5, then
mdadm --zero-superblock /dev/sda
would see both and could erase both.
But then
mdadm --assemble
would also see both and get equally confused.
Also if you are erasing the RAID5 metadata from sda, then it won't be
inclued in the RAID5, so it won't be included indirectly in the RAID1, so
remove the RAID1 metadata as well is no loss.
So I really don't think there is a problem here. However if you can
describe a credible case which will cause a problem, I'd be very happy to
consider it.
Thanks,
NeilBrown
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-02-01 21:44 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-22 20:09 Zeroing multiple superblocks Jim Paris
2010-01-25 9:52 ` Andre Noll
2010-01-29 12:31 ` Neil Brown
2010-02-01 21:22 ` Bill Davidsen
2010-02-01 21:44 ` Neil Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).