Skip to contentSkip to conversation

Some info given by 'mdadm --detail --export' are not convenient to use

DISCUSSION Francis Moreau 3 participants 4 messages Apr 11, 2014 – Apr 12, 2014 MD RAID

lore
Share & tools
lore
#0 lore raw

Hello,

I'm writing a tool that relies udev lib in order to manage block devices connected to my computer.

One thing that I need is to retrieve disks contained by a RAID array.

The current usefull information exported by udev are, for example:

MD_DEVICES=3
MD_DEVICE_loop0p1_DEV=/dev/loop0p1
MD_DEVICE_loop0p1_ROLE=0
MD_DEVICE_loop1p1_DEV=/dev/loop1p1
MD_DEVICE_loop1p1_ROLE=1
MD_DEVICE_loop2p1_DEV=/dev/loop2p1
MD_DEVICE_loop2p1_ROLE=2

but this is not really easy to exploit since I need to know the disk names in order to poke the devices used by the array :-/

why not simply using ?

MD_DEVICE_DEV_1=/dev/loop0p1
MD_DEVICE_ROLE_1=0

Thanks

#1 lore raw
Quoted 17 lines · On Fri, 11 Apr 2014 13:01:49 +0200 Francis Moreau <[email protected]>…

Hello,

I'm writing a tool that relies udev lib in order to manage block devices connected to my computer.

One thing that I need is to retrieve disks contained by a RAID array.

The current usefull information exported by udev are, for example:

MD_DEVICES=3
MD_DEVICE_loop0p1_DEV=/dev/loop0p1
MD_DEVICE_loop0p1_ROLE=0
MD_DEVICE_loop1p1_DEV=/dev/loop1p1
MD_DEVICE_loop1p1_ROLE=1
MD_DEVICE_loop2p1_DEV=/dev/loop2p1
MD_DEVICE_loop2p1_ROLE=2

Quoted 8 lines

but this is not really easy to exploit since I need to know the disk names in order to poke the devices used by the array :-/

why not simply using ?

MD_DEVICE_DEV_1=/dev/loop0p1
MD_DEVICE_ROLE_1=0

What number would I use for spare devices? Certainly something like this could be done, but it wasn't.

Maybe what you are really asking is:

"Could we please have another record which lists all the devices, e.g.
MD_DEVICE_LIST=loop0p1 loop1p1 loop2p1
??"

Obviously you can extract that from the output above, but it might be easier to have it explicitly.

Would that meet your need, or have I misunderstood you completely?

NeilBrown

#2 lore raw
Quoted 29 lines · NeilBrown
Quoted 17 lines · On Fri, 11 Apr 2014 13:01:49 +0200 Francis Moreau <[email protected]>…

Hello,

I'm writing a tool that relies udev lib in order to manage block devices connected to my computer.

One thing that I need is to retrieve disks contained by a RAID array.

The current usefull information exported by udev are, for example:

MD_DEVICES=3
MD_DEVICE_loop0p1_DEV=/dev/loop0p1
MD_DEVICE_loop0p1_ROLE=0
MD_DEVICE_loop1p1_DEV=/dev/loop1p1
MD_DEVICE_loop1p1_ROLE=1
MD_DEVICE_loop2p1_DEV=/dev/loop2p1
MD_DEVICE_loop2p1_ROLE=2

Quoted 8 lines

but this is not really easy to exploit since I need to know the disk names in order to poke the devices used by the array :-/

why not simply using ?

MD_DEVICE_DEV_1=/dev/loop0p1
MD_DEVICE_ROLE_1=0

Quoted 9 lines

What number would I use for spare devices? Certainly something like this could be done, but it wasn't.

Maybe what you are really asking is:

"Could we please have another record which lists all the devices, e.g.
MD_DEVICE_LIST=loop0p1 loop1p1 loop2p1
??"

Yes please, that's what I was asking for: there's currently no easy way to retrieve the list of disks that is part of an array. Currently we have:

MD_DEVICE_loop0p1_DEV=/dev/loop0p1

The name of the property involves the value of the property.

Quoted 2 lines

Obviously you can extract that from the output above, but it might be easier to have it explicitly.

Yes I can but it's not very convenient.

Quoted 3 lines

Would that meet your need, or have I misunderstood you completely?

Yes, it would.

Thanks.

#3 lore raw

Hi
If i can give my thoughts
I like the idea of having a MD device list
But I also think the francis's idea is good and for the spare you could enumerate with letter ?

we could get :

MD_DEVICES=4
MD_DEVICE_LIST=loop0p1 loop1p1 loop2p1 loop3p1
MD_DEVICE_DEV_1=/dev/loop0p1
MD_DEVICE_ROLE_1=0
MD_DEVICE_DEV_2=/dev/loop1p1
MD_DEVICE_ROLE_2=1
MD_DEVICE_DEV_3=/dev/loop2p1
MD_DEVICE_ROLE_3=2
MD_DEVICE_DEV_A=/dev/loop3p1
MD_DEVICE_ROLE_A=spare

like that it's really easy to parse what ever you need :-)

or maybe just continue normal increment since we have the role...

Quoted 64 lines · Francis Moreau
Quoted 29 lines · NeilBrown
Quoted 17 lines · On Fri, 11 Apr 2014 13:01:49 +0200 Francis Moreau <[email protected]>…

Hello,

I'm writing a tool that relies udev lib in order to manage block devices connected to my computer.

One thing that I need is to retrieve disks contained by a RAID array.

The current usefull information exported by udev are, for example:

MD_DEVICES=3
MD_DEVICE_loop0p1_DEV=/dev/loop0p1
MD_DEVICE_loop0p1_ROLE=0
MD_DEVICE_loop1p1_DEV=/dev/loop1p1
MD_DEVICE_loop1p1_ROLE=1
MD_DEVICE_loop2p1_DEV=/dev/loop2p1
MD_DEVICE_loop2p1_ROLE=2

Quoted 8 lines

but this is not really easy to exploit since I need to know the disk names in order to poke the devices used by the array :-/

why not simply using ?

MD_DEVICE_DEV_1=/dev/loop0p1
MD_DEVICE_ROLE_1=0

Quoted 9 lines

What number would I use for spare devices? Certainly something like this could be done, but it wasn't.

Maybe what you are really asking is:

"Could we please have another record which lists all the devices, e.g.
MD_DEVICE_LIST=loop0p1 loop1p1 loop2p1
??"

Yes please, that's what I was asking for: there's currently no easy way to retrieve the list of disks that is part of an array. Currently we have:

MD_DEVICE_loop0p1_DEV=/dev/loop0p1

The name of the property involves the value of the property.

Quoted 2 lines

Obviously you can extract that from the output above, but it might be easier to have it explicitly.

Yes I can but it's not very convenient.

Quoted 3 lines

Would that meet your need, or have I misunderstood you completely?

Yes, it would.

Thanks.

--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html