iSCSI Management and Tuning Shiv Rajpal Senior Development Lead Device and Storage Technologies
iSCSI Management and Tuning Agenda: Architecture overview iSCSI initiator management options Performance enhancements Error recovery in Microsoft initiator
Architecture MS Initiator Service iSCSI CLIiSCSI GUI SAN Mgmt WMI MS iSCSI Initiator NIC Miniport driver iSCSI HBA Bus Driver + miniport Multifunction Card Hardware IHV/ISV Microsoft
iSCSI Management WMI Interfaces to Enable Enterprise SAN Management Applications iSCSI CLI iSCSI GUI
Discovery
Targets
Quick Connect
Devices-I
Devices-II
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 OFF SETLOCAL 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=%1 echo "Trying to add target %1 for discovery" iscsicli QAddTargetPortal %ipaddress% REM – Find out the number of Targets discovered for the portal address SET _count=0 FOR /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 Windows Remote Shell Server to be managed: winrm quickconfig Remote management server: winrs r: iscsicli –help Reference Psexec psexec.exe iscsicli –help Reference
Windows 7: iSCSI Performance MSISCSI driver updated to utilize DPC redirection feature of storport Tunable to Disable Nagle Algorithm HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E97 B-E325-11CE-BFC BE10318}\ \Parameters\iSCSIDisableNagle Utilize CPU instruction to compute iSCSI digest (including Intel Nahalem) 10G – Wire Speed!
iSCSI : Points Of Failure
iSCSI : High Availability Options iSCSI Session #1 Connection #1 iSCSI Session #2 Connection #2 Disk #1Disk #2 Pseudo Disk iSCSI Session Connection #1 Connection #2 Disk MPIO MCS
iSCSI Error Recovery: Hierarchal Resets Reset Result 5 Consecutive Resets Session Recovery Timeout Timeout/Fail Target Warm Reset Fail OK Done OK Done LUN Reset I/O Timeout
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 Yes Fail I/O Yes Fail I/O Connection Drop Detected Re-Enumerate Devices Success Fail Time > X No Time = Disconnect time X = MaxRequestHoldTime
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 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 Web resources Microsoft Storage Technologies – iSCSI csi/default.mspx csi/default.mspx iSCSI User Guide 417c-ade4-92d824b871af/uguide.doc 417c-ade4-92d824b871af/uguide.doc Documentation on MSDN iSCSI WMI Classes GUI property page expansion Implementation questions on initiator –
Related Sessions SessionDay / Time Developing Highly Available Multipath Solutions and Device-Specific ModulesTues. 5:15-6:15 and Wed. 1:30-2:30 Storport SmorgasboardTues. 4-5 and Wed iSCSI Management and TuningTues. 4-5