How to Speed Up Your NAS With iSCSI
Many technologies originally intended for the enterprise end up trickling down into the consumer market at some point. Some of these technologies (ethernet or virtualization, for instance) are more practical than others; but if businesses find a use for a specific piece of technology, then chances are good that consumers can benefit from it as well. Such is the case with iSCSI.
iSCSI stands for Internet Small Computer System Interface. SCSI (sans i) has long served to connect a variety of peripherals to computer systems, but most commonly it appears in storage devices, such as hard drives or tape-backup drives. iSCSI builds upon the base technology by allowing users to connect to a remote storage volume over a network, as if said storage volume were a locally attached disk. Simply put, iSCSI transmits SCSI commands over IP (Internet Protocol) networks. iSCSI is like a virtual SATA (or SCSI) cable, in that it uses a network connection to link a system and a storage volume.
Judging from that description, you may be wondering how iSCSI differs from any other network share with a mapped drive letter. On many levels, the end results are similar. With iSCSI, though, the attached volume appears to the operating system as a locally attached, block storage device that you can format with the file system of your choice. In addition, fewer layers of abstraction separate an iSCSI volume and your PC, which can result in increased performance.
Ready to get your hands dirty with some hardware? If you wish to use iSCSI, there are two main requirements: a network-attached storage device or server with a volume that can be configured as an iSCSI target, and an iSCSI initiator, which allows a system to connect to the target.
If you own a NAS drive attached to a Windows PC (or if you have managed to make your own NAS), you probably have everything you need; virtually all NAS (network-attached storage) servers offer the ability to configure iSCSI targets, and Microsoft has included an iSCSI initiator tool with every version of Windows since Vista. You can download and install Microsoft’s iSCSI initiator on all previous versions of Windows from 2000 on up, too.
To show you how to use iSCSI, we're using a two-drive Thecus N2200XXX NAS server, which runs a custom version of Linux with iSCSI support, and a desktop system running Windows 7 Ultimate. Any system running Windows will do when paired with a NAS that supports iSCSI (such as the excellent Iomega StorCenter PX6-300d).
Pros and Cons
I've already touched on some of the benefits of using iSCSI. As mentioned above, an iSCSI network target appears to a system as a local drive; therefore, not only can you format the iSCSI target with the host OS’s file system, but you can also run applications that require local storage from the iSCSI volume instead. This flexibility is great for small businesses because many programs cannot run over shared networks, even if you're using mapped drive letters; iSCSI works around that issue.
For some workloads, iSCSI may also offer better performance. Although iSCSI improves PC performance in the enterprise by allowing large storage arrays to connect to client systems without the need for custom hardware or cabling (which can result in a huge cost savings), I'm going to focus on average consumers and desktop systems here. To prove that iSCSI can enhance your PC's performance, we ran some benchmarks on a testing unit; I'll show you the results on the next page.
Note, however, that using iSCSI has some drawbacks. While setup is not terribly difficult, configuring an iSCSI target and initiator is more involved than simply browsing to a shared network resource. Also, only one initiator should be connected to the iSCSI target at a time, to prevent possible data loss or corruption. In addition, assuming that you use a fast server and drives, performance may be limited by your network connection speed. A gigabit network connection (or better) is the optimal choice; with slower network connections, the potential benefits of iSCSI may be nullified.
Following are the steps necessary to set up a Thecus N2200XXX NAS server for use with iSCSI. The steps should be similar for other devices and servers as well. To see how everything works, click on each screenshot for a larger version.
Step 1: Log in to the NAS server’s configuration menu, configure the RAID mode, and reserve some storage space for the eventual iSCSI volume. We used RAID 1 for redundancy with two 2TB drives, and split our setup right down the middle--dedicating half of the usable capacity to an EXT4 data share while leaving the other half unused. We would later configure the unused space for iSCSI purposes.
Step 2: After you allocate space to the RAID, you must format it before continuing. When the formatting process is complete (depending on your drive setup, it could take hours), you can then configure the unused space as an iSCSI target. Note that if you reserved all of the available storage space for iSCSI, you will have no need to format the array at this point.
Step 3: Next, we configured the iSCSI target. On our Thecus NAS, we first had to click the Space Allocation link under the Storage menu in the left pane. Then we clicked the Add button under the 'iSCSI target' tab; a new window popped up, in which we had to set the desired size of the iSCSI target, enable it, and give it a name. At this point, you can also enable CHAP (Challenge Handshake Authentication Protocol) authentication if you wish to add a layer of security, but we chose not to. Another note: If you decide not to dedicate all of the available space to a single iSCSI target, you can assign individual LUN (Logical Unit Number) identifiers to multiple targets should you want to connect multiple systems to a single NAS device or server, and give each client system its own iSCSI target.
Next Page: Connecting Through an iSCSI Initiator; Performance Comparison