[syslinux] How to support iSCSI multipath...

Alex Zeffertt alex.zeffertt at eu.citrix.com
Thu Oct 1 10:48:06 PDT 2009


Thanks for you reply Shao.  See my answers inline.

Miller, Shao wrote:
> Hello Alex,
> 
> In regards to your question regarding passing multiple paths for
> fault-tolerance (I assume) in the iBFT:
> 
> A slight correction: gpxelinux.0 = undionly.kkpxe (gPXE) + pxelinux.0
> (PXELINUX)
>
> I'm not sure why you'd wish to load a filename into your iBFT directly.
> Were you thinking of customizing the iBFT and parsing it in your initrd?
> 

What I really want to do is to get the bootloader to specify the multiple paths 
to the same LUN.  Of course I could just boot from one LUN, create a multipath 
device, mount that, and in some script in the root filesystem hard code the 
details for how to attach to the root LUN via a second path.  However, if I did 
that then I would not be able to boot a copy of that LUN.

I thought that the most flexible approach would be if the iBFT was simply 
downloaded from the TFTP server.  Then I could write my own iBFT, rather than 
having gpxelinux.0 create it.  This way I could add a 2nd target (corresponding 
to a different path to the root disk) and I would not need to modify the LUN 
itself in order to boot it.

I'm planning for the initrd to read /sys/firmware/ibft to determine how to 
configure its NICs.  It can then connect to the targets using /sbin/iscsistart, 
and use /sbin/multipath to create the root disk node.

> The gPXE SAN-boot obeys the routing information that gPXE has.  Never
> mind which interface(s) DHCP is performed on.  Whichever interface is
> the first match for the proper route to the SAN, that'll be the
> interface used.
> 

I see.  I've also realised that I can't route to the targets over an arbitrary 
NIC since I may only have a BIOS driver for the one that PXE booted.  However, 
it would still be good to be able to download an arbitrary iBFT, as it gets used 
by the initrd to configure access to the root filesystem in the initrd.

> Perhaps you'd be inclined to 'wget' or 'curl' further information from
> some instructional server in your initrd in order to setup multiple
> paths?

I guess I could do that, but at the moment I don't need an additional server, 
and I'm not sure how I would infer which server to get this info from.

> 
> I don't recall just at the moment if the iBFT can have multiple paths in
> it.  If you think it can, could you please pass along a reference?
> 

Here's the iBFT spec:

ftp://ftp.software.ibm.com/systems/support/system_x_pdf/ibm_iscsi_boot_firmware_table_v1.02.pdf

According to the spec you can have up two targets and up to two NICs in the 
iBFT.  It doesn't say whether it is or is not allowed for the targets to specify 
alternate paths to the *same* LUN, but you can specify whether the OS should try 
to connect to just one, or both disks, using the "boot failover flag".

If you install Linux with the mpath kernel command line parameter (see 
http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaai/multiisci/liaaimisci_pdf.pdf 
for an example) then when the 2nd disk is attached it should automatically be 
inserted *under* the multipath root device /dev/mapper/mpath0.

So it should "just work".

Regards,

Alex




More information about the Syslinux mailing list