All,
The simple patch suggested by Lance Robinson was successful in
bringing up 18 disk RAID-5 on our stock RedHat 6.0 system. The changes
were made on a "pure" kernel,modules,raidtools with no other previous
customization.
Our test was on partitions distributed over 2 disks. We got
repeated SCSI timeouts, but this doesn't have anything to do with the
patch; we have seen it before. A 1.2 GB tarball made on the RAID
checked out perfectly.
In addition to md_k.h and md_p.h, Tom Dickson found we had to
change md-int.h in the raidtools source. The details were as follows
(we actually set up for 20 disks):
In linux/include/linux/raid/md_k.h we made
#define MAX_REAL 20
In linux/include/linux/raid/md_p.h we had to make
#define MD_SB_DISKS_WORDS 640
because already we had
#define MD_SB_DESCRIPTOR_WORDS 32
and under those was
#define MD_SB_DISKS (MD_SB_DISKS_WORDS / MD_SB_DESCRIPTOR_WORDS)
Also, in the file /usr/src/redhat/SOURCES/raidtools-0.90/md-int.h we
had to make
#define MD_SB_DISKS_WORDS 640
for similar reasons.
Tom's compile steps were:
<Fix md_k.h and md_p.h>
<Save .config somewhere in case needed>
make mrproper
make oldconfig
make dep
make clean
make bzImage
make modules
make modules_install
<Go to source dir of raidtools>
<Fix md-int.h>
rm *.o
./configure
make
<Copy resulting tools into /sbin>
<Copy an initrd for identical kernel without raidpatch to "initrd.gz"
in a scratch directory>
<Go to that scratch directory>
gunzip initrd.gz
mount -o loop initrd /mnt/floppy
cd /mnt/floppy/lib
ls
<This will show the modules>
<Overwrite these with the new versions>
umount /mnt/floppy
<Go back to scratch directory>
gzip -9 initrd
<Move "initrd.gz" back to /boot and reference it in /etc/lilo.conf>
/sbin/lilo
This is the first step in our RAID development that was easier than
expected. Thanks,
Larry