The difference between iSCSI and NAS is that iSCSI is doing block I/O, and NAS does file I/O. Typically, block I/O is done because it has less overhead and therefore higher performance. The overhead to be eliminated is in the area of the TCPIP protocol stack transversal, the processor interrupts in packet handling, and the extra path link of having a separate processor (the NAS head) executing the remote filesystem semantics.
With iSCSI today, you still have all the same overhead. TCPIP is used. There is a remote processor of some type to sit in from (or incorporated in) the storage device, because there are no native IP storage devices for iSCSI (this is usually done with a processor running special driver code), and there is yet another device driver to do the SCSI encapsulation for IP. The plan is to get iSCSI faster by implementing some of the TCPIP protocol stack in some new NIC cards. So, if you change your cards for storage, it should do block I/O faster than NAS file I/O.
As you stated, the real issue is what is needed for the application. Depending on the requirements, either solution could satisfy your needs. The next element to evaluate is the storage management. Will you manage a large amount of storage centrally with some management software (such as SAN management software), or will there be isolated storage areas that are uniquely managed (such as with NAS devices)?
There are no easy answers here. The elements of administrative effort (and therefore real costs), performance, and scalability all come into play. Since you're with IBM, you should be able to get some very useful guidelines of applicability from your company. Use those guidelines, because the IP200i is
very new, and there's just not enough reference information available.
This was first published in July 2001