Storage optimize

How do I... Install, configure, and use Microsoft's iSCSI initiator?


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:

  1. An iSCSI target -- A target is the actual storage array or volume, depending on how you have things configured.
  2. 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.
  3. 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:

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 initiator

If 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.

Figure A

Choose your installation options.

  1. Initiator service -- This is the service behind the actual work.
  2. Software initiator -- The software initiator is the software service that handles iSCSI traffic.
  3. 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 array

Now 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.

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.

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.

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)

Figure E

The target portal has been added to the initiator.

Step 6: Connect to a target/volume

Even 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.

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.

Figure G

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)

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.

Figure I

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.

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.

Summary

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.

About

Since 1994, Scott Lowe has been providing technology solutions to a variety of organizations. After spending 10 years in multiple CIO roles, Scott is now an independent consultant, blogger, author, owner of The 1610 Group, and a Senior IT Executive w...

14 comments
gaowenk
gaowenk

search mpio support windows 7 too.....

techrepublic
techrepublic

Hi there, Does anyone have any suggestions as to why the MS iSCSI Software Initiator doesn't support MPIO on Windows 7?? You might argue "There is some special technology involved that only works on their server operating systems" and that would be fair enough, if it weren't for the fact that MPIO can be installed on and works perfectly well on Windows XP 64bit!!!! I value the input you all make to this website and your comments on this subject would be much appreciated!! It pains me a great deal that I can't get more than gigabit bandwidth disk access (circa 113MB/s) to our high end workstations without buying-in to 10GB ethernet (which we don't have the budget for)!!!! Try justifying an upgrade to Win7 to the IT director on this......MS what has gone wrong? Best regards TFZ

Rastor9
Rastor9

On Windows 2008 Enterprise R2 (x64) the iSCSI initiator doesn't have the "restore connection after reboot" option. My Windows 2008 Std (x32) has this check box. I am unable to find anywhere else in the initiator software where I can activate this crucial option, and of course every time the Windows server reboots, I have to manually reconnect the target.

emrecnl
emrecnl

I have done all of these, but unfortunately windows xp does not recognize the iSCSI disk no matter how much i click tru ReScan Disk. What i am missing? MS Initiator configures and it sees the remote iSCSI disk. I just have the problem on WindowsXP side.

devans
devans

I have set up an iSCSI target using FreeNAS and created a large 100GB iSCSI target. A single server 2003 with Microsoft iSCSI initiator (Server A) works great. If I allow a seperate server (Server B) access to the same iSCSI target, they are both able to read and write. However, if Server A writes data, server B does not see the data until the iSCSI service is restarted. Am I able to have multiple connections to the target?

mccormick5000
mccormick5000

Since Windows sees iSCSI drives as any other volume does that mean you can enable auditing on them? We need to be able to audit file access which rules out most NAS. If we can enable auditing on iSCSI drives that would be a perfect solution!

ghopkins
ghopkins

I'm looking at my R2 server now and under the "Targets" tab you should be able to click the logon button and select, "Automatically restore this connection when the computer starts". Do you see that option?

john.lovrinic
john.lovrinic

No. Only one server per Partition - otherwise they trample each other - badly. And you don't find out until you have to reboot one of the servers. Only one server can own the System Volume Information folder at a time successfully.

Big Ole Jack
Big Ole Jack

There is a product out there called MelioFS from a company called Sanbolic that allows what you are trying to accomplish. Windows Clustering depends on NTFS and will thus allow only one clusrer node to have exclusive access to the LUN at any given time. If you want to setup multiple hosts to write to the same LUN simultaneously, you'll need a cluster aware file system to do it. MelioFS does it, as I have tested it to do exactly what the product advertises.

luciphercolors
luciphercolors

What's so special about iSCSI that makes it better than SMB?

sordito
sordito

If the volume shows up as a Windows/NTFS drive, yes you can. Currently we use a Dell/EMC SAN with iSCSI, and are able to audit. We also use Dell NAS devices (Windows powered) and are able to audit these.

marko.jovanovski
marko.jovanovski

Hi Jack, since you've tested it, is Melio FS available for evaluation? What is the price? On the Sanbolic's site there is not much about pricing. From what you're saying it seems it could solve my problems. Did you consider any other software before choosing Melio FS? Thnx, Marko

mccormick5000
mccormick5000

Sweet! So your Dell/EMC SAN has an external iSCSI array and auditing works fine on the volume(s)? Thanks for your reply.