Oracle Enterprise Linux 5.6 fails to boot from multipath devices

Oracle Enterprise Linux 5.6 fails to boot from multipath devices

Rate This
  • Comments 3

Lately I've stared to work on a quite interesting Oracle Maximum Availability Architecture (MAA) project, with HP blades and Virtual Connect. From flexibility point of view the decision has been made to install operating system (Oracle Enterprise Linux 5.6) on a multipath LUN (no local hard drives).

To enable multipath support you need to add mpath boot option, e.g.:

    kernel OEL56/vmlinuz
    append initrd=OEL56/initrd.img  ks=nfs:IP:/stage/linux/kickstart/ks_oel56.cfg ksdevice=eth0 mpath

The installer will find all multipath devices, generally the installation itself works fine. After reboot a surprise. During start up you will see on the console warnings about duplicate physical volumes, e.g.:

Found duplicate PV YAERKoTfbPGRMNdfyatZQU7cd3mt64Uc: using /dev/sdar2 not /dev/sdr2

then:

fsck.ext3: No such file or directory while trying to open /dev/mapper/mpath0p1
...
*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D to continue)
(Repair filesystem) 1 # 

A quick look at the initial ramdisk reveals missing files in the bin directory (e.g.: there are no bin/multipath) :

# zcat initrd-2.6.32-100.26.2.el5.img | cpio -idmv
...
bin
bin/modprobe
bin/dmraid
bin/udevd
bin/firmware_helper
bin/dmsetup
bin/nash
bin/lvm
bin/scsi_id
bin/insmod
bin/kpartx
tmp
sysroot
init
22169 blocks 

As an example output from Oracle Enterprise Linux 5.5 initial ramdisk:

# zcat initrd-2.6.18-194.el5.img | cpio -idmv
...
bin
bin/modprobe
bin/dmraid
bin/mpath_prio_alua
bin/mpath_prio_ontap
bin/mpath_prio_hp_sw
bin/mpath_prio_emc
bin/mpath_prio_intel
bin/multipath
bin/dmsetup
bin/mpath_prio_hds_modular
bin/nash
bin/lvm
bin/scsi_id
bin/mpath_prio_netapp
bin/mpath_prio_weighted
bin/insmod
bin/kpartx
bin/mpath_prio_tpc
bin/mpath_prio_rdac
...

To workaround the issue with Oracle Enterprise Linux 5.6:

1. Download patched RPMs from:

http://oss.oracle.com/~jsobecki/.mkinitrd/

2. Rebuild the initial ramdisk

Example from my kickstart file:

%post --log=/root/post.log
mount -t nfs -n -o nolock IP:/stage/linux/OEL56_Patches_Mpath /mnt/stage
cd /mnt/stage
rpm -Uvh libbdevid-python-5.1.19.6-68.0.3.el5.x86_64.rpm mkinitrd-5.1.19.6-68.0.3.el5.i386.rpm mkinitrd-5.1.19.6-68.0.3.el5.x86_64.rpm nash-5.1.19.6-68.0.3.el5.x86_64.rpm
mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Post
  • very helpful blog. but I can't open link oss.oracle.com/.../.mkinitrd, would you help?

  • The issue has been solved in OEL 5.7, therefore I think the patched RPMs have been removed. Let me know in case you still need the files.

  • Thanks, I have a requirement to use OEL 5.6 and have been banging my head on the wall for about two days now trying to figure out why boot from SAN with DM-Multipath wasn't working. Rebuilt the initrd multiple times with multiple different modules. I didn't think to check to see if the multipath binary got loaded.

Page 1 of 1 (3 items)