Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sanboot:debian_etch_iscsi [2007/10/25 10:28]
gervystar
sanboot:debian_etch_iscsi [2009/04/27 13:00]
commander1024 the module is called "ib_iser" not "iscsi_iser" (Device Drivers -> infiniband support), checked against the hooks script where module ib_iser is modprobed
Line 10: Line 10:
  
 This howto is based on the following assumptions:​ This howto is based on the following assumptions:​
-   * a base debian ​>= etch with all the security updates+   * a base debian etch with all the security updates
    * the system is installed on a single partition "/"​ on /dev/sda1    * the system is installed on a single partition "/"​ on /dev/sda1
    * there is an already done iscsi target on an iscsi server    * there is an already done iscsi target on an iscsi server
    * there is a working dhcp server    * there is a working dhcp server
 +
 +==== Compile iscsistart and fwparam_ibft ====
  
 Since two fundamental tools from open-iscsi are not included in the debian package, they have to be compiled from the sources with the following steps (i have used a different machine for all the compilation stuff). Since two fundamental tools from open-iscsi are not included in the debian package, they have to be compiled from the sources with the following steps (i have used a different machine for all the compilation stuff).
Line 31: Line 33:
  
 The two files needed are ''​usr/​iscsistart''​ and ''​utils/​fwparam_ibft/​fwparam_ibft''​ so they have to be copied in ''/​usr/​sbin''​. The two files needed are ''​usr/​iscsistart''​ and ''​utils/​fwparam_ibft/​fwparam_ibft''​ so they have to be copied in ''/​usr/​sbin''​.
 +
 +==== Install the needed packages ====
 +
 +   ​apt-get install iproute
 +
 +==== Disable networking scripts ====
 +
 +The file ''/​etc/​network/​interfaces''​ must contain only the information needed to setup the loopback adapter or some additional network cards not used in the iSCSI boot process.
 +If you have only one interface (in example eth0), be sure to have a stanza like this in ''/​etc/​network/​interfaces''​
 +
 +<​code>​
 +auto eth0
 +iface eth0 inet manual
 +</​code>​
 +
 +So ifupdown will report the network card as "​up",​ otherwise some script will not work well (in exemple the nfs mount).
 +
 +==== Create the initramfs scripts ====
  
 Create two scripts shown below. These scripts have to be executable. Create two scripts shown below. These scripts have to be executable.
-   * ''/​etc/​initramfs-tools/​hooks/​iscsi_tcp''​ will copy the ''​iscsi_tcp'',​ ''​iscsi_iser''​ kernel modules followed by their dependancies,​ ''/​usr/​sbin/​iscsistart''​ and ''/​usr/​sbin/​fwparam_ibft''​ to the initial ramdisk.+   * ''/​etc/​initramfs-tools/​hooks/​iscsi_tcp''​ will copy the ''​iscsi_tcp'',​ ''​ib_iser''​ kernel modules followed by their dependancies,​ ''/​usr/​sbin/​iscsistart''​ and ''/​usr/​sbin/​fwparam_ibft''​ to the initial ramdisk.
    * ''/​etc/​initramfs-tools/​scripts/​local-top/​iscsi_tcp''​ is copied to the ram disk and run at boot-time, just before the root filesystem is mounted. If the root device string looks like a SCSI device it brings up the appropriate Ethernet device, sets up the ip address passed through dhcp and connects the root file system on the iSCSI target.    * ''/​etc/​initramfs-tools/​scripts/​local-top/​iscsi_tcp''​ is copied to the ram disk and run at boot-time, just before the root filesystem is mounted. If the root device string looks like a SCSI device it brings up the appropriate Ethernet device, sets up the ip address passed through dhcp and connects the root file system on the iSCSI target.
  
Line 124: Line 144:
         echo "​Setting up networking on $iSCSI_INITIATOR_IF..."​         echo "​Setting up networking on $iSCSI_INITIATOR_IF..."​
         ip addr add $iSCSI_INITIATOR_IPADDR/​$iSCSI_INITIATOR_MASK brd + dev $iSCSI_INITIATOR_IF         ip addr add $iSCSI_INITIATOR_IPADDR/​$iSCSI_INITIATOR_MASK brd + dev $iSCSI_INITIATOR_IF
 +        ip route add default via $iSCSI_INITIATOR_GATEWAY
  
         echo "​Connecting to iSCSI target $iSCSI_TARGET_NAME on $iSCSI_TARGET_IPADDR..."​         echo "​Connecting to iSCSI target $iSCSI_TARGET_NAME on $iSCSI_TARGET_IPADDR..."​
         iscsistart -i $iSCSI_INITIATOR_NAME -t $iSCSI_TARGET_NAME -g 1 -a $iSCSI_TARGET_IPADDR         iscsistart -i $iSCSI_INITIATOR_NAME -t $iSCSI_TARGET_NAME -g 1 -a $iSCSI_TARGET_IPADDR
 +        sleep 5
         ;;         ;;
 esac esac
 </​code>​ </​code>​
 +
 +
 +===== Using gPXE to boot over iSCSI =====
 +Since my network cards don't support booting via iSCSI, I've used the great gPXE, loading it after a "​standard"​ PXE request.
 +This is called [[:​pxechaining|PXE Chainloading]]
 +
 +A separate stanza containing the right ''​root-path''​ option should be created for each host in ''/​etc/​dhcp3/​dhcpd.conf'',​ like in the example.
 +
 +<​code>​
 +host iscsi-test {
 +                hardware ethernet 00:​0C:​29:​5C:​53:​C2;​
 +                fixed-address 192.168.23.195;​
 +                filename "";​
 +                option root-path "​iscsi:​192.168.23.2::::​iqn.2007-10.org.appliedgenomics:​test.disk1";​
 +}
 +</​code>​
 +

QR Code
QR Code sanboot:debian_etch_iscsi (generated for current page)