Booting from an iSCSI target

Configuring your DHCP Server

Using ISC dhcpd

Place the following two lines in /etc/dhcpd.conf:

  filename "";
  option root-path "iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot";

where my.target.dns.name is the DNS name (or IP address) of your iSCSI target, and iqn.2007-08.name.dns.target.my:iscsiboot is the iSCSI target IQN that you wish to boot from.

You will probably need to restart your DHCP server for the changes to take effect:

  /etc/init.d/dhcpd restart

Using Microsoft DHCP Server

In the DHCP administrative tool, right-click on Server Options and choose Configure Options. Click on “017 Root Path” and set the “String value” to

  iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot

where my.target.dns.name is the DNS name (or IP address) of your iSCSI target, and iqn.2007-08.name.dns.target.my:iscsiboot is the iSCSI target IQN that you wish to boot from.

Windows DHCP server configuration

Booting Your Client

Boot your diskless client using gPXE. If all has gone well, you should see it boot from your iSCSI target image.

sanbootcli.jpg

Congratulations on a successful boot from SAN!



Troubleshooting

If you have difficulties booting Windows from SAN, take a look at Debugging Windows iSCSI boot.

iSCSI Root Path Syntax

Theory

Described heavily in depth in RFC 4173, the root path string used to boot from SAN can range from relatively simple, to a very explicit, information packed line. According to the RFC, the root path string is formatted as follows:

iscsi:<servername>:[protocol]:[port]:[LUN]:<targetname>

“servername” is required, and can be the domain name or IPv4 (or IPv6, which is not supported by gPXE) address of your iSCSI target server.
“protocol” is optional, and is generally left blank, assuming a default value of “6” for TCP.

  • RFC 4173 states that TCP is the only valid protocol at the time of writing.

“port” is optional, and if left blank will assume a default value of 3260.
“LUN” is optional, and if left blank will assume a default value of 0.
“targetname” is required, and should be the iSCSI target IQN you wish to boot from.

Practice

For most non-complex deployments, such as the samples in above sections, your root path will look like:

iscsi:my.target.dns.name::::iqn.2007-08.name.dns.target.my:iscsiboot

That root path string omits the protocol, port, and LUN used by the iSCSI target server, defaulting to TCP, port 3260, and LUN 0, but is functionally equivalent to:

iscsi:my.target.dns.name:6:3260:0:iqn.2007-08.name.dns.target.my:iscsiboot

Furthermore, the LUN ID itself has a rather sophisticated set of rules for how it can be defined, but that goes beyond the scope of this article.

Advanced Reading

For more information, please see pages 3 and 4 of RFC 4173.


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