Multipathing Support in Windows Server 2008
Windows Server 2008 includes many enhancements for connecting to a Storage Network. One notable feature is inclusion of native multipathing (Microsoft MPIO) inbox. Microsoft MPIO in delivers high availability by establishing multiple sessions/connections from a Windows Server host to an external storage array through iSCSI, Fibre Channel, and SAS (Serial Attached SCSI). Microsoft MPIO use redundant physical path components–adapters, cables, and switches–to create logical "paths" between the server and the storage device. In the event that a device in the path fails, Microsoft MPIO automatically redirects IO to an alternate path for continued application availability. Each NIC (in the case of iSCSI Software Initiator) or HBA (in the case of Fibre Channel, SAS, iSCSI HBA) should be connected through redundant switch infrastructures to provide continued access to storage in the event of a failure in a storage fabric component.
Note: Failover times can vary by storage vendor and can be configured through timers in the Microsoft iSCSI Software Initiator driver and/or the Fibre Channel host bus adapter driver parameter settings. Most storage array vendors will automatically configure timers during installation of their DSM package optimized for their array.
Microsoft MPIO Components
· MPIO Framework - this consists of core multipathing support in the OS as well as configuration utilities. The MPIO framework is an extensible model allowing storage vendors to develop plug ins optimized for their hardware.
· Microsoft DSM - Microsoft provided Device Specific Module - the Microsoft MPIO DSM is provided inbox in Server 2008
Core storage components including MPIO.SYS, Classpnp and Storport are involved in handling of multipath operations. The Microsoft DSM (MSDSM.SYS) and/or partner provided DSMs handle device-specific operations
Note: Microsoft also supports Microsoft MPIO for Server 2003 and Windows 2000 as a separately installed component redistributed by the storage array vendors or as provided with the e Microsoft iSCSI Software Initiator package (Microsoft iSCSI DSM)
New in Windows Server 2008 is support for ALUA with the Microsoft DSM designed to work with Asymmetric logical unit access (ALUA) as defined in SPC-3 as well as true Active/Active arrays. Asymmetric Logical Unit Access is defined in SPC-3. The following storage device types are supported by MSDSM
- Explicit ALUA. This is preferred - if INQUIRY response indicates support for both Implicit and Explicit ALUA, MSDSM will disable Implicit ALUA
- Implicit-only transition storages
- Traditional Active/Active model
- Symmetric Logical Unit Access using ALUA semantics
The Microsoft DSM provided as part of the complete solution in Windows Server 2008 includes support for the following policies:
This policy represents the simplest form of multipathing to failover from one active path to a failover path in the case of loss of a failure of a device connecting the Windows Server to the storage array.
In this policy, no load balancing is performed. The DSM will specify a primary path and a set of standby paths. The primary path is used for processing device requests. If the primary path fails, one of the standby paths will be used. Any one of the available paths could be used as primary path, and the remaining paths will be used as standby paths.
This policy dedicates I/O to a designated preferred path whenever it is operational. If the preferred path fails, I/O will be directed to an alternate path, but will automatically switch back to the preferred path, with some DSM assistance when it becomes operational again.
- Round Robin
This policy evenly distributes incoming requests across all available paths.
Round Robin Load balancing configures the DSM to use all available paths for I/O in a balanced, round robin fashion. This is the default policy chosen when the storage controller follows the true Active-Active model and the management application does not explicitly choose a load balancing policy.
- Round Robin with subset
This policy executes Round robin on all paths on all optimized paths to route IO to a disk/ (LUN). A set of paths are configured as active and a set of paths are configured as standby. I/O is sent in a round robin fashion over the active paths. If all of the active paths fail then one of the standby paths is used. If any of the formerly active paths become available again then the formerly active paths are used and the standby path that was activated becomes a standby path again. The application will specify a set of paths to be use in Round Robin fashion, and a set of standby paths. The DSM will pick the paths from primary paths for processing requests as long as at least one of them is available, DSM will pick a standby path only when all the primary paths fail. Standby paths must be listed in decreasing order of preference (i.e. most preferred path first). If one or more of the primary paths become available, DSM will start using them standby paths in their order of preference. For example, say there are 4 paths – A, B, C, and D. A, B, and C are listed as primary paths and D is standby path. DSM will pick a path from A, B, and C in round robin fashion as long as at least one of them is available. If all three fail, DSM will start using D, the standby path. If A, B, or C become available, DSM will stop using D, and will instead switch to the available paths among A, B, and C.
- Weighted Path
This policy assigns a weight to each path; the weight indicates the relative priority of a given path. The larger the number the lower the priority. The DSM will choose a path, among the available paths, with least weight.
The Microsoft DSM will persist the Load Balance settings across reboots. When no policy has been set by a management application, the default policy that will be used by MSDSM DSM will be either Round Robin, in the case of non-ALUA support, or Fail Over Only in the case of ALUA support. In this case of Fail Over Only, any one of the available paths could be used as primary path, and the remaining paths will be used as standby paths.
The MSDSM Default Load Balance Policy used is determined by the type of Asymmetric Logical Unit Access
- ALUA not supported = Failover Only
- Symmetric LUA = Round-Robin
- ALUA IMPLICIT = Round-Robin w/ Subset
- ALUA EXPLICIT = Round-Robin w/Subset
- ALUA EXPLICIT & IMPLICIT = Round-Robin w/Subset
Microsoft MPIO solutions are tested and qualified through the Certified for Windows Logo Program for compatibility and reliability with Windows.
How to add MPIO support in Windows Server 2008
Step 1: Add Microsoft MPIO optional feature
From Server Manager, select “Add Features”
Step 2: Select Multipath IO
and select Next
Step 3: Click Install
Step 4: Allow MS MPIO installation to complete and initialize
Step 5: Click Finish
Configuration and DSM installation
Additional connections through Microsoft MPIO can be configured through the control panel configuration tool or the command line interface, MPClaim.
MPIO configuration can be launched from the control panel (classic view):
MPIO Configuration can also be launched from Administrative Tools
Adding 3rd party Device Specific Modules
Typically, storage arrays which are active/active and SPC3 compliant will also work with the Microsoft MPIO DSM. Many storage array vendors also provide their own DSMs to use with the Microsoft MPIO framework.
These are delivered typically in 3 ways:
1) A self contained installation program which will install the DSM, configure any needed settings on the system including registry timer settings
2) A management suite which will install a Microsoft MPIO DSM as well as other SAN management components on a Windows Server host that will be connecting to the storage array
3) A flat package containing the DSM binary with an inf that can be installed through the MPIO DSM tab in control panel
To install the DSM from the Install tab in the MPIO properties control panel configuration utility.