Some info given by 'mdadm --detail --export' are not convenient to use
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
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
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=2Quoted 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.
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=2Quoted 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=0Quoted 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