geometry confusion with pdc20270?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



First off I'd like to thank Arjan for clueing me in to ataraid!

I've got a fastrak 100 tx2 with a pair of 100Gb WD drives forming
a raid0 array, which was originally created in a promis ConnectStore II
device. When I boot up with the ataraid and pdcraid modules there appears
to be some confusion as to the size and geometery of the drives, and
it appears to result in the partition table being lost.

I'm running 2.4.18, but if I drop back to 2.4.10 then Promise's
ft.o binary module has no problems reading this array.

Here's what the raw ide drives show up as durring boot:

[...]
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
AMD_IDE: IDE controller on PCI bus 00 dev 39
AMD_IDE: chipset revision 1
AMD_IDE: not 100% native mode: will probe irqs later
AMD_IDE: AMD-766 Viper (rev 01) IDE UDMA100 controller on pci00:07.1
    ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio
PDC20270: IDE controller on PCI bus 00 dev 48
PDC20270: chipset revision 2
PDC20270: not 100% native mode: will probe irqs later
    ide2: BM-DMA at 0x14b0-0x14b7, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0x14b8-0x14bf, BIOS settings: hdg:pio, hdh:pio
hda: RICOH DVD/CDRW MP9060, ATAPI CD/DVD-ROM drive
hdd: ATAPI CD-ROM DRIVE 40X MAXIMUM, ATAPI CD/DVD-ROM drive
hde: WDC WD1000BB-32CHE0, ATA DISK drive
hdg: WDC WD1000BB-32CHE0, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide2 at 0x14d8-0x14df,0x14d2 on irq 11
ide3 at 0x14c8-0x14cf,0x14c6 on irq 11
blk: queue e037491c, I/O limit 4095Mb (mask 0xffffffff)
Warning: Primary channel requires an 80-pin cable for operation.
hde reduced to Ultra33 mode.
hde: safely enabled flush
hde: 195371568 sectors (100030 MB) w/8192KiB Cache, CHS=193821/16/63,
UDMA(33)
blk: queue e0374c88, I/O limit 4095Mb (mask 0xffffffff)
hdg: safely enabled flush
hdg: 195371568 sectors (100030 MB) w/8192KiB Cache, CHS=193821/16/63,
UDMA(100)
hdd: no flushcache support
hdd: ATAPI 32X CD-ROM drive, 128kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12
ide-floppy driver 0.99
Partition check:
 hde: hde1 hde2 hde3
 hdg: unknown partition table
Floppy drive(s): fd0 is 1.44M
[...]

latter, after my scsi drives are handled, the ataraid code comes in and
here's what it sees:

[...]
SCSI device sdb: 17783240 512-byte hdwr sectors (9105 MB)
 sdb: sdb1 sdb2 sdb4
 ataraid/d0: unknown partition table
Drive 0 is 95396 Mb (34 / 0)
Drive 1 is 95396 Mb (34 / 0)
Raid0 array consists of 2 drives.
Promise Fasttrak(tm) Softwareraid driver for linux version 0.03beta
[...]

If I look at the begining of each drive, I think I see why it fails to
find a partition table...

chesire:/tmp # hexdump /dev/hde | head
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
00001c0 0002 fe83 043f 0001 0000 39c4 0001 0000
00001d0 0501 fe82 153f 39c5 0001 2ad1 0004 0000
00001e0 1601 fe83 ffff 6496 0005 b7ec 1744 0000
00001f0 0000 0000 0000 0000 0000 0000 0000 aa55
0000200 0000 0000 0000 0000 0000 0000 0000 0000
*
13a0020 000a 0000 20d8 400b 0002 0000 20d8 400b
13a0030 0001 0000 1cd0 400b 0000 0000 0000 0000
chesire:/tmp # hexdump /dev/hdg | head
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
1398a00 9cc5 0000 f404 f406 f408 f40a f40c f40e
1398a10 f410 f412 f414 f416 f418 f41a f41c f41e
1398a20 f420 f422 f424 f426 f428 f42a f42c f42e
1398a30 f430 f432 f434 f436 f438 f43a f43c f43e
1398a40 f440 f442 f444 f446 f448 f44a f44c f44e
1398a50 f450 f452 f454 f456 f458 f45a f45c f45e
1398a60 f460 f462 f464 f466 f468 f46a f46c f46e
1398a70 f470 f472 f474 f476 f478 f47a f47c f47e
chesire:/tmp # hexdump /dev/ataraid/d0 | head
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
2728a00 9cc5 0000 f404 f406 f408 f40a f40c f40e
2728a10 f410 f412 f414 f416 f418 f41a f41c f41e
2728a20 f420 f422 f424 f426 f428 f42a f42c f42e
2728a30 f430 f432 f434 f436 f438 f43a f43c f43e
2728a40 f440 f442 f444 f446 f448 f44a f44c f44e
2728a50 f450 f452 f454 f456 f458 f45a f45c f45e
2728a60 f460 f462 f464 f466 f468 f46a f46c f46e
2728a70 f470 f472 f474 f476 f478 f47a f47c f47e

What this says to me is that the first 512 bytes of hde don't showup
in the resulting raid. And since that's where the partition table is
stored.... :(    (note that the first partition on this array was
wiped with a dd from /dev/zero using their ft.o module a while ago,
that's why data doesn't start untill almost 40 meg into the raid.)

I've read through pdcraid.c, but don't see anything that jumps out
at me, can anyone suggest the next step in debug?

side question, I think this comment has a minor bug, probably
insignificant to those that understand the code, but for those
of us just reading it for the first time... well, it had me confused
for a second or three:

/* Ok. We need to modify this sector number to a new disk + new sector number.
 * If there are disks of different sizes, this gets tricky.
 * Example with 3 disks (1Gb, 4Gb and 5 GB):
 * The first 3 Gb of the "RAID" are evenly spread over the 3 disks.
 * Then things get interesting. The next 2Gb (RAID view) are spread across disk 2 and 3
 * and the last 1Gb is disk 3 only.

Should not that say that "The next 6Gb (RAID view)", as it would be gigs
2-4 on those drives.

-- 
Never make a technical decision based upon the politics of the situation.
Never make a political decision based upon technical issues.
The only place these realms meet is in the mind of the unenlightened.
			-- Geoffrey James, The Zen of Programming





[Index of Archives]     [Linux RAID]     [Linux Device Mapper]     [Linux IDE]     [Linux SCSI]     [Kernel]     [Linux Books]     [Linux Admin]     [GFS]     [RPM]     [Yosemite Campgrounds]     [AMD 64]

  Powered by Linux