MPIO disk is removed unexpectedly when a PR_IN command fails in a Windows Server 2008 R2 environment
By default, a failed PR_IN (Read Keys) command will be retried on the same path for 3 seconds as long as the storage returns a sense data of Unit Attention or Not Ready combined with an additional sense code of LUN Not Ready and a sense code qualifier of Asymmetric Access State Transition.
While we recommend that the vendor employ either the use of prioritization on PR requests or provide a custom DSM if different error handling is required, in some cases this may not be feasible. To address this, we have introduced a registry key which will allow configuring MPIO to wait longer than 3 seconds for a PR when using the Microsoft DSM.
Warning: Microsoft recommends that you do not change this key except at the express recommendation of your array vendor, as there are other timeout values such as Failover Clustering timeouts controlling the time to wait for a reservation which may also need to be changed in conjunction with this timer.
If you use this registry key to adjust the timing value, Microsoft Product Support may require changing this key back to the default tested value of 3 seconds, as setting this key to a higher value may mask performance issues which should be addressed directly.
Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows
- Open Registry Editor. To do this, click Start, type regedit in the Start Search box, and then press Enter.
- Locate and then click the following registry key:
- On the Edit menu, point to New, and then click DWORD (32 bit)Value.
- Type DsmMaximumStateTransitionTime, and then press Enter.
- On the Edit menu, click Modify.
- In the Value data box, type the value to use (in seconds), and then click OK.
- Exit Registry Editor.
Article ID: 2733575 - Last Review: 10 Jul 2012 - Revision: 1