Previously, I wrote an article on some possible hardware options to help enable you to build a cheap (as in inexpensive, not shoddy) storage server with the ultimate goal of being able to run software that enables iSCSI connectivity for your servers. I don't anticipate these solutions being appropriate for large organizations' production environments, but I do see them as more than adequate for test labs, or possibly even small- to 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 Windows iSCSI target. Rather, this article is designed to provide an overview of the possible ways to set up a Windows target. That said, where appropriate, I've included specific instructions to help you get started.
Turning your storage-laden Windows server into an iSCSI target isn't generally a free proposition, but it's not horribly expensive, either. First, you need to take into consideration the cost of the Windows license. On top of that, there is a cost to acquire iSCSI target software for Windows, but this isn't necessarily expensive either. If you want a no-cost option, I'll be presenting Linux iSCSI targets in the next part of this article series.
Below I'll recommend a couple of iSCSI for Windows software choices that I have used for a low-cost iSCSI storage system.
WinTarget by String Bean Software comes in two flavors: the Standard Edition (list price: starts at $300 for a single connection and tops out at $1,995 for unlimited connections) and the Advanced Edition (list price: starts at $550 for a single connection and tops out at $3,595 for unlimited connections). With the Standard Edition, you get core SAN functionality, meaning that you get the ability to house iSCSI-accessible volumes on your Windows server. With the Advanced Edition, String Bean Software adds the ability to handle snapshots, which can be a critical feature, depending on how you plan to use your SAN.
For the Advanced Edition features, including snapshots, WinTarget requires that you use Windows Server 2003 SP1 on your target machine. I am using SP1, but will not be covering snapshots in this article. WinTarget's installation is very simple, and the defaults are sufficient to get a system working.
WinTarget provides the ability for two different kinds of volumes: file-based and volume-based. A file-based volume is housed entirely in a file on an existing disk or partition. Volume-based assigns parts of a brand-new physical disk to iSCSI duty.
When you're done installing, start the WinTarget management console, and select the Devices option. If you right-click an existing volume, choose Create WinTarget Disk | New File Based WinTarget Disk. If you right-click a brand new, uninitialized physical volume, this option is not available (since there is no file system on which to store the file-based volume). In this case, you can either initialize the volume and create a file-based volume, or you can choose Create WinTarget Disk | New Volume Based WinTarget Disk and use part of the volume for your iSCSI needs. I've selected the file-based method for this article, but have tested both. My image-based volume is stored at C:\iSCSI volumes\scottwt.img and houses a 250-MB volume that I'll mount on a Windows XP client.
After installing the iSCSI initiator on the XP system, I also had to add the XP host as an "allowed host" in WinTarget in order to mount the volume on my Windows XP client system. This was handled from the Hosts option in the WinTarget management tool, and provides at least a basic level of required security. Until I added the XP host as Allowed, the XP system couldn't see any iSCSI volumes on the Windows Server 2003-based WinTarget system.
I'll provide a brief overview of the client-side a little later in the article. Figure A shows you the WinTarget management console, set up with the example I described.
|The 250-MB volume that I created is housed in a file on Disk 0 here. "WTD 1" below it is a volume-based iSCSI target, and has been allocated 1 GB of the drive.|
StarWind iSCSI Target, available from RocketDivision, comes with seven different licensing options, ranging from the shareware trial version (free) to the commercial license that allows unlimited connections and servers ($2,999). RocketDivision also makes available a developer edition, which allows bundling of the product with other services, for an undisclosed price. StarWind provides the normal basic iSCSI volume creation options, but also allows you to virtualize some of your more expensive hardware, such as DVD burners and tape drives. Using the software, you can make a remote SCSI tape drive, for example, appear locally on a desktop system. StarWind also provides snapshot capabilities.
For the purposes of this article, I'm installing version 2.6.4 of the StarWind product onto a server in my lab, and I'm choosing to do a complete installation, which includes the iSCSI service as well as a management console. If you're installing StarWind on multiple servers you don't need the management console on every system. The installation procedure is very simple and adds a StarWind service to your server.
Once installed, start the StarWind management console and expand the tree so that you can see the localhost option. Right-click the Localhost option and choose Connect. The default username and password is test/test. Again, right-click the Localhost option and choose Add Device. You can add a variety of device types, including "SPTI device", which stands for SCSI pass-through interface device, meaning that you can share a physical CD-ROM or hard drive out over your iSCSI connection. StarWind also supports RAM drives, ISO files, and image files, which can be shared as volumes over your iSCSI network. For this example, I'm going to create and make available an image-based 250-MB volume named "Scott.img". Note that you need to specifically indicate to StarWind the location in which you'd like to place the image file. I've shared an image file with a name of "iSCSIv1" (housed on this volume) out over the iSCSI network.
As with WinTarget, it took less than 10 minutes from download to get StarWind working and a client attached. Of course, this is an out-of-the-box installation and, thus, is pretty insecure. At the very least, I highly recommend that you limit access to iSCSI volumes based on both client IP address and a username/password, if you plan to use iSCSI in a production environment.
Figure B is shot of StarWind's management console.
|ImageFileo (iSCSIv1) is the 250-MB image-based volume I created.|
From a client
Client connections are easily accomplished through the installation of a compliant iSCSI initiator. I've installed version 1.06 of the Microsoft iSCSI initiator on a Windows XP Pro machine, for testing purposes only. You can, of course, install the initiator on any recent version of Windows. Further, I connected to the "iSCSIv1" target using the initiator's management tool. Upon opening the Disk Management service, Windows told me that I had a 243-MB volume available for use. This disk is initialized and formatted just as you would upon installing any other new disk in your system. Both the WinTarget- and StarWind-hosted volumes worked exactly as I anticipated they would, and the performance was very good. Figure C below shows you a view of the disk management tool with an iSCSI volume in use. I could provide a client screenshot for both WinTarget and StarWind, but there is no difference at all. With both systems, the iSCSI connection is still handled through the Microsoft iSCSI initiator, which is pretty much target-agnostic. (Note that RocketDivision also sells its own initiator, but the Microsoft one works well.)
Note that, with the exception of the volume name (which I created), there is no indication that this volume is any different than any other on your system. This is the beauty of iSCSI-based volumes. Also note that the uninitialized 996-MB partition is that 1GB "WTD 1" volume that I created as a volume-based target in WinTarget.
If you want block-based storage from a central location using a Windows server, either of these products will work for you. The WinTarget product excels at volume-based iSCSI tasks, while StarWind's forte is sharing other devices (it's also good at pure volume-based storage). While neither product is free, a max list price of $3,595 is still easily within the definition of "cheap," and in the right situation, you will have a very useful storage solution.