Thread (5 messages) 5 messages, 4 authors, 2010-02-01

Re: Zeroing multiple superblocks

From: Neil Brown <hidden>
Date: 2010-02-01 21:44:31

On Mon, 01 Feb 2010 16:22:25 -0500
Bill Davidsen [off-list ref] wrote:
Neil Brown wrote:
quoted
On Mon, 25 Jan 2010 10:52:21 +0100
Andre Noll [off-list ref] wrote:

  
quoted
On 15:09, Jim Paris wrote:

    
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help