What
is iSCSI, really?
iSCSI is sending
SCSI commands in IP packets. To be more specific, iSCSI is designed
to be a protocol for a storage initiator (usually a server) to
send SCSI commands to a storage target (usually a tape or disk)
over IP.
To define
other protocols, FCIP is about taking Fibre Channel frames and
sending them over IP, basically extending a Fibre Channel connection
-- not really anything to do with SCSI at all. iFCP on the other
hand is about mapping FCP (serial SCSI over Fibre Channel) into
and out of IP. In other words, it is about providing a routing
protocol between Fibre Channel fabrics allowing connectivity over
IP.
To put it
another way, iSCSI is the server to storage SCSI over IP protocol.
The other protocols are all about Fibre Channel to Fibre Channel
with various degrees of intelligence.
So
how do iSCSI devices find each other?
In normal
SCSI, and in Fibre Channel private loops, the discovery process
is fairly primitive. For Fibre Channel fabrics there is a necessary
service called the Simple Name Server -- or just Name Server --
when you get to hundreds or thousands of devices. But in IP, we
could have many millions of devices in theory.
There are
two mechanisms currently being used in the IP world for iSCSI
device discovery. The first is SLP - service locator protocol.
This is a service discovery protocol that has been around in the
IP world for a little while. More recently, however, vendors including
Microsoft have put their backing behind a new protocol -- Internet
Simple Name Server. Simply put, the principles of the Fibre Channel
SNS have been taken and scaled up to the point that they can cope
with IP size networks while still being specifically designed
for storage capabilities unlike SLP.
How
can I use iSCSI?
There are
three main ways to use iSCSI:
1. You could
have a natively-capable iSCSI server talking to natively-capable
iSCSI storage.
2. You could
have a natively-capable iSCSI server talking via an iSCSI-to-Fibre
Channel router to Fibre Channel connected storage.
3. You could
have a Fibre Channel server talking through a Fibre-Channel-to-iSCSI
router to iSCSI storage.
Of course,
as in some cases, Fibre Channel storage talks to other Fibre Channel
storage (for example, for disk replication or for serverless backup)
you could have iSCSI storage devices talking to each other as
well.
So, which
is most likely and/or most sensible? To answer that, I think we
have to back off and remember that storage networking is about
flexibility, about using your stuff in different ways. Today,
iSCSI on servers is fairly new, though easy to get with Microsoft
releasing support for both Windows Server 2000 and 2003.
For this reason,
one way I expect to see iSCSI used is through iSCSI servers connecting
to existing Fibre Channel storage through an iSCSI to Fibre Channel
router, most likely via a Fibre Channel SAN. It means the same
ports of the same storage arrays can provide storage services
to both Fibre Channel and iSCSI servers. Thus it allows you all
to get more value out of the SAN and the Fibre Channel storage
that you already have. You can do this today -- the products are
available.
I also expect
a similar phenomenon to hit the NAS market, in fact it has already
hit. As a NAS device is already connecting disk to an IP-based
network, sharing the services over NFS and/or CIFS, it is in principle
an easy thing for the NAS to also do block I/O over iSCSI through
the same ports. Again, allowing you to reuse existing storage
solutions in a new way.
There are
some other interesting and novel solutions bouncing around for
fully native distributed iSCSI-only storage, and these may work
well in green field sites where there has been no storage consolidation
already, but they are one solution products.
Who
will use iSCSI?
As someone
who has worked in Fibre Channel for some years, I am afraid I
have to point out to the Fibre Channel world that iSCSI can run
at wire speed and certainly can run as fast as any normal server
running normal applications. To the IP community, I would like
to point out there is a lot of Fibre Channel out there -- particular
comparing the numbers with the number of 1GB network ports rather
than any network ports. To the Fibre Channel community, I must
point out that while a lot of storage and even a lot of high-end
servers are connected to Fibre Channel, there are still quite
a few Unix servers not connected and the vast majority of the
Intel server community is not Fibre Channel connected.
So, iSCSI
can work for everyone, but the biggest potential markets are probably
the Intel servers, and the rack dense and bladed servers (Intel
or otherwise). In addition, it will sometimes be used for stranded
high performance servers, for remote offices to utilize central
data centre SANs, and for other cases where Fibre Channel has
yet to reach -- after all, there are many servers and storage
devices still to be networked.
NICs,
TOEs and HBAs: When to use each?
Finally, how
does my server connect, there are three approaches:
1. A standard
NIC with an iSCSI driver
2. A TOE (TCP Offload Engine) NIC with an iSCSI driver
3. An HBA (Host Bus Adapter) designed for iSCSI from the traditional
Fibre Channel HBA vendors
When do I
use which? This is an interesting question. The initial assumption
is that the greater the performance you require, the more likely
you are to not use a standard NIC but instead use a TOE card or
an HBA -- which will of course cost more money. There is another
school of thought though that some high-performance servers have
plenty of spare clock cycles, and so why not save money and use
a cheep network card.
A key point
that this demonstrates is that unlike Fibre Channel HBAs, iSCSI
pricing scales from lower performance (free) to high performance
(accelerators) and so can be sized according to application requirements.
Also the fan-out (or oversubscription) can also leverage more
economical Ethernet ports (both fast and GE) instead of dedicated
FC switch ports further reducing cost. With iSCSI TOE cards looking
like they may be $300 list or less, the per-host attachment cost
is significantly lower than FC, even for TOE-enabled performance.
Since FC is
at 2Gbps, it is still the preferred attachment for highest performance
servers (there being no 2G ethernet), though frankly there are
very few server side devices using anything like this bandwidth
even on fibre channel. On the storage side of course, it is far
more likely that utilisation is approaching 2Gbps -- at least
until we start to see 10Gb FC or even 10Gb Ethernet/iSCSI ports.
Certainly iSCSI opens the door to hundreds or thousands of servers
particularly Wintel systems, many of which may be less demanding,
and the vast majority of which have yet to benefit from networked
storage.