Skip to contentSkip to conversation

raid10: no raid0 support?

DISCUSSION Alan D. Brunelle 2 participants 3 messages Jun 9, 2008 – Jul 7, 2008 MD RAID

lore
Share & tools
lore
#0 lore raw

Is there some reason why the MD RAID10 module does /not/ support a "RAID0-like" configuration (-p n1)? The comments in drivers/md/raid10.c seem to suggest it should: "* If [near_copies and far_copies] are 1, we get raid0." Yet the code specifically checks for ((near_copies * far_copies) > 1).

Just curious, as it seems interesting that one could support RAID0, RAID1 /and/ RAID10 all w/ one RAID module.

Thanks,
Alan D. Brunelle
HP / OSLO / S&P

#1 lore raw
Quoted 5 lines · On Monday June 9, [email protected] wrote:

Is there some reason why the MD RAID10 module does /not/ support a "RAID0-like" configuration (-p n1)? The comments in drivers/md/raid10.c seem to suggest it should: "* If [near_copies and far_copies] are 1, we get raid0." Yet the code specifically checks for ((near_copies * far_copies) > 1).

You mean:

	if ((nc*fc) <2 || (nc*fc) > mddev->raid_disks ||
	    (mddev->layout >> 17)) {
		printk(KERN_ERR "raid10: %s: unsupported raid10 layout: 0x%8x\n",
		       mdname(mddev), mddev->layout);
		goto out;
	}

Yes, I guess that could be "nc*fc < 1". Everything else should still work.

I cannot think of a good reason for making a raid10 with no redundancy though.

Quoted 3 lines

Just curious, as it seems interesting that one could support RAID0, RAID1 /and/ RAID10 all w/ one RAID module.

Interesting: yes.
Useful: not sure.

NeilBrown

#2 lore raw
Quoted 20 lines · Neil Brown
Quoted 5 lines · On Monday June 9, [email protected] wrote:

Is there some reason why the MD RAID10 module does /not/ support a "RAID0-like" configuration (-p n1)? The comments in drivers/md/raid10.c seem to suggest it should: "* If [near_copies and far_copies] are 1, we get raid0." Yet the code specifically checks for ((near_copies * far_copies) > 1).

You mean:

	if ((nc*fc) <2 || (nc*fc) > mddev->raid_disks ||
	    (mddev->layout >> 17)) {
		printk(KERN_ERR "raid10: %s: unsupported raid10 layout: 0x%8x\n",
		       mdname(mddev), mddev->layout);
		goto out;
	}

Yes, I guess that could be "nc*fc < 1". Everything else should still work.

I cannot think of a good reason for making a raid10 with no redundancy though.

Quoted 8 lines
Quoted 2 lines

Just curious, as it seems interesting that one could support RAID0, RAID1 /and/ RAID10 all w/ one RAID module.

Interesting: yes.
Useful: not sure.

NeilBrown

Sorry for the tardy response (on holiday), just thinking about the algorithm's application to another problem where having one piece of code supporting all three RAID modes is goodness...

Thanks,
Alan