MPIO or MultiPath I / O is a Windows feature that allows multiple path support for storage.
MPIO addresses two issues: performance and reliability.
The majority of storage bays have two controllers for reliability reasons. Whether you are a SAN or a DAS, the servers are “attached” to the array via the two controllers, which allows you to present a volume to the server with multiple paths.
Representation of a volume x presented to a server without MPIO:
On Windows this is how it is represented:
The same volume is seen many times.
Prerequisites for configuration:
- In order to be able to configure the MPIO, it is necessary to present at least one volume to the server.
Installation in Powershell
Open a PowerShell command prompt as an administrator and enter the following command:
Install-WindowsFeature -Name Multipath-IO
Wait during the installation
The installation of the feature requires a reboot.
Installation in graphical mode
1. Launch the Add Role and Features Wizard, in the first window click Next 1 .
2. Choose Role Based Installation or 1 Functionality and click Next 2 .
3. Select the server where the MPIO is to be installed 1 and click the Next 2 button.
4. Skip the selection of roles by clicking Next 1 .
5. Check the MPIO box (Multipath I / O) 1 and click Next 2 .
6. Confirm by clicking Install 1 .
7. Wait during the installation …
8. The feature is installed, click Close 1 to exit the wizard.
9. Restart the server.
1. Open the control panel and click on MPIO 1 .
2. Go to the Discover multiple paths 1 tab. Select the 2 material available in the SPC-3 Compliant or Other area and click the Add 3 button. Finally click OK 4 .
If you use iSCSI technology, check the box Add iSCSI Device Support.
3. Confirm the restart by clicking Yes 1 .
4. After restarting the server, open Disk Manager, right-click on a SAN volume, and click Properties 1 .
5. Go to MPIO tab 1 and check for multiple paths 2 .
From this page, it is possible to configure how the paths are used (failover / simultaneously).
The different storage paths are now recognized by Windows.
You can choose from the Microsoft MPIO (Multipath I / O) policies listed below.
Failover only – policy that does not perform load balancing. This policy uses a single active path and the other paths are pending. The active path is used to send all I / O operations. If the active path fails, one of the pending paths is used. When the failed path is re-enabled or reconnected, the pending path that has been activated is put back on hold.
Round robin – a load balancing policy that allows the device-specific module (DSM) to use all available paths for MPIO in a balanced way. This is the default policy chosen when the storage controller follows the active / active model and the management application does not specifically choose a load balancing policy.
Subset-based round robin – a load-balancing policy that allows the application to specify a set of paths to use in turn with a set of pending paths. The DSM uses the paths of the primary path pool for processing requests as long as at least one of the paths is available. The DSM module uses a pending path only if all the primary paths fail. For example, consider four paths: A, B, C, and D, with paths A, B, and C being listed as the primary paths, and D being the pending path. The DSM module in turn chooses a path from A, B and C, as long as one of them is available. If these three paths fail, the DSM then uses D, the pending path. If the A, B, or C paths become available again, the DSM module stops using D and switches to the available paths among A, B, and C.
Minimum queue length – load balancing policy that directs I / O operations to the path with the least I / O requests currently untreated. For example, consider that an I / O operation is sent to LUN 1 on path 1 and the other I / O operation is sent to LUN 2 on path 1. The cumulative number of unprocessed I / O operations on path 1 is 2, and it is zero on path 2. Therefore, the next I / O operation for any logical unit number will be processed on path 2.
Measured paths – a load balancing policy that assigns a weight to each path. Weighting indicates the relative priority of a given path. The higher the value, the lower the priority. The DSM chooses the path with the least weight among the available paths.
Smaller blocks – load balancing strategy that directs I / O operations to the path with the least blocks of data being processed. For example, consider two I / O operations: one of 10 bytes and the other of 20 bytes. Both are being processed on path 1 and both have completed path 2. The cumulative untreated amount of I / O on path 1 is 30 bytes. On path 2, it is zero. Therefore, the next I / O operation will be on path 2.