I would like to install and test Multipath I/O (MPIO) for iSCSI connection. After enabling MPIO for iSCSI connection, we can use all or selected NICs to connect iSCSI target. MPIO can utilize all NICs to transfer data to same destination and then it supports error handling, failover and recovery function by Device-Specific Modules (DSM). By default, the Microsoft DSM is available in Windows Server 2012 and Windows Server 2012 R2.
Microsoft provided the more detail information about MPIO, please read the following web site for your information.
Lab environment
- 1 Windows Server 2012 R2 named DC01 is a domain controller of tls1.local
- 2 Windows Server 2012 R2 named MS01 and MS02 were joined tls1.local
- 4 NICs were installed in each server except DC01
- IP addresses for domain network are 192.168.8.10 (DC01), 192.168.8.21 (MS01) and 192.168.8.22 (MS02)
- IP addresses for MS01, iSCSI target, are 192.168.9.11, 192.168.9.21 and 192.168.9.31
- IP addresses for MS02, iSCSI initiator, are 192.168.9.12, 192.168.9.22 and 192.168.9.32
- Un-check “Register this connection’s addresses in DNS” option for iSCSI network
Installing and configuring iSCSI target
1. On MS01, log in as Domain Administrator.
2. Launch “Server Manager“.
3. On “Server Manager“, click “Add roles and features“.
4. On “Before You Begin” window, click “Next“.
5. On “Installation Type” window, select “Role-based or feature-based installation“.
6. Click “Next“.
7. On “Server Selection” window, click “Next“.
8. On “Server Roles” window, check “iSCSI Target Server” and then click “Add Features“.
9. Click “Next” twice.
10. On “Confirmation” window, click “Install“.
11. On “Results” window, click “Close“.
12. On “Server Manager” window, select “File and Storage Services“.
13. Select “iSCSI“.
14. Click “To create an iSCSI virtual disk, start the New iSCSI Virtual Disk Wizard“.
15. On “iSCSI Virtual Disk Location” window, click “Next“.
16. On “iSCSI Virtual Disk Name” window, next to “Name“, enter “MS02-Lun-0“.
17. Click “Next“.
18. On “iSCSI Virtual Disk Size” window, next to “Size“, enter “30“.
19. Select “Dynamically expanding“.
20. Click “Next“.
Remark: In Windows Server 2012, there is no option to select the types of VHD. In Windows Server 2012 R2, the virtual hard disk format of iSCSI target is VHDX.
21. On “iSCSI Target” window, select “New iSCSI target“, click “Next“.
22. On “Target Name and Access” window, next to “Name“, enter “MS02.tls1.local“.
23. Click “Next“.
24. On “Access Servers” window, click “Add“.
25. On “Add initiator ID” window, select “Enter a value for the selected type“.
26. Next to “Type“, select “IQN“.
27. Next to “Value“, enter “iqn.1991-05.com.microsoft:ms02.tls1.local” the iSCSI initiator of MS02.
Remark: “iqn.1991-05.com.microsoft” is the default prefix of IQN of Microsoft iSCSI initiator. After entering the prefix, we need to enter the FQDN of the server.
28. Click “OK“.
29. On “Access Servers” window, click “Next“.
30. On “Enable Authentication” window, click “Next“.
31. On “Confirmation” window, click “Create“.
32. On “Results” window, click “Close“.
install MPIO and configure iSCSI initiator in MS02.
Installing MPIO
1. On MS02, log in as Domain Administrator.
2. Launch “Server Manager“.
3. On “Server Manager” window, click “Add roles and features“.
4. On “Before You Begin” window, click “Next“.
5. On “Installation Type” window, select “Roles-based or feature-based installation“.
6. Click “Next“.
7. On “Server Selection” window, click “Next” twice.
8. On “Features” window, check “Multipath I/O“.
9. Click “Next“.
10. On “Confirmation” window, click “Install“.
11. On “Results” window, click “Close“.
12. Press “Start” button and then enter “MPIO“.
13. Click the “MPIO” icon.
14. On “MPIO Properties” window, select “Discover Multi-Paths” tab.
15. Check “Add support for iSCSI devices” and then click “Add“.
16. On “Reboot Required” window, click “Yes” to restart the Windows.
17. After restarting the computer, log in as Domain Administrator and then launch “MPIO“.
Make sure “MSFT2005iSCSIBusType_0x9” was added after restarting the computer.
18. Click “OK“.
Enabling and configuring iSCSI initiator in MS02
After installing MPIO in MS02, we can configure the iSCSI connections.
1. On MS02, press start button and then enter “iSCSI Initiator“.
2. Click “iSCSI Initiator” icon.
3. On “Microsoft iSCSI” window, click “Yes” to enable iSCSI service.
4. On “iSCSI Initiator Properties” window, next to “Target“, enter “ms01.tls1.local“.
5. Click “Quick Connect“.
6. On “Quick Connect” window, click “Done“.
7. Select “Favorite Targets” tab.
8. Click “Remove“.
9. Select “Targets‘ tab.
10. Click “Properties“.
11. On “Properties” window, check the first “Identifier” and then click “Disconnect“.
12. Click “Add session“.
13. On “Connect To Target” window, check “Enable multi-path” and then click “Advanced“.
14. On “Advanced Settings” window, next to “Local adapter“, select “Microsoft iSCSI Initiator“.
15. Next to “Initiator IP“, select “192.168.9.12“.
16. Next to “Target portal IP“, select “192.168.9.11 / 3260“.
17. Click “OK” twice.
18. Repeat step 12 – 17 to add other connections like (192.168.9.22 to 192.168.9.21 and 192.168.9.32 to 192.168.9.31).
19. Click “OK“.
20. Select “Favorite Targets” tab.
21. Select each target and then click “Details” to verify the connection.
Make sure all connections are correct.
22. Click “OK” to close “iSCSI Initiator Properties“.
23. Launch “Server Manager” and then select “File and Storage Services“.
24. Select “Disk“.
The disk is available. The connection was made.
Testing MPIO
I limited the bandwidth of NICs of MS02 to 20Mbps for testing.
I also created a 20GB file, named test.txt, in C drive of MS02 to copy to iSCSI disk, Drive E.
1. On MS02, log in as Domain Administrator.
2. Press “Start” button and then launch “Task Manager“.
3. On “Task Manager” window, click “More details“.
4. Select “Performance” tab.
5. Those NICs are idle at this moment.
6. Launch “Windows Explorer“, copy “test.txt” to E:\.
7. Back to “Task Manager“.
All NICs were utilized because we configured “Enable mutli-path” in iSCSI initiator.
8. Disconnect 1 of NICs in MS02.
1 of NICs was disconnected and then the copying file process stopped. However, the file transfer doesn’t close because MPIO can detect the failed path and try to resubmit the I/O on new paths.
After 30 – 60 seconds, the file transfer were recovered and it is using the new paths to transfer the file.
9. Disconnect 1 of NICs which is transferring the data in MS01.
The copying file process stopped again because MPIO is detecting the failed path and try to resubmit the I/O on new paths.
After 30 – 60 seconds, the file transfer were recovered and it is using a new path to transfer the file.
As a result, the MPIO with iSCSI connections is working.