Skip to contentSkip to conversation

Avoiding resync of RAID1 during creation

DISCUSSION Bryan Wann 2 participants 4 messages Feb 20, 2006 MD RAID

lore
Share & tools
lore

Bryan Wann

author
#0 lore raw

With FC2, when installing a fresh new system we would create a RAID10 array by creating several RAID1s, then adding all of those to a RAID0 array. To make the RAID1 devices, we'd use the command:
/sbin/mkraid --really-force --dangerous-no-resync /dev/mdX

Then we'd set up the RAID0 and mke2fs our filesystems on top of it. This worked well for us, never had any problems later. As soon as the kickstart was finished, the system was ready to go.

Now with FC4, raidtools is gone and I'm left with mdadm tools. As far as I can tell, mdadm has nothing resembling --dangerous-no-resync. I've updated my kickstart to use mdadm instead of mkraid using:

  /sbin/mdadm --create /dev/md4 --force --run --level=1 --chunk=256 \
  --raid-disks=2 --spare-devices=0 /dev/sda5 /dev/sde5

This causes all of the newly created RAID1 devices to start syncing. On a system with many large disks and RAID1 arrays, syncing takes a considerably long time.

Is there any way to avoid the sync after creation when using mdadm like I could with mkraid?

The compelling argument I've read in the archives indicates this would run counter to ensuring both partitions were completely clean at a block level. I would think creation of the filesystem on top of the array would ensure they're clean, at least on that level for all intents and purposes.

--bryan

#1 lore raw
Quoted 4 lines · Bryan Wann

Now with FC4, raidtools is gone and I'm left with mdadm tools. As far as I can tell, mdadm has nothing resembling --dangerous-no-resync. I've updated my kickstart to use mdadm instead of mkraid using:

mdadm --assume-clean

from the man page:

It can also be used when creating a RAID1 or RAID10 if you want to avoid the initial resync, however this practice - while normally safe
- is not recommended.

/ tuomas

author
#2 lore raw
Quoted 7 lines · Tuomas Leikola

mdadm --assume-clean

from the man page:

It can also be used when creating a RAID1 or RAID10 if you want to avoid the initial resync, however this practice - while normally safe
- is not recommended.

What version of mdadm was that from? From mdadm(8) in mdadm-1.11.0-4.fc4 on my systems:

--assume-clean
Tell mdadm that the array pre-existed and is known to be clean.
This is only really useful for Building RAID1 array. Only use
this if you really know what you are doing. This is currently only supported for --build.

I tried with --assume-clean, it still wanted to sync. From what my man page was telling me, it only works with --build. If I use --build it'll go ahead without syncing, but I need per-device superblocks. Why mdadm didn't error when I used --assume-clean with --create, I don't know.

--bryan

#3 lore raw
Quoted 5 lines · Bryan Wann
Quoted 2 lines

mdadm --assume-clean

What version of mdadm was that from? From mdadm(8) in mdadm-1.11.0-4.fc4 on my systems:

<cut>

Quoted 1 line

I tried with --assume-clean, it still wanted to sync.

The man page i quoted was from 2.3.1 (6 feb) - relatively new.

I tested this with 2 boxes: 1.9.0 starts the resync and 2.3.1 doesn't. Used kernel 2.6.14 - altough I don't expect that to make much of a difference.

-tuomas