260 likes | 648 Views
iSCSI Management and Tuning. Shiv Rajpal Senior Development Lead Device and Storage Technologies shivr@microsoft.com. iSCSI Management and Tuning. Agenda: Architecture overview iSCSI initiator management options Performance enhancements Error recovery in Microsoft initiator.
E N D
iSCSI Management and Tuning • Shiv Rajpal • Senior Development Lead • Device and Storage Technologies • shivr@microsoft.com
iSCSI Management and Tuning • Agenda: • Architecture overview • iSCSI initiator management options • Performance enhancements • Error recovery in Microsoft initiator
Architecture iSCSI CLI iSCSI GUI SAN Mgmt MS Initiator Service Microsoft WMI IHV/ISV Hardware MS iSCSI Initiator Miniport driver Bus Driver + miniport NIC iSCSI HBA Multifunction Card
iSCSI Management WMI Interfaces to Enable Enterprise SAN Management Applications iSCSI CLI iSCSI GUI
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: Displaysdetails 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. SET _count=0 FOR /F "usebackq skip=1" %%G IN (`iscsicliListTargets`) 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" iscsicliQLoginTarget %TargetName% Echo “Mark the target as a persistent target” iscsicliPersistentLoginTarget %TargetName% * * * * * * * * * * * * * * * * ) ELSE ( echo "Did not find a single Target to login" ) @ECHO OFF SETLOCAL setlocalEnableDelayedExpansion 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" iscsicliQAddTargetPortal %ipaddress% REM – Find out the number of Targets discovered for the portal address
iSCSI CLI: Managing remotely • Windows Remote Shell • Server to be managed: • winrmquickconfig • 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 • MSISCSI driver updated to utilize DPC redirection feature of storport • Tunable to Disable NagleAlgorithm • 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 : High Availability Options MPIO MCS Pseudo Disk Disk Disk #1 Disk #2 iSCSI Session iSCSI Session #1 iSCSI Session #2 Connection#1 Connection #2 Connection#1 Connection #2
iSCSI Error Recovery: Hierarchal Resets I/O Timeout LUN Reset 5 Consecutive Resets OK Reset Result Timeout Done Fail Session Recovery Target Warm Reset OK Reset Result Timeout/Fail Done
iSCSI Error Recovery I/O Requests (SRB) Connection Drop Detected Pause I/O Queue Yes LUN Ready Start I/O Pending Commands lost No Yes Using MPIO Fail I/O Initiate iSCSI Login No Fail Yes Time > X Fail I/O Time = Disconnect time X = MaxRequestHoldTime Login Status No Success Pause I/O Queue/Retry I/O Re-Enumerate Devices
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 – 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 Classeshttp://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 – iscsi@microsoft.com