Multipath I/O Overview
Applies To: Windows Server 2008 R2
Multipathing Support for High Availability
Windows Server® 2008 includes many enhancements for the connectivity of a computer running a Windows server-class operating system to storage area networking (SAN) devices.
Among the enhancements enabling high availability for connecting Windows-based servers to SANs is integrated Multipath I/O (MPIO) support. Microsoft MPIO architecture supports iSCSI, Fibre Channel and serial attached storage (SAS) SAN connectivity by establishing multiple sessions or connections to the storage array.
Multipathing solutions use redundant physical path components — adapters, cables, and switches — to create logical paths between the server and the storage device. In the event that one or more of these components fails, causing the path to fail, multipathing logic uses an alternate path for I/O so that applications can still access their data. Each network interface card (in the iSCSI case) or HBA should be connected by using redundant switch infrastructures to provide continued access to storage in the event of a failure in a storage fabric component.
Failover times vary by storage vendor, and can be configured by using timers in the Microsoft iSCSI Software Initiator driver, or modifying the Fibre Channel host bus adapter driver parameter settings.
New MPIO features in Windows Server 2008 include a Device Specific Module (DSM) designed to work with storage arrays that support the asymmetric logical unit access (ALUA) controller model (as defined in SPC-3), as well as storage arrays that follow the Active/Active controller model.
Features of the included DSM
The Microsoft DSM provides the following load balancing policies. Note that load balance policies are generally dependent on the controller model (ALUA or true Active/Active) of the storage array attached to Windows-based computers.
Failover No load balancing is performed. The application specifies 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 is used. Standby paths must be listed in decreasing order of preference (the most preferred path first).
Failback Failback is the ability to dedicate I/O to a preferred path whenever it is functioning. If the preferred path fails, I/O is directed to an alternate path until function is restored to the preferred path, but I/O automatically switches back to the preferred path when function is restored.
Round-robin The DSM uses all available paths for I/O in a balanced, round-robin fashion.
Round-robin with a subset of paths The application specifies a set of paths to be used in a round-robin fashion, and a set of standby paths. The DSM uses paths from primary pool of paths for processing requests, as long as at least one of the paths is available. The DSM uses a standby path only when all primary paths fail. Standby paths must be listed in decreasing order of preference (most preferred path first). If one or more of the primary paths become available, DSM uses the standby paths in their order of preference. For example, given 4 paths — A, B, C, and D — A, B, and C are listed as primary paths, and D is standby path. The DSM chooses 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, the DSM uses D, the standby path. If A, B, or C become available, DSM stops using D and switches to available paths among A, B, and C.
Dynamic Least Queue Depth The DSM routes I/O to the path with the least number of outstanding requests.
Weighted Path The application assigns weights to each path; the weight indicates the relative priority of a given path. The larger the number, the lower the priority. The DSM chooses the path that has the least weight from among the available paths.
The Microsoft DSM preserves load balance settings even after the computer is restarted. When no policy has been set by a management application, the default policy that is used by the DSM is either Round Robin, when the storage controller follows the true Active/Active model, or simple failover in the case of storage controllers that support the SPC-3 ALUA model. With simple Failover, any one of the available paths can be used as the primary path, and remaining paths are used as standby paths.
Adding and removing MPIO support
To install Multipath I/O on a computer running Windows Server 2008, complete the following steps.
To install Multipath I/O
Open Server Manager.
To open Server Manager, click Start, point to Administrative Tools, and then click Server Manager.
In the Features area, click Add Features.
On the Select Features page of the Add Features Wizard, select Multipath I/O, and then click Next.
On the Confirm Installation Selections page, click Install.
When installation has completed, click Close.
To install Multipath I/O on a computer by using the Server Manager command line, complete the following steps.
To install Multipath I/O by using a command line
Open a Command Prompt window with elevated privileges.
Right-click the Command Prompt object on the Start menu, and then click Run as administrator.
Type the following, and press ENTER.
ServerManagerCmd.exe -install Multipath-IO
When installation has completed, you can verify that Multipath I/O has installed by entering the following command and reviewing the query results in the command window. Multipath I/O should show in the list of installed packages.
ServerManagerCmd.exe -query
Removing Multipath I/O
To remove Multipath I/O, complete the following steps.
To remove Multipath I/O
Open Server Manager.
To open Server Manager, click Start, point to Administrative Tools, and then click Server Manager.
In the Features area, click Remove Features.
On the Select Features page of the Add Features Wizard, select Multipath I/O, and then click Next.
On the Confirm Installation Selections page, click Install.
When installation has completed, click Close.
To remove Multipath I/O by using the Server Manager command line, complete the following steps.
To remove Multipath I/O by using a command line
Open a Command Prompt window with elevated privileges.
Right-click the Command Prompt object on the Start menu, and then click Run as administrator.
Type the following, and press ENTER.
ServerManagerCmd.exe -remove Multipath-IO
When removal has completed, you can verify that Multipath I/O was removed by entering the following command and reviewing the query results in the command window. Multipath I/O should not be in the list of installed packages.
ServerManagerCmd.exe -query
Opening and configuring Multipath I/O
After Multipath I/O has been installed, you can open the MPIO Properties dialog box either from within Control Panel, or by clicking MPIO in Administrative Tools on the Start menu.
Configuration and DSM installation
Additional connections through Microsoft MPIO can be configured by using the MPIO Properties dialog box or by using the command line interface.
Adding third-party DSMs
Many storage arrays which are Active/Active and SPC-3-compliant also work with the MPIO universal DSM. Some storage array vendors also provide their own DSMs to interface with the Microsoft MPIO architecture. Third-party DSMs should be installed by using the DSM Install tab in the MPIO Properties dialog box.
The Discover Multi-Paths tab checks for devices that for which multiple paths to the storage array exist. The Device Hardware ID field should be populated automatically, once the check is complete.
If multiple paths to the storage do not exist, or if the storage device is not connected, you can add the device hardware ID manually by providing information on the MPIO-ed Devices tab.
Using the MPclaim command-line tool
Multipath I/O can be managed by using the MPclaim command-line tool.
Note
The command line is the only method of Multipath I/O configuration available on computers running a Server Core installation of Windows Server 2008.
Syntax of MPclaim
mpclaimrestart_optioninstall_switchdevice_switchdevice_hwid
MPclaim parameters
The following table describes the command parameters you can use with the MPclaim command to manage Multipath I/O by using a command line.
Parameter | Description | |
---|---|---|
Restart_option |
Option |
Description |
-r |
-r |
Automatically restarts without prompting |
-n |
-n |
Suppress restart request. |
Install_switch |
Option |
Description |
-i |
-i |
Installs MPIO and adds multipath support for a storage device |
-u |
-u |
Remove MPIO and discontinue support for a storage device |
device_switch |
Option |
Description |
-d <device_hwid> |
-d <device_hwid> |
Specifies devices for which you want MPIO support. Device IDs are separated by a space. |
-a |
-a |
Apply MPIO support to all compatible devices. |
-c |
-c |
Apply MPIO support only to SPC-3 compatible devices. This parameter is only applicable to installation; if you are removing MPIO (by using the -u parameter for install_switch) then -c is interpreted by the command similarly to -a. |
device_hwid |
device_hwid |
IDs of devices to be supported by MPIO, in the format VendorProduct, in which Vendor represents the manufacturer or vendor name, and Product represents the product or model name. Multiple IDs must be delimited by a space. This parameter is used only with the -d device switch option. |