Skip to contentSkip to conversation

raidstart used deprecated START_ARRAY ioctl

DISCUSSION Norberto Bensa 2 participants 5 messages Jul 9, 2004 – Jul 23, 2004

lore
Share & tools
lore
#0 lore raw

Hello,

What does this mean and how do I fix it?

md: raidstart(pid 4983) used deprecated START_ARRAY ioctl. This will not be supported beyond 2.6

Thanks,
Norberto

#1 lore raw
Quoted 7 lines · On Friday July 9, [email protected] wrote:

Hello,

What does this mean and how do I fix it?

md: raidstart(pid 4983) used deprecated START_ARRAY ioctl. This will not be supported beyond 2.6

It means that the mechanism (that START_ARRAY ioctl) that 'raidstart' uses to start an array is "deprecated", as in it won't be supported in future.
The reason for this is that it is badly designed and is not reliable. If you have a degraded array, there is at-least and even chance that raidstart will not successfully start it for you.

So, you should stop using raidstart.

The options are:

1/ use "autodetect". I'm not a big fan of this personally, but it is
much more reliable than START_ARRAY.
This is done by set the partition type of all partitions that contain part of an MD array to "Linux Raid Autodetect" (0xFD). Then all arrays are found and assembled at boot time. This requires having all of md (that you need) compiled into the kernel, not as modules.

2/ use mdadm. Read the man page about ASSEMBLE MODE.
You have an /etc/mdadm.conf that lists
- devices (or partitions) to scan
- arrays to be started
- UUID of each array

and mdadm will find and assemble the arrays.

NeilBrown

#2 lore raw

Hello Neil,

Quoted 7 lines · Neil Brown
Quoted 3 lines · On Friday July 9, [email protected] wrote:

Hello,

What does this mean and how do I fix it?

If you have a degraded array, there is at-least and even chance that raidstart will not successfully start it for you.

Aha. It didn't start the array when I compiled md and raid0 built-in; that's how I discovered this.

It works as modules (weird to me, but I'm not a kernel guru)

Quoted 1 line

So, you should stop using raidstart.

Ok.

Quoted 4 lines

The options are:

1/ use "autodetect". I'm not a big fan of this personally, but it is
much more reliable than START_ARRAY.

I already have. But Gentoo uses raidstart (This is pure guessing, I need to dig into the init scripts.

Quoted 5 lines

This is done by set the partition type of all partitions that contain part of an MD array to "Linux Raid Autodetect" (0xFD). Then all arrays are found and assembled at boot time. This requires having all of md (that you need) compiled into the kernel, not as modules.

Did I get that right? Can I get rid of raidstart and the array will be "assembled by the kernel"?

Quoted 7 lines

2/ use mdadm. Read the man page about ASSEMBLE MODE.
You have an /etc/mdadm.conf that lists
- devices (or partitions) to scan
- arrays to be started
- UUID of each array

and mdadm will find and assemble the arrays.

I think I have read something about mdadm in Gentoo docs somewhere. I really need to check that out.

Thanks Neil.

Best regards,
Norberto

#3 lore raw
Quoted 9 lines · On Friday July 9, [email protected] wrote:
Quoted 6 lines

This is done by set the partition type of all partitions that contain part of an MD array to "Linux Raid Autodetect" (0xFD). Then all arrays are found and assembled at boot time. This requires having all of md (that you need) compiled into the kernel, not as modules.

Did I get that right? Can I get rid of raidstart and the array will be "assembled by the kernel"?

Yes. If all the components of the arrays are in partitions with type 0xFD, and the md driver and raid personalities are compiled into the kernel (not modules), then the kernel will automatically start the arrays for you.

NeilBrown

#4 lore raw
Quoted 8 lines · Neil Brown
Quoted 2 lines · On Friday July 9, [email protected] wrote:

Did I get that right? Can I get rid of raidstart and the array will be "assembled by the kernel"?

Yes. If all the components of the arrays are in partitions with type 0xFD, and the md driver and raid personalities are compiled into the kernel (not modules), then the kernel will automatically start the arrays for you.

Thanks Neil!!

Actually, after I sent that e-mail, I tried it myself and it worked like a charm.

With best regards,
Norberto