This blog post is also available as a TechRepublic download in PDF form.
Internet Small Computer System Interface (iSCSI) has taken the storage world by storm. No longer is shared storage a niche enjoyed by only large, wealthy corporations. Internet SCSI is leveling the playing field by making shared storage available at a reasonable cost to anyone. By leveraging the ubiquitous Ethernet networks prevalent in most organizations, IT staff training costs for iSCSI are very low and result in quick, seamless deployments.
Further, operating system vendors are making it easier than ever to get into the iSCSI game by making iSCSI initiator software freely available. iSCSI networks require three components:
- An iSCSI target — A target is the actual storage array or volume, depending on how you have things configured.
- An iSCSI initiator — An iSCSI initiator is the software component residing on a server or other computer that is installed and configured to connect to an iSCSI target. By using an iSCSI initiator, target-based volumes can be mounted on a server as if they were local volumes and are managed as such.
- A gigabit Ethernet network infrastructure — iSCSI requires an IP-based Ethernet network for its transport between systems with initiators (servers) and targets (storage arrays).
In this How do I... blog post, I will show you how to install and configure Microsoft's iSCSI initiator.
Step 1: Set up your target and communications infrastructure
Before you install the iSCSI initiator on any of your servers or workstations, you must have something to which the initiator will connect. This can be one of the enterprise class arrays, such as those available from LeftHand, EqualLogic, Dell, or EMC or, if you're on a tighter budget and want to build your own array, a target running iSCSI target software, such as StarWind. For more information about building a SAN on the cheap, take a look at:
- For the small IT shop: Building a SAN on the cheap
- iSCSI on the cheap: Turn your Windows server into an iSCSI storage target
I recommend that, whenever possible, you use either a physically separate infrastructure or separate IP network/VLAN for your iSCSI traffic. By doing so, you simplify troubleshooting and configuration later on.
Setting up and configuring your target is beyond the scope of this article.
Step 2: Configure your local iSCSI network adapter
One best practice is to assign either a dedicated gigabit Ethernet NIC or TCP offload adapter (ToE adapter) in each server to handle iSCSI traffic — in other words, don't share your user-facing network connection for storage traffic. If you've created a separate physical network or VLAN for storage traffic, assign this adapter an IP address that works on the storage network. By placing storage traffic on its own network that is routed separately from the main network, you increase the overall security of your storage infrastructure and simplify the overall configuration.
Step 3: Download Microsoft's iSCSI initiator — if necessary
Depending on the operating system you're using, you may need to download Microsoft's iSCSI initiator software. If you're planning to connect to an iSCSI target from a Windows XP or Windows Server 2003 system, visit Microsoft's iSCSI initiator download page and obtain the software. If you're connecting from a Windows Vista or Windows Server 2008 computer, Microsoft's iSCSI initiator is included with these operating systems, so you can safely skip this step.
Make sure to download the initiator that is designed for your operating system. Microsoft provides builds for both 32-bit and 64-bit Windows. In the 64-bit category, versions are available for both x64-based processors and Itanium-based processors.
Step 4: Install the iSCSI initiatorIf you're running an operating system on which the iSCSI initiator software is not installed, execute the file you downloaded and follow the installation instructions (Figure A). The installer will ask you to decide which components you would like to install.
Choose your installation options.
- Initiator service — This is the service behind the actual work.
- Software initiator — The software initiator is the software service that handles iSCSI traffic.
- Microsoft MPIO Multipathing Support for iSCSI — MPIO is a way that you can increase the overall throughput and reliability of your iSCSI storage environment. See Step 6 for more information about how MPIO can be of benefit.
If you have a target that supports Microsoft's MPIO (check with your manufacturer), you should enable this option. Otherwise, if your target supports MPIO through the use of a proprietary device-specific module (DSM), obtain that DSM from your array manufacturer and follow the manufacturer's installation recommendations.
Step 5: Connect to the iSCSI arrayNow that you have the initiator software installed, you need to tell it where to look for mountable volumes. Start the initiator configuration by going to the Control Panel and choosing the iSCSI Initiator option. From the initiator, choose the Discovery tab, shown in Figure B.
The iSCSI initiator's Discovery tab.On the Discovery tab, click the Add button under the Target Portals box. This will open the Add Target Portal dialog box, shown in Figure C.
The Add Target Portal dialog box.In the Add Target Portal dialog box, provide the name or IP address of your iSCSI array. The default communication port for iSCSI traffic is 3260. Unless you have changed your port, leave this as is. If you have configured CHAP security or are using IPSec for communication between your client and the array, click on the Advanced button and make necessary configuration changes. The Advanced Settings dialog box is shown in Figure D.
Advanced options for connecting to your iSCSI array.Back on the Add Target Portal, click the OK button to make the initial connection to the iSCSI array. Note that, at this point, you're not connecting to an actual volume, but only to the array in general. (Figure E)
The target portal has been added to the initiator.
Step 6: Connect to a target/volumeEven though you're connected to the array itself, you still need to tell the initiator exactly which target or volume you want to mount on your local machine. To see the list of available targets on the array you selected, choose the Targets tab, shown in Figure F.
The iSCSI initiator Target tab in this example has only a single volume available.To connect to an available target, choose the target and click the Log On button. A window pops up (Figure G) with the target name and two options from which you can choose.
iSCSI target Log On options.
The two options are important. If you want your server to connect to this volume automatically when your system boots, make sure you choose the Automatically Restore This Connection When The System Boots check box. Unless you have a good reason otherwise, you should always select this check box. If you do not, you can't make the iSCSI target persistent after a reboot and will need to manually reconnect it.
To enable high availability and to boost performance, choose the Enable Multi-path check box. Make sure to understand that multi-pathing (MPIO) requires multiple network adapters dedicated to the iSCSI task, and for maximum availability, you should also have a fully meshed gigabit Ethernet architecture for your storage traffic.
Again, if you are using CHAP or IPSec for communication with a target, click the Advanced button to bring up the Advanced Settings dialog box you saw in Figure D.Once you finish making decisions regarding how you want to connect to your target, from the Log On To Target window, click the OK button. The target status in the imitator window should change to Connected. (Figure H)
The target is now connected.
Step 7: Bind the targets
Now, you have successfully connected to a shared target on your iSCSI array. If you selected the Automatically Restore This Connection When The System Boots check box as explained in the previous step, you can now add the target to the iSCSI service's binding list. By doing so, you make sure that Windows does not consider the iSCSI service fully started until connections are restored to all volumes on the binding list. This is important if you have data on an iSCSI target that other services depend on. For example, if you create a share on your server and that shared data resides on an iSCSI target, the Server service that handles the share depends on the iSCSI service's complete availability to bring up the shares.
Note: With older versions of the iSCSI initiators, creating this kind of dependency structure required you to reconfigure individual service dependencies — a process that could get complicated. With the iSCSI Initiator version 2, Microsoft has fixed this issue, but you still need to bind the targets.The best option is to choose the Bound Volumes/Devices tab from the iSCSI Initiator's control panel and click the Bind All button at the bottom of the window (Figure I). This will bind all available iSCSI targets (that can be bound) to the iSCSI startup process. If you want to choose individual targets to bind, click the Add button. However, you will need to know the target's drive letter or mount point. At this point in these instructions, we haven't gotten quite that far.
Bound volumes are listed on this tab.
Step 8: Manage the new volume(s)When you mount a brand new iSCSI-based volume on your server, Windows treats it the same as if you had added a new hard drive to your computer. Take a look at this: Open Computer Management (Start | Right-click My Computer | Manage). Choose the Disk Management option. If the volume you are using is still blank — that is, newly created on your iSCSI target and does not contain data — Windows will pop up the Disk Initialization wizard, as shown in Figure J.
The Windows Disk Initialization wizard.
Note in Figure J that Disk 1 is not yet initialized and has a size of 1,020 MB. This disk is a small target I created on my iSCSI host. An iSCSI-based volume follows the same rules as any other Windows volume. You can create this volume as basic or dynamic (although dynamic is not recommended for iSCSI) or even as GPT (GUID partition table) volumes, which support volumes in excess of 2TB.
Just as is the case with any Windows volume, you need to initialize the new drive, create a partition, and format the new volume. Take note in Figure J that Windows truly sees this disk as just another typical volume. There is nothing on the Disk Management screen to indicate that Windows is treating this volume any differently because it is stored on an iSCSI array.
Once you get past the mental adjustment that has to take place when you start using shared storage, you'll probably find that iSCSI (or Fibre Channel, for that matter) shared storage opens up a number of possibilities. These steps are designed to get you quickly on your way and will not cover every scenario, but it will get you started.