I would like to setup a diskless XenServer 5.6 FP 1 machine that boots from an iSCSI target. I think installation onto an iSCSI should be pretty easy: start the installer, open up a shell, use iscsiadm to connect to the iSCSI target, and have the installer install to it.
I'm not sure how to get the server to boot from the iSCSI target though. I'm thinking I could have the server's NIC perform a PXE boot to load gPXE, which in turn would load the boot loader from the iSCSI target, which would load Xen/Linux. However, how would I get Xen/Linux to mount the root filesystem from the iSCSI target?
Note that this server does not have an HBA iSCSI adapter, so I'm trying to boot it from a regular NIC.
I did a test installation inside a virtual machine. When using gPXE to boot from the iSCSI target, EXTLINUX just hangs. I then replaced the boot loader with GRUB, which was successful in booting the kernel. However, it was not able to mount the root filesystem. I see the following messages, which were printed after messages indicating that a DHCP lease was obtained successfully:
Attaching to iSCSI storage
iscsistart: transport class version 2.0-870. iscsid version 2.0-871
iscsistart: Portal Group not set. Exiting iscsistart
...
Waiting for driver initialization.
Your going to have to add this flag to the pxe boot config "device_mapper_multipath=yes" for example:
KDB Article here :
http://docs.vmd.citrix.com/XenServer/5.6.0fp1/1.0/en_gb/installation.html#boot_from_san
I was able to get it to work. Turns out the initrd image had the initiator name missing in /init when it was created during the installation. Setting /etc/iscsi/initiatorname.iscsi and re-executing the mkinitrd using the command that was listed in /boot/initrd-2.6.32.12-0.7.1.xs5.6.100.323.170596xen.img.cmd did the trick. I.e.: