Q. How can I use the command line to configure iSCSI connections?

John Savill

May 15, 2008

3 Min Read
ITPro Today logo in a gray background | ITPro Today

A. I recently had a client who tried to use iSCSI to connect Server Core to SAN storage but couldn't get it to work without the iSCSI Initiator Control Panel applet. You can use the Iscsicli command-line interface to manage iSCSI. The first thing you need to do is enable iSCSI service and set it to start automatically, as you’ll see in the following code and corresponding output. (See also, "Boot Directly from an iSCSI SAN" and "Make the Most of Your SAN with iSCSI.")

The first command I entered was:

Usersjohn>sc config msiscsi start= auto

The output was:

[SC] ChangeServiceConfig SUCCESS

Then I entered:

Usersjohn>net start msiscsi

The output was:

The Microsoft iSCSI Initiator Service service is starting.The Microsoft iSCSI Initiator Service service was started successfully. 

Then, you use the Iscsicli command-line interface to connect to an iSCSI Target and list the available targets. The command I entered was:

Usersjohn>iscsicli QAddTargetPortal 192.168.1.31

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 The operation completed successfully.

Next I entered:

Usersjohn>iscsicli ListTargets

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 
Targets List:quorumdataThe operation completed successfully.

You can then connect to a target using the following code as an example:

Usersjohn>iscsicli qlogintarget data

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 Session Id is 0xfffffa800626e018-0x4000013700000006Connection Id is 0xfffffa800626e018-0x5The operation completed successfully.

The following code checked to make sure the operation was successful:

Usersjohn>iscsicli reporttargetmappings

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 
Total of 1 mappings returnedSession Id : fffffa800626e018-4000013700000006Target Name : dataInitiator : RootISCSIPRT000_0Initiator Scsi Device : \.Scsi4:Initiator Bus : 0Initiator Target Id : 0Target Lun: 0x0 <--> OS Lun: 0x0 
The operation completed successfully. 

You log out by using the logouttarget switch with the session ID, as the following sample code shows:

Usersjohn>iscsicli logouttarget fffffa800626e018-4000013700000006

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 
The operation completed successfully.

To confirm the operation was successful, I entered the following code:

Usersjohn>iscsicli reporttargetmappings

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 
No MappingsThe operation completed successfully.

The mappings obtained through the qlogintarget command aren’t persistent and will be lost at reboot. If you want a persistent connection, use the perssitenlogintarget switch, as the following code shows:

Usersjohn>iscsicli persistentlogintarget data T * * * * * * * * * * * * * * * 0

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 
The operation completed successfully.

To confirm that the operation was successful, I entered:

Usersjohn>iscsicli listpersistenttargets

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 
Total of 1 peristent targetsTarget Name : dataAddress and Socket : 192.168.1.31 3260Session Type : DataInitiator Name : RootISCSIPRT000_0Port Number : ++Security Flags : 0x0++Version : 0++Information Specified: 0x20++Login Flags : 0x8++Username : 
The operation completed successfully.

Entering T * * * * * * * * * * * * * * * 0 specifies all the required switches. To remove a persistent target, apply the information obtained from the listpersistentargets command, using the following code as an example:

Usersjohn>iscsicli removepersistenttarget RootISCSIPRT000_0 data * 192.168.1.31 3260

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 
The operation completed successfully. 

To confirm the success of the operation, I entered:

Usersjohn>iscsicli listpersistenttargets

The output was:

Microsoft iSCSI Initiator Version 6.0 Build 6000 Total of 0 peristent targetsThe operation completed successfully. 

You'll notice that I passed the initiator name first, then the target name, the port number (which is *), and last of all the iSCSI target server IP address and socket.

Using the Microsoft iSCSI Initiator CLI

About the Author

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like