In
my previous articles in this series, I shared some hardware options to help you
build an inexpensive
iSCSI target and went over your Windows software
options for enabling this functionality.
In this article, I’ll address the Linux side of the same equation. I
will provide a method by which you can convert a Linux server into an iSCSI
target. As with my previous articles in this series, I don’t anticipate these
solutions being appropriate for large organizations’ production environments,
but do see them as more than adequate for test labs, or possibly even
small-medium size production implementations, depending on what the
implementation is.
Please
bear in mind that this article is not designed to give you a step-by-step guide
to creating and using a Linux iSCSI target. Rather, this article is designed to
provide more of an overview of the possibilities. From there, you are left to
discover the possibilities on your own. That said, where appropriate, I’ve
included specific instructions to help you out.
Some
readers have asked why you just wouldn’t use NFS for your storage needs rather
than iSCSI. It’s a very good question. Some applications, such as databases,
don’t particularly like NFS. These same applications generally work flawlessly
with iSCSI since an iSCSI-based disk appears to the system to be locally
attached block storage.
Three possibilities for enabling Linux iSCSI
Ardis: If you’re a fan of Linux and have
studied iSCSI, you’ve probably heard about the free Ardis iSCSI target, which
is software that converts your kernel 2.4-based Linux server into an iSCSI
target. In today’s kernel 2.6-rich world, the Ardis client is no longer
appropriate. Besides not supporting the 2.6 kernel, the Ardis client requires
that you make modifications directly to the kernel of your system, which, for
less experienced or casual Linux users, is no easy task. However, if you’re
confident in your Linux skills, and have a need to use a 2.4 kernel, get more
information about Ardis from http://www.ardistech.com/iscsi/.
UNH: UNH is an open source iSCSI target that
bridges the 2.4/2.6 gap. The UNH-iSCSI project includes both a Linux target and
Linux initiator software, allowing you, from a single source, to build out a
complete Linux-based iSCSI infrastructure. The most recent version 1.6 release
of UNH supports kernel versions 2.4.29 or later and 2.6.10 or later. A version
1.5 release was still available on its site as of this writing, and supports
2.4.x and 2.6.x kernels. So, if you can’t upgrade your kernel to a
1.6-supported release, you’re not out of luck! UNH is available for download
from http://unh-iscsi.sourceforge.net/.
IET: The iSCSI Enterprise Target is an open
source project that supports only today’s 2.6 kernels. With its roots in the
Ardis project, IET also adds other features to the Ardis client, including SMP
support, and the ability to use the software without modifying your server’s kernel.
Before you get too far into IET, make sure your Linux system meets the minimum
requirements; specifically, make sure you’re running a kernel version of at
least 2.6.13. Bear in mind that IET does not work on 2.4 kernels. The IET
software is available for download from http://iscsitarget.sourceforge.net/.
On the site, choose the download option and follow the instructions.
With
any of these iSCSI targets installed on your Linux system, you should be able
to establish a connection from any machine on which you have installed a
standards-compliant iSCSI initiator, including the UNH-packaged initiator,
Microsoft’s iSCSI initiator, and the Linux iSCSI initiator, available for
download from http://linux-iscsi.sourceforge.net/.
This
concludes my article series on inexpensive iSCSI. You learned about some of
your various hardware options as well as how to turn both Windows and Linux
servers into block-serving, iSCSI targets. While on the Windows side, there is
a dearth of open source (free) iSCSI target software, on the Linux side, your
only real cost is hardware, since there are a plethora of open source options
available.