home | list info | list archive | date index | thread index

Re: [OCLUG-Tech] Problem with SATA and SCSI disks in the same computer.

On 8/2/07, Martin Hicks <mort [ at ] bork [ dot ] org> wrote:
>
>
>
> On Thu, Aug 02, 2007 at 03:06:33PM -0400, Charles Nadeau wrote:
> >
> > My mdadm.conf contains:
> >
> > Mosix3 ~ # cat /etc/mdadm.conf
> > ARRAY /dev/md2 level=raid1 num-devices=2
> > UUID=efacfbe7:6e9e0810:b319f3f2:2f766414
> > ARRAY /dev/md1 level=raid1 num-devices=2
> > UUID=a6fdc8f9:cff41e4c:b2de13d1:5c346c07
> > ARRAY /dev/md0 level=raid0 num-devices=2
> > UUID=c240389a:89523183:7722dc6b:ec923cb9
> > ARRAY /dev/md3 level=raid1 num-devices=2
> > UUID=3b4a8b04:36d07c5f:8168f08f:cd06dedb
> >
> > There is no reference to any drive there. I'll try to safely re-write
> it.
>
> THis should be fine, afaik.  If the partition type on the disks is linux
> raid, the md driver will scan all partitions of this type, look for the
> UUID in the raid superblock and assemble the arrays correctly.


I did some tests last night. I commented out the line mounting my RAID
arrays in  my /etc/fstab, powered on my external SCSI disk arrays and booted
my machine.  It tried to assemble /dev/md0 but it recognized that the drives
were not the same as the "original" /dev/md0 and failed, which was the
behaviour I expected. But it allowed me to have a complete lists of all the
drives in my machine (so I can ):

Mosix3 ~ # ls -lR /dev/disk
/dev/disk:
total 0
drwxr-xr-x 2 root root 720 Aug  2 12:43 by-id
drwxr-xr-x 2 root root 720 Aug  2 12:43 by-path
drwxr-xr-x 2 root root  80 Aug  2 12:43 by-uuid

/dev/disk/by-id:
total 0
lrwxrwxrwx 1 root root  9 Aug  2 12:43ata-Maxtor_6L300R0_L60GKR0H ->
../../hdc
lrwxrwxrwx 1 root root 10 Aug  2 12:43ata-Maxtor_6L300R0_L60GKR0H-part1 ->
../../hdc1
lrwxrwxrwx 1 root root  9 Aug  2 12:43ata-Maxtor_6L300R0_L60GKTWH ->
../../hde
lrwxrwxrwx 1 root root 10 Aug  2 12:43ata-Maxtor_6L300R0_L60GKTWH-part1 ->
../../hde1
lrwxrwxrwx 1 root root  9 Aug  2 12:43ata-Maxtor_6L300R0_L60GL3KH ->
../../hdg
lrwxrwxrwx 1 root root 10 Aug  2 12:43ata-Maxtor_6L300R0_L60GL3KH-part1 ->
../../hdg1
lrwxrwxrwx 1 root root  9 Aug  2 12:43 ata-ST3400620A_5QG00PTD -> ../../hdi
lrwxrwxrwx 1 root root 10 Aug  2 12:43ata-ST3400620A_5QG00PTD-part1 ->
../../hdi1
lrwxrwxrwx 1 root root  9 Aug  2 12:43ata-TOSHIBA_CD-ROM_XM-6202B_b___ ->
../../hdb
lrwxrwxrwx 1 root root  9 Aug  2 12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052
-> ../../hda
lrwxrwxrwx 1 root root 10 Aug  2
12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part1
-> ../../hda1
lrwxrwxrwx 1 root root 10 Aug  2
12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part2
-> ../../hda2
lrwxrwxrwx 1 root root 10 Aug  2
12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part3
-> ../../hda3
lrwxrwxrwx 1 root root 10 Aug  2
12:43ata-WDC_WD800BB-00CAA1_WD-WMA8E7164052-part4
-> ../../hda4
lrwxrwxrwx 1 root root  9 Aug  2 12:43 scsi-20010b9ff0a0d0a11 -> ../../sdd
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-20010b9ff0a0d0a11-part1 ->
../../sdd1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-20010b9ff0a0d0a11-part2 ->
../../sdd2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 scsi-35005076206d4c15f -> ../../sdb
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-35005076206d4c15f-part1 ->
../../sdb1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-35005076206d4c15f-part2 ->
../../sdb2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 scsi-35005076206d4cc06 -> ../../sdc
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-35005076206d4cc06-part1 ->
../../sdc1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-35005076206d4cc06-part2 ->
../../sdc2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 scsi-35005076706c87c8b -> ../../sda
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-35005076706c87c8b-part1 ->
../../sda1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-35005076706c87c8b-part2 ->
../../sda2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 scsi-SATA_ST3300831AS_3NF0G35L ->
../../sdg
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-SATA_ST3300831AS_3NF0G35L-part1
-> ../../sdg1
lrwxrwxrwx 1 root root  9 Aug  2 12:43 scsi-SATA_ST3500630AS_5QG04MV9 ->
../../sdf
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-SATA_ST3500630AS_5QG04MV9-part1
-> ../../sdf1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-SATA_ST3500630AS_5QG04MV9-part2
-> ../../sdf2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 scsi-SATA_ST3500630AS_5QG04MZX ->
../../sde
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-SATA_ST3500630AS_5QG04MZX-part1
-> ../../sde1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 scsi-SATA_ST3500630AS_5QG04MZX-part2
-> ../../sde2

/dev/disk/by-path:
total 0
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:08.0-scsi-0:0:0:0 ->
../../sde
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:08.0-scsi-0:0:0:0-part1
-> ../../sde1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:08.0-scsi-0:0:0:0-part2
-> ../../sde2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:12:0 ->
../../sdd
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:12:0-part1
-> ../../sdd1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:12:0-part2
-> ../../sdd2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:1:0 ->
../../sda
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:1:0-part1
-> ../../sda1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:1:0-part2
-> ../../sda2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:6:0 ->
../../sdb
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:6:0-part1
-> ../../sdb1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:6:0-part2
-> ../../sdb2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:9:0 ->
../../sdc
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:9:0-part1
-> ../../sdc1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0b.0-scsi-0:0:9:0-part2
-> ../../sdc2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0d.0-ide-0:0 -> ../../hde
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0d.0-ide-0:0-part1 ->
../../hde1
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0d.0-ide-1:0 -> ../../hdg
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0d.0-ide-1:0-part1 ->
../../hdg1
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0d.1-ide-0:0 -> ../../hdi
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0d.1-ide-0:0-part1 ->
../../hdi1
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0f.0-scsi-0:0:0:0 ->
../../sdf
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0f.0-scsi-0:0:0:0-part1
-> ../../sdf1
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0f.0-scsi-0:0:0:0-part2
-> ../../sdf2
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0f.0-scsi-1:0:0:0 ->
../../sdg
lrwxrwxrwx 1 root root 10 Aug  2 12:43 pci-0000:00:0f.0-scsi-1:0:0:0-part1
-> ../../sdg1
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0f.1-ide-0:0 -> ../../hda
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0f.1-ide-0:0-part1 ->
../../hda1
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0f.1-ide-0:0-part2 ->
../../hda2
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0f.1-ide-0:0-part3 ->
../../hda3
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0f.1-ide-0:0-part4 ->
../../hda4
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0f.1-ide-0:1 -> ../../hdb
lrwxrwxrwx 1 root root  9 Aug  2 12:43 pci-0000:00:0f.1-ide-1:0 -> ../../hdc
lrwxrwxrwx 1 root root 10 Aug  2 12:43pci-0000:00:0f.1-ide-1:0-part1 ->
../../hdc1

/dev/disk/by-uuid:
total 0
lrwxrwxrwx 1 root root 10 Aug  2 12:4398680beb-c935-40a1-9c38-ae01b8c21b88
-> ../../hda1
lrwxrwxrwx 1 root root 10 Aug  2 12:43a5702d8d-f05f-42ee-a1d7-333eec156994
-> ../../hda3

Mosix3 ~ # udevinfo -a -p /sys/block/sda

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sda':
   KERNEL=="sda"
   SUBSYSTEM=="block"
   DRIVER==""
   ATTR{stat}=="      36      173      718      124        0        0
0        0
       0      112      124"
   ATTR{size}=="35843670"
   ATTR{removable}=="0"
   ATTR{range}=="16"
   ATTR{dev}=="8:0"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:1/0:0:1:0':
   KERNELS=="0:0:1:0"
   SUBSYSTEMS=="scsi"
   DRIVERS=="sd"
   ATTRS{ioerr_cnt}=="0x1"
   ATTRS{iodone_cnt}=="0x3e"
   ATTRS{iorequest_cnt}=="0x3e"
   ATTRS{iocounterbits}=="32"
   ATTRS{timeout}=="30"
   ATTRS{state}=="running"
   ATTRS{rev}=="S96H"
   ATTRS{model}=="DDYS-T18350N    "
   ATTRS{vendor}=="IBM     "
   ATTRS{scsi_level}=="4"
   ATTRS{type}=="0"
   ATTRS{queue_type}=="ordered"
   ATTRS{queue_depth}=="32"
   ATTRS{device_blocked}=="0"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:1':
   KERNELS=="target0:0:1"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0':
   KERNELS=="host0"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0':
   KERNELS=="0000:00:0b.0"
   SUBSYSTEMS=="pci"
   DRIVERS=="aic7xxx"
   ATTRS{broken_parity_status}=="0"
   ATTRS{enable}=="1"
   ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00"
   ATTRS{local_cpus}=="1"
   ATTRS{irq}=="201"
   ATTRS{class}=="0x010000"
   ATTRS{subsystem_device}=="0xe2a0"
   ATTRS{subsystem_vendor}=="0x9005"
   ATTRS{device}=="0x0080"
   ATTRS{vendor}=="0x9005"

 looking at parent device '/devices/pci0000:00':
   KERNELS=="pci0000:00"
   SUBSYSTEMS==""
   DRIVERS==""

Mosix3 ~ # udevinfo -a -p /sys/block/sdb

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sdb':
   KERNEL=="sdb"
   SUBSYSTEM=="block"
   DRIVER==""
   ATTR{stat}=="      32      162      598      136        0        0
0        0
       0      136      136"
   ATTR{size}=="35843670"
   ATTR{removable}=="0"
   ATTR{range}=="16"
   ATTR{dev}=="8:16"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:6/0:0:6:0':
   KERNELS=="0:0:6:0"
   SUBSYSTEMS=="scsi"
   DRIVERS=="sd"
   ATTRS{ioerr_cnt}=="0x1"
   ATTRS{iodone_cnt}=="0x3a"
   ATTRS{iorequest_cnt}=="0x3a"
   ATTRS{iocounterbits}=="32"
   ATTRS{timeout}=="30"
   ATTRS{state}=="running"
   ATTRS{rev}=="S96H"
   ATTRS{model}=="DDYS-T18350N    "
   ATTRS{vendor}=="IBM     "
   ATTRS{scsi_level}=="4"
   ATTRS{type}=="0"
   ATTRS{queue_type}=="ordered"
   ATTRS{queue_depth}=="32"
   ATTRS{device_blocked}=="0"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:6':
   KERNELS=="target0:0:6"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0':
   KERNELS=="host0"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0':
   KERNELS=="0000:00:0b.0"
   SUBSYSTEMS=="pci"
   DRIVERS=="aic7xxx"
   ATTRS{broken_parity_status}=="0"
   ATTRS{enable}=="1"
   ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00"
   ATTRS{local_cpus}=="1"
   ATTRS{irq}=="201"
   ATTRS{class}=="0x010000"
   ATTRS{subsystem_device}=="0xe2a0"
   ATTRS{subsystem_vendor}=="0x9005"
   ATTRS{device}=="0x0080"
   ATTRS{vendor}=="0x9005"

 looking at parent device '/devices/pci0000:00':
   KERNELS=="pci0000:00"
   SUBSYSTEMS==""
   DRIVERS==""

Mosix3 ~ # udevinfo -a -p /sys/block/sdc

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sdc':
   KERNEL=="sdc"
   SUBSYSTEM=="block"
   DRIVER==""
   ATTR{stat}=="      31      159      566      124        0        0
0        0
       0      108      124"
   ATTR{size}=="35843670"
   ATTR{removable}=="0"
   ATTR{range}=="16"
   ATTR{dev}=="8:32"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:9/0:0:9:0':
   KERNELS=="0:0:9:0"
   SUBSYSTEMS=="scsi"
   DRIVERS=="sd"
   ATTRS{ioerr_cnt}=="0x1"
   ATTRS{iodone_cnt}=="0x39"
   ATTRS{iorequest_cnt}=="0x39"
   ATTRS{iocounterbits}=="32"
   ATTRS{timeout}=="30"
   ATTRS{state}=="running"
   ATTRS{rev}=="S96H"
   ATTRS{model}=="DDYS-T18350N    "
   ATTRS{vendor}=="IBM     "
   ATTRS{scsi_level}=="4"
   ATTRS{type}=="0"
   ATTRS{queue_type}=="ordered"
   ATTRS{queue_depth}=="32"
   ATTRS{device_blocked}=="0"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:9':
   KERNELS=="target0:0:9"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0':
   KERNELS=="host0"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0':
   KERNELS=="0000:00:0b.0"
   SUBSYSTEMS=="pci"
   DRIVERS=="aic7xxx"
   ATTRS{broken_parity_status}=="0"
   ATTRS{enable}=="1"
   ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00"
   ATTRS{local_cpus}=="1"
   ATTRS{irq}=="201"
   ATTRS{class}=="0x010000"
   ATTRS{subsystem_device}=="0xe2a0"
   ATTRS{subsystem_vendor}=="0x9005"
   ATTRS{device}=="0x0080"
   ATTRS{vendor}=="0x9005"

 looking at parent device '/devices/pci0000:00':
   KERNELS=="pci0000:00"
   SUBSYSTEMS==""
   DRIVERS==""

Mosix3 ~ # udevinfo -a -p /sys/block/sdd

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sdd':
   KERNEL=="sdd"
   SUBSYSTEM=="block"
   DRIVER==""
   ATTR{stat}=="      34      119      720       20        0        0
0        0
       0       20       20"
   ATTR{size}=="71833096"
   ATTR{removable}=="0"
   ATTR{range}=="16"
   ATTR{dev}=="8:48"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:12/0:0:12:0
':
   KERNELS=="0:0:12:0"
   SUBSYSTEMS=="scsi"
   DRIVERS=="sd"
   ATTRS{ioerr_cnt}=="0x1"
   ATTRS{iodone_cnt}=="0x3c"
   ATTRS{iorequest_cnt}=="0x3c"
   ATTRS{iocounterbits}=="32"
   ATTRS{timeout}=="30"
   ATTRS{state}=="running"
   ATTRS{rev}=="DFL0"
   ATTRS{model}=="ATLAS10K4_36WLS "
   ATTRS{vendor}=="MAXTOR  "
   ATTRS{scsi_level}=="4"
   ATTRS{type}=="0"
   ATTRS{queue_type}=="ordered"
   ATTRS{queue_depth}=="32"
   ATTRS{device_blocked}=="0"

 looking at parent
device '/devices/pci0000:00/0000:00:0b.0/host0/target0:0:12':
   KERNELS=="target0:0:12"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0/host0':
   KERNELS=="host0"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0b.0':
   KERNELS=="0000:00:0b.0"
   SUBSYSTEMS=="pci"
   DRIVERS=="aic7xxx"
   ATTRS{broken_parity_status}=="0"
   ATTRS{enable}=="1"
   ATTRS{modalias}=="pci:v00009005d00000080sv00009005sd0000E2A0bc01sc00i00"
   ATTRS{local_cpus}=="1"
   ATTRS{irq}=="201"
   ATTRS{class}=="0x010000"
   ATTRS{subsystem_device}=="0xe2a0"
   ATTRS{subsystem_vendor}=="0x9005"
   ATTRS{device}=="0x0080"
   ATTRS{vendor}=="0x9005"

 looking at parent device '/devices/pci0000:00':
   KERNELS=="pci0000:00"
   SUBSYSTEMS==""
   DRIVERS==""

Mosix3 ~ # udevinfo -a -p /sys/block/sde

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sde':
   KERNEL=="sde"
   SUBSYSTEM=="block"
   DRIVER==""
   ATTR{stat}=="    1692      368    13081     9696        0        0
0        0
       0     9660     9696"
   ATTR{size}=="976773168"
   ATTR{removable}=="0"
   ATTR{range}=="16"
   ATTR{dev}=="8:64"

 looking at parent
device '/devices/pci0000:00/0000:00:08.0/host1/target1:0:0/1:0:0:0':
   KERNELS=="1:0:0:0"
   SUBSYSTEMS=="scsi"
   DRIVERS=="sd"
   ATTRS{ioerr_cnt}=="0x0"
   ATTRS{iodone_cnt}=="0x6a9"
   ATTRS{iorequest_cnt}=="0x6a9"
   ATTRS{iocounterbits}=="32"
   ATTRS{timeout}=="30"
   ATTRS{state}=="running"
   ATTRS{rev}=="3.AA"
   ATTRS{model}=="ST3500630AS     "
   ATTRS{vendor}=="ATA     "
   ATTRS{scsi_level}=="6"
   ATTRS{type}=="0"
   ATTRS{queue_type}=="none"
   ATTRS{queue_depth}=="1"
   ATTRS{device_blocked}=="0"

 looking at parent
device '/devices/pci0000:00/0000:00:08.0/host1/target1:0:0':
   KERNELS=="target1:0:0"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:08.0/host1':
   KERNELS=="host1"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:08.0':
   KERNELS=="0000:00:08.0"
   SUBSYSTEMS=="pci"
   DRIVERS=="sata_promise"
   ATTRS{broken_parity_status}=="0"
   ATTRS{enable}=="1"
   ATTRS{modalias}=="pci:v0000105Ad00003373sv00001043sd000080F5bc01sc04i00"
   ATTRS{local_cpus}=="1"
   ATTRS{irq}=="185"
   ATTRS{class}=="0x010400"
   ATTRS{subsystem_device}=="0x80f5"
   ATTRS{subsystem_vendor}=="0x1043"
   ATTRS{device}=="0x3373"
   ATTRS{vendor}=="0x105a"

 looking at parent device '/devices/pci0000:00':
   KERNELS=="pci0000:00"
   SUBSYSTEMS==""
   DRIVERS==""

Mosix3 ~ # udevinfo -a -p /sys/block/sdf

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sdf':
   KERNEL=="sdf"
   SUBSYSTEM=="block"
   DRIVER==""
   ATTR{stat}=="    1689      358    12977     9712        0        0
0        0
       0     9668     9712"
   ATTR{size}=="976773168"
   ATTR{removable}=="0"
   ATTR{range}=="16"
   ATTR{dev}=="8:80"

 looking at parent
device '/devices/pci0000:00/0000:00:0f.0/host3/target3:0:0/3:0:0:0':
   KERNELS=="3:0:0:0"
   SUBSYSTEMS=="scsi"
   DRIVERS=="sd"
   ATTRS{ioerr_cnt}=="0x0"
   ATTRS{iodone_cnt}=="0x6a6"
   ATTRS{iorequest_cnt}=="0x6a6"
   ATTRS{iocounterbits}=="32"
   ATTRS{timeout}=="30"
   ATTRS{state}=="running"
   ATTRS{rev}=="3.AA"
   ATTRS{model}=="ST3500630AS     "
   ATTRS{vendor}=="ATA     "
   ATTRS{scsi_level}=="6"
   ATTRS{type}=="0"
   ATTRS{queue_type}=="none"
   ATTRS{queue_depth}=="1"
   ATTRS{device_blocked}=="0"

 looking at parent
- Show quoted text -
device '/devices/pci0000:00/0000:00:0f.0/host3/target3:0:0':
   KERNELS=="target3:0:0"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0f.0/host3':
   KERNELS=="host3"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0f.0':
   KERNELS=="0000:00:0f.0"
   SUBSYSTEMS=="pci"
   DRIVERS=="sata_via"
   ATTRS{broken_parity_status}=="0"
   ATTRS{enable}=="1"
   ATTRS{modalias}=="pci:v00001106d00003149sv00001043sd000080EDbc01sc04i00"
   ATTRS{local_cpus}=="1"
   ATTRS{irq}=="193"
   ATTRS{class}=="0x010400"
   ATTRS{subsystem_device}=="0x80ed"
   ATTRS{subsystem_vendor}=="0x1043"
   ATTRS{device}=="0x3149"
   ATTRS{vendor}=="0x1106"

 looking at parent device '/devices/pci0000:00':
   KERNELS=="pci0000:00"
   SUBSYSTEMS==""
   DRIVERS==""

Mosix3 ~ # udevinfo -a -p /sys/block/sdg

Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

 looking at device '/block/sdg':
   KERNEL=="sdg"
   SUBSYSTEM=="block"
   DRIVER==""
   ATTR{stat}=="      17       84      364       64        0        0
0        0
       0       64       64"
   ATTR{size}=="586072368"
   ATTR{removable}=="0"
   ATTR{range}=="16"
   ATTR{dev}=="8:96"

 looking at parent
device '/devices/pci0000:00/0000:00:0f.0/host4/target4:0:0/4:0:0:0':
   KERNELS=="4:0:0:0"
   SUBSYSTEMS=="scsi"
   DRIVERS=="sd"
   ATTRS{ioerr_cnt}=="0x0"
   ATTRS{iodone_cnt}=="0x1e"
   ATTRS{iorequest_cnt}=="0x1e"
   ATTRS{iocounterbits}=="32"
   ATTRS{timeout}=="30"
   ATTRS{state}=="running"
   ATTRS{rev}=="3.02"
   ATTRS{model}=="ST3300831AS     "
   ATTRS{vendor}=="ATA     "
   ATTRS{scsi_level}=="6"
   ATTRS{type}=="0"
   ATTRS{queue_type}=="none"
   ATTRS{queue_depth}=="1"
   ATTRS{device_blocked}=="0"

 looking at parent
device '/devices/pci0000:00/0000:00:0f.0/host4/target4:0:0':
   KERNELS=="target4:0:0"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0f.0/host4':
   KERNELS=="host4"
   SUBSYSTEMS==""
   DRIVERS==""

 looking at parent device '/devices/pci0000:00/0000:00:0f.0':
   KERNELS=="0000:00:0f.0"
   SUBSYSTEMS=="pci"
   DRIVERS=="sata_via"
   ATTRS{broken_parity_status}=="0"
   ATTRS{enable}=="1"
   ATTRS{modalias}=="pci:v00001106d00003149sv00001043sd000080EDbc01sc04i00"
   ATTRS{local_cpus}=="1"
   ATTRS{irq}=="193"
   ATTRS{class}=="0x010400"
   ATTRS{subsystem_device}=="0x80ed"
   ATTRS{subsystem_vendor}=="0x1043"
   ATTRS{device}=="0x3149"
   ATTRS{vendor}=="0x1106"

 looking at parent device '/devices/pci0000:00':
   KERNELS=="pci0000:00"
   SUBSYSTEMS==""
   DRIVERS==""


I then used mdadm to find the UUID of the array and put it in my mdadm.conf:

Mosix3 ~ # cat /etc/mdadm.conf
ARRAY /dev/md4 level=raid0 num-devices=4
UUID=d17b1ccf:d8a2bd55:46d6f34e:d4c58d63
ARRAY /dev/md2 level=raid1 num-devices=2
UUID=efacfbe7:6e9e0810:b319f3f2:2f766414
ARRAY /dev/md1 level=raid1 num-devices=2
UUID=a6fdc8f9:cff41e4c:b2de13d1:5c346c07
ARRAY /dev/md0 level=raid0 num-devices=2
UUID=c240389a:89523183:7722dc6b:ec923cb9
ARRAY /dev/md3 level=raid1 num-devices=2
UUID=3b4a8b04:36d07c5f:8168f08f:cd06dedb

I thought that by putting a new array /dev/md4 at the beginning of the file
with right UUID, it would be detected first and not conflict with the SATA
arrays but I was wrong.

What should I do now to "force" detection of /dev/md4 first and the others
arrays after. Could detecting /dev/md4 first solve my problem?
Is my problem solvable by focusing on the "arrays" aspect of it or by
focusing on the "udev rules" aspect of it?
I'll be at the OCLUG meeting on Tuesday night. We could discuss it there if
you attend.

Thanks!

Charles

mh
>
> --
> Martin Hicks || mort [ at ] bork [ dot ] org || PGP/GnuPG: 0x4C7F2BEE
>



-- 
Charles Nadeau Ph.D.
http://charlesnadeau.blogspot.com/
http://radio.weblogs.com/0111823/
Un emploi pour moi? Voila mon CV:
http://resumes.hotjobs.com/charlesnadeau/resumeprincipal
Got a job for me? Here is my Resume:
http://resumes.hotjobs.com/charlesnadeau/resumeprincipal