Multiple RAID controllers plus SAN volumes during CentOS 5 kickstart install

centos5kickstartstorage-area-network

Okay so I ran into a situation while trying to perform a CentOS 5.5 PXE boot kickstart install on a Dell PowerEdge 2950 with a PERC6/i RAID controller along with dual LSI Logic/Symbios Logic SAS1068 Fusion-MPT SAS RAID controllers connected to two Dell MD3000 storage arrays.

The issue was in that I was wanting the operating system to install on the PERC RAID volume and not on the MD3000's but Anaconda was picking up the 8 volumes on the MD3000's (4 volumes each) and then the internal RAID volume as the 9th (/dev/sdi). All combinations and modifications I made to the kickstart config didn't seem to have any effect. The only option I was left with was to remove the SAN cable connections to the SAS1068's and install CentOS then reconnect the SAN cables and reconfigure to mount their volumes which were now being seen as /dev/sd[b-i] rather than /dev/sd[a-h].

I got around the problem this time with having to drive in and physically manage things but would have been nice to managed it remotely which is why we had the system equipped with KVM over IP and a PXE boot build network. I exhausted all my tricks and knowledge on kickstarts and CentOS installs and couldn't solve this problem but was able to navigate all the others.

Updated to include kickstart used that fails, the base repo is given in the PXE boot APPEND options as method=http://internal.mirror.host/centos/5.5/os/x86_64.

install
lang en_US.UTF-8
keyboard us
network --bootproto dhcp --noipv6 --hostname centos
firewall --disabled
rootpw --iscrypted <encrypted passwd>
text
skipx
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc UTC
bootloader --location=mbr --driveorder=sda
zerombr
repo --name=updates --baseurl=http://internal.mirror.host/centos/5/updates/x86_64/
firstboot --disable
services --disabled pcscd,hidd,bluetooth,pand,isdn,cups,avahi-daemon
services --enabled sshd
reboot
ignoredisk --drives=sdb,sdc,sdd,sde,sdf,sdg,sdh,sdi,sdj,sdk,sdl,sdm

clearpart --linux --drives=sda
part / --fstype ext3 --size=5000 --asprimary --ondisk=sda
part swap --size=8400 --ondisk=sda
part /tmp --fstype ext3 --size=5000 --ondisk=sda 
part /opt --fstype ext3 --size=10000 --ondisk=sda
part /home --fstype ext3 --size=5000 --ondisk=sda
part /var --fstype ext3 --size=100 --grow --ondisk=sda

%packages
@base
@core
@system-tools
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath
audit

Best Answer

Just wanted to let you know how I got around this..

There is an option you can specify in your ks-config called: ignoredisk --drives=disk1,disk2,disk3,etc....

The number of disks you specify has to be equal the number of LUNs presented to the server.. in my case there were four (4) so I specified ignoredisk --drives=sda,sdb,sdc,sde

You will also have to specify a driveorder in your bootloader line telling Anaconda where to install the bootloader:

bootloader --location=mbr --driveorder=cciss/c0d0 (in the case of a Compaq controller)