iSCSI Management and Tuning
Shiv RajpalSenior Development LeadDevice and Storage Technologies
iSCSI Management and Tuning
iSCSI Management and Tuning
• Agenda:
• Architecture overview
• iSCSI initiator management options
• Performance enhancements
• Error recovery in Microsoft initiator
Architecture
Architecture
MS Initiator Service
iSCSI CLI iSCSI GUI SAN Mgmt
WMI
MS iSCSI Initiator
NIC
Miniport driver
iSCSI HBA
Bus Driver + miniport
Multifunction Card
Hardware
IHV/ISV
Microsoft
iSCSI Management
iSCSI Management
WMI Interfaces to Enable Enterprise SAN
Management Applications
iSCSI CLI
iSCSI GUI
Discovery
Discovery
Targets
Targets
Quick Connect
Quick Connect
Devices-I
Devices-I
Devices-II
Devices-II
Configuration
Configuration
iSCSI CLI: Discovery
• AddTarget: Manually configure a target and optionally persist that target
• AddTargetPortal: iSCSI initiator service performs a SendTargets operation to each target portal added.
• AddiSNSServer: iSNS servers that the iSCSI initiator service queries to discover targets
iSCSI CLI: Target Operation
• LoginTarget: Logs into a target
• PersistentLoginTarget: Establishes a persistent login to a target
• LogoutTarget: Logs out from a target
iSCSI CLI: Informational
• TargetInfo: Displays details about the target. Example – discovery mechanism used to discover the target.
• ListPersistentTargets: Displays the list of persistent targets configured for all initiators.
• ListiSNSServers: Displays the list of iSNS server addresses that are persisted by the iSCSI Initiator service.
iSCSI CLI: Sample Batch file.@ECHO OFFSETLOCAL setlocal EnableDelayedExpansion
REM - Batch file to do a quick connect to iSCSi Target.REM - 1. First add portal for the IP address that has been entered.REM - 2. List Targets.REM - 3. If only one Target, then logon.REM - 4. Mark it persistent.REM - 5. Done.
SET ipaddress=%1echo "Trying to add target %1 for discovery"
iscsicli QAddTargetPortal %ipaddress%REM – Find out the number of Targets discovered for the portal address
SET _count=0FOR /F "usebackq skip=1" %%G IN (`iscsicli ListTargets`) DO ( SET _cmp=%%G SET _result=!_Cmp:~0,4!
REM - Get a valid IQN Name. IF !_RESULT!==iqn. ( set TargetName=!_cmp! SET /a _count = _count + 1 ))
REM - Check if there is only one target.if !_count! equ 1 ( echo "Found A Target - %TargetName%: Attempt to login" iscsicli QLoginTarget %TargetName% Echo “Mark the target as a persistent target” iscsicli PersistentLoginTarget %TargetName% * * * * * * * * * * * * * * * * ) ELSE ( echo "Did not find a single Target to login")
iSCSI CLI: Managing remotely
iSCSI CLI: Managing remotely• Windows Remote Shell
• Server to be managed:
• winrm quickconfig
• Remote management server:
• winrs r:<server name> iscsicli –help
• Referencehttp://msdn.microsoft.com/en-us/library/aa384426(VS.85).aspx
• Psexec
• psexec.exe <Server name> iscsicli –help
• Referencehttp://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
Windows 7: iSCSI Performance
Windows 7: iSCSI Performance
• MSISCSI driver updated to utilize DPC redirection feature of storport
• Tunable to Disable Nagle Algorithm
• HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\<Instance Number>\Parameters\iSCSIDisableNagle
• Utilize CPU instruction to compute iSCSI digest (including Intel Nahalem)
• 10G – Wire Speed!
iSCSI : Points Of Failure
iSCSI : Points Of Failure
iSCSI : High Availability Options
iSCSI : High Availability Options
iSCSI Session #1
Connection#1
iSCSI Session #2
Connection #2
Disk #1 Disk #2
Pseudo Disk
iSCSI Session
Connection#1
Connection #2
Disk
MPIOMCS
iSCSI Error Recovery: Hierarchal Resets
iSCSI Error Recovery: Hierarchal Resets
Reset Result
Reset Result
5 Consecutive Resets
Session Recovery
Timeout
Timeout/Fail
Target Warm Reset
Fail
OKDone
OKDone
LUN Reset
I/O Timeout
iSCSI Error Recovery
iSCSI Error Recovery
Pause I/O Queue
Pending Commands lost
Initiate iSCSI Login
Login Status
LUN Ready
I/O Requests (SRB)
Using MPIO
No
Pause I/O Queue/Retry I/O
No
Yes Start I/O
YesFail I/O
YesFail I/O
Connection Drop Detected
Re-Enumerate Devices
Success
FailTime > X
No
Time = Disconnect timeX = MaxRequestHoldTime
iSCSI Error Recovery: Tunable
iSCSI Error Recovery: Tunable• MaxRequestHoldTime
• Max time I/O will be queued when connection lost (60S)
• DelayBetweenReconnect
• Delay between each login attempt (1S)
• LinkDownTime
• Queue pause time when connection loss detected (15S)
• MaxConnectionRetries
• Maximum number of connection retry attempts (-1 = infinite)
• TCPConnectTime
• Timeout value while requesting a TCP connection (15S)
Call To Action
Call To Action• Evaluate extensibility options in management interfaces
• GUI extension
• WMI
• Evaluate tuneables to optimize for your storage arrays
• Test your arrays and iSCSI devices with current WLK
Resources
Resources• Web resources
• Microsoft Storage Technologies – iSCSIhttp://www.microsoft.com/windowsserver2003/technologies/storage/iscsi/default.mspx
• iSCSI User Guidehttp://download.microsoft.com/download/a/e/9/ae91dea1-66d9-417c-ade4-92d824b871af/uguide.doc
• Documentation on MSDN
• iSCSI WMI Classes http://msdn.microsoft.com/en-us/library/ms807120.aspx
• GUI property page expansionhttp://msdn.microsoft.com/en-us/library/bb776850(VS.85).aspx#work
• Implementation questions on initiator – [email protected]
Related Sessions
Related Sessions
Session Day / Time
Developing Highly Available Multipath Solutions and Device-Specific Modules Tues. 5:15-6:15 andWed. 1:30-2:30
Storport Smorgasboard Tues. 4-5 andWed. 11-12
iSCSI Management and Tuning Tues. 4-5
Top Related