StarWind Virtual SAN® is a native Windows hypervisor-centric hardware-less VM storage solution. It creates a fully fault-tolerant and high performing storage pool built for the virtualization workloads by mirroring existing server’s storage and RAM between the participating storage cluster nodes. The mirrored storage resources are then connected to all cluster nodes and treated just as a local storage by all hypervisors and clustered applications. High Availability is achieved by providing multipath access to all storage nodes. StarWind Virtual SAN® delivers supreme performance compared to any dedicated SAN solution since it runs locally on the hypervisor and all I/O is processed by local RAM, SSD cache, and disks. This way it never gets bottlenecked by storage fabric.
This guide is written for experienced Windows Server users or system administrators. It provides the detailed instructions on how to set up a 3-node dedicated scenario with Hyper-V Cluster on Windows Server 2016 with StarWind Virtual SAN® as a storage provider to convert the local or iSCSI attached storage of the cluster nodes into a fault tolerant shared storage resource to be then presented to the compute servers using iSCSI protocol.
A full set of up-to-date technical documentation can always be found here, or by pressing the Help button in the StarWind Management Console.
Preconfiguring the Servers
Here is a network diagram of the configuration described in this guide.
NOTE: Additional network connections may be necessary, depending on the cluster setup and applications’ requirements. For any technical help with configuring the additional networks, please, do not hesitate to contact StarWind support department via online community forum, or via support form (depending on your support plan).
1. Make sure to have a domain controller and the servers added to the domain.
2. Install Failover Clustering and Multipath I/O features, as well as the Hyper-V role on all servers. This can be done through the Server Manager (Add Roles and Features menu item).
3. Configure network interfaces on each node to make sure that Synchronization and iSCSI/StarWind Heartbeat interfaces are in different subnets and connected according to the network diagram above. In this document, 172.16.10.x and 172.16.11.x subnets are used for iSCSI/StarWind Heartbeat traffic, while 172.16.110.x, 172.16.111.x and 172.16.112.x subnets are used for the Synchronization traffic.
4. In order to allow iSCSI Initiators discover all StarWind Virtual SAN interfaces, the StarWind configuration file (StarWind.cfg) should be changed after stopping the StarWind service on the node where it will be edited. Locate the StarWind Virtual SAN configuration file (the default path is “C:\Program Files\StarWind Software\StarWind\StarWind.cfg”) and open it via WordPad as Administrator. Find the <iScsiDiscoveryListInterfaces value=”0”/> string and change the value from 0 to 1 (should look as follows: <iScsiDiscoveryListInterfaces value=”1”/>). Save the changes and exit Wordpad. Once StarWind.cfg is changed and saved, the StarWind service can be restarted.
Enabling Multipath Support
5. Open the MPIO manager: Start->Administrative Tools->MPIO.
7. When prompted to restart the server, click Yes to proceed.
NOTE: Repeat procedures on each Compute node.
Configuring Shared Storage
8. Download the StarWind setup executable file from the StarWind website:
NOTE: The setup file is the same for x86 and x64 systems, as well as for all Virtual SAN deployment scenarios.
Install StarWind Virtual SAN on all nodes, using default settings. Apply a time-limited fully functional evaluation key or a FREE version key. Alternatively, use the already purchased StarWind Virtual SAN commercial license key. After successful installation, launch the StarWind Management Console: double-click the StarWind tray icon.
If StarWind Service and Management Console are installed on the same server, Management Console will automatically add the local StarWind instance to the console tree after the first launch. In future, the Management Console will automatically connect to it using the default credentials. To add remote StarWind VSAN servers to the console, use the Add Server button on the control panel.
9. StarWind Management Сonsole will ask to specify the default storage pool on the server for the first-time connection. Please configure the storage pool to use one of the volumes prepared earlier. All devices created through Add Device wizard will be stored on it. In case an alternative storage path is used for StarWind virtual disks, please use Add Device (advanced) menu item.
Press Yes button to configure the storage pool. In case storage pool destination should be changed, press Choose path… and point the browser to the necessary disk.
NOTE: Each array that will be used by StarWind Virtual SAN to store virtual disk images has to meet the following requirements:
- Initialized as GPT
- Have a single NTFS-formatted partition
- Have a drive letter assigned
10. Select the StarWind server to create the device.
11. Press Add Device (advanced) button on the toolbar.
12. Add Device Wizard will appear. Select Hard disk device and click Next.
13. Select Virtual disk and click Next.
14. Specify the virtual disk location and size.
15. Specify the virtual disk options. Click Next.
16. Define the caching policy and specify the cache size (in GB).
NOTE: The basic recommendation is to assign 1 GB of L1 cache in Write-Back or Write-Through mode per 1 TB of storage capacity. Yet, the cache size should correspond to the storage working set of the servers.
17. Define L2 caching policy and size if necessary.
NOTE: The recommended size of the L2 cache is 10% of the initial StarWind device capacity.
Click Next to continue.
18. Specify target parameters.
Select the Target Name checkbox to enter a custom name of a target.
Otherwise, the name will be generated automatically based on the target alias.
19. Click Create to add a new device and attach it to the target. Then click Close to close the wizard.
20. Right-click on the Server field and select Add Server. Add new StarWind Server, which will be used as a second HA node. Click OK to continue.
21. Right-click on the Server field and select Add Server again. Add new StarWind Server, which will be used as a third HA node. Click OK to continue.
22. Right-click on the device that was just created and select Replication Manager. Replication Manager Window will appear. Press Add Replica button.
23. Select Synchronous Two-Way Replication. Click Next to proceed.
24. Specify the partner server IP address.
Default StarWind management port is 3261. If a different port has been configured, please type it in the Port number field. Click Next.
25. Select the failover strategy for the HA device. For the purposes of this document, the Heartbeat failover strategy is used. Click Next to continue.
NOTE: In scenarios with 3-way mirrored StarWind devices only Heartbeat failover strategy can be used.
26. Choose Create new Partner Device. Click Next.
27. Specify partner device location if necessary. You can also modify the target name of the device. Click Next.
28. The following screen allows selecting the Synchronization and Heartbeat channels for the HA device. The ALUA settings and the target name of the device can also be modified. Click Change Network Settings… to continue.
29. Specify the interfaces for Synchronization and Heartbeat. Click OK. Then click Next.
NOTE: It is recommended to configure the Heartbeat and iSCSI channels on the same interfaces to avoid the split-brain issue. If the Synchronization and Heartbeat interfaces are located on the same network adapter, it is recommended to assign one more Heartbeat interface to a separate adapter.
30. Select Synchronize from existing Device for the partner device initialization mode. Click Next.
31. Press the Create Replica button. Then click Close to close the wizard.
32. Click Add replica again. Select Synchronous ”Two-Way” Replication as a replication mode. Click Next to proceed.
33. Specify the partner server IP address. The default StarWind management port is 3261. If a different port has been configured, type it in the Port Number field. Click Next to continue.
34. Choose Create new Partner Device. Click Next.
35. Specify the partner device location if necessary and/or modify the target name of the device. Click Next.
36. Select the Synchronization and Heartbeat networks for the HA device by clicking Change Network Settings.
37. Specify the interfaces for Synchronization and Heartbeat. Click OK. Then click Next.
38. Select partner device initialization mode Synchronize from existing Device. Click Next.
39. Press Create Replica button. Then click Close to close the wizard.
40. The successfully added devices will appear in StarWind Management Console.
Repeat HA device creation steps for any virtual disks that will be further used as Cluster Shared Volumes.
Once all devices are created, Management Console should look similar to the screenshot below.
Discovering Target Portals
This part describes how to discover Target Portals from each StarWind node on each Cluster node.
41. Launch Microsoft iSCSI Initiator: Start > Administrative Tools > iSCSI Initiator or iscsicpl from the command line interface. The iSCSI Initiator Properties window appears.
42. Navigate to the Discovery tab.
43. Click the Discover Portal button. Discover Target Portal dialog appears. Type in first iSCSI IP address of the first StarWind node.
44. Click on Advanced button. Select Microsoft ISCSI Initiator as your Local adapter and select the Initiator IP (within the same subnet) of the first Cluster node. Confirm the actions to complete the Target Portal discovery.
45. Click Discover Portal button again. Type in the second iSCSI IP address of the first StarWind node.
46. Click on Advanced button. Select Microsoft ISCSI Initiator as your Local adapter and select the Initiator IP (within the same subnet) of the first Cluster node. Confirm the actions to complete the Target Portal discovery.
47. Click Discover Portal button again. Type in the first iSCSI IP address of the second StarWind node.
48. Click on the Advanced button. Select Microsoft ISCSI Initiator as your Local adapter and select the Initiator IP (within the same subnet) of the first Cluster node. Confirm the actions to complete the Target Portal discovery.
49. Click Discover Portal button again. Type in second iSCSI IP address of the second StarWind node.
50. Click on the Advanced button. Select Microsoft ISCSI Initiator as your Local adapter and select the Initiator IP (within the same subnet) of the first Cluster node. Confirm the actions to complete the Target Portal discovery.
51. Click Discover Portal button again. Type in the first iSCSI IP address of the third StarWind node.
52. Click on the Advanced button. Select Microsoft ISCSI Initiator as your Local adapter and select the Initiator IP (within the same subnet) of the first Cluster node. Confirm the actions to complete the Target Portal discovery.
53. Click Discover Portal button again. Type in the second iSCSI IP address of the third StarWind node.
54. Click on the Advanced button. Select Microsoft ISCSI Initiator as your Local adapter and select the Initiator IP (within the same subnet) of the first Cluster node. Confirm the actions to complete the Target Portal discovery.
55. All target portals added on the first Compute node.
56. Complete the steps (41-56) for the rest of the Compute nodes, which will be in the cluster. The result should look like the screenshot below.
57. Switch to the iSCSI Initiator of the first Compute node. Click on the Targets tab. The previously created targets are listed under Discovered Targets section.
NOTE: If the created targets are not listed, check the firewall settings of the StarWind Server as well as the list of networks served by the StarWind Server (go to StarWind Management Console -> Configuration -> Network). Alternatively, check the Access Rights tab on the corresponding StarWind VSAN server in StarWind Management Console for any restrictions implemented.
58. Connecting CSV1. Select CSV1 target located on the first StarWind server and click Connect.
59. Enable checkbox as in the image below. Press Advanced.
60. Select Microsoft iSCSI Initiator in the Local adapter text field.
In the Target portal IP select the IP address of the first StarWind node and Initiator IP address from the same subnet. Click OK.
61. To connect CSV1 via the second iSCSI subnet, select the same target (Step 60) and click Connect again.
62. Enable checkbox as in the image below. Press Advanced.
63. Select Microsoft iSCSI Initiator in the Local adapter text field.
In the Target portal IP select the IP address of the first StarWind node and Initiator IP address from the same subnet. Click OK.
64. Repeat the actions described in the steps 60-65 and connect the targets for the rest of StarWind devices. All iSCSI targets must be connected as on the screenshot below.
65. Repeat the steps 60-66 of this section on each Compute node, specifying corresponding data channel IP addresses. The result should look like the screenshot below.
NOTE: It is recommended to configure the different MPIO policies depending on iSCSI channel throughput. For 1 Gbps iSCSI channel throughput, it is recommended to set Failover Only or Least Queue Depth MPIO load balancing policy. For 10 Gbps iSCSI channel throughput, it is recommended to set Round Robin or Least Queue Depth MPIO load balancing policy.
66. Configure the MPIO policy for each device. Select a target of Witness located on the local server and click Devices.
67. Devices dialog will appear. Click MPIO.
68. For the Witness target, set the load balance policy to Round Robin or Least Queue Depth.
69. Repeat the same steps for all devices on the second and third nodes.
70. Initialize the disks and create partitions on them using computer management snap-in. It is required that disk devices are visible on all three nodes to create the cluster.
NOTE: It is recommended to initialize disks as GPT.
Creating a Cluster
NOTE: To avoid issues during the cluster validation configuration, it is recommended to install the latest Microsoft updates on each node.
71. Open Server Manager. Select the Failover Cluster Manager item from the Tools menu.
72. Click the Create Cluster link in the Actions section of the Failover Cluster Manager.
73. Specify the servers to be added to the cluster. Click Next to continue.
74. Validate the configuration by passing the cluster validation tests: select Yes… and click Next to continue.
75. Specify the cluster name.
NOTE: If the cluster servers get IP addresses over DHCP, the cluster also gets its IP address over DHCP, though this scenario is not advisable. If the IP addresses are set statically, setting the cluster IP address manually is required. Click Next to continue.
76. Make sure that all settings are correct. Click Previous to make any changes. Click Next to proceed.
NOTE: If the Add all eligible storage to the cluster checkbox is enabled, the wizard will try to add all disks to the cluster automatically. The smallest device will be assigned as the cluster witness disk. It is recommended to uncheck this checkbox before clicking Next and assign the cluster witness disk later manually.
77. Upon cluster creation completion, the system displays a report with the detailed information that can be viewed by clicking on the View Report button. Alternatively, click Finish to close the wizard.
Adding Cluster Shared Volumes
Follow the steps below to add the Cluster Shared Volumes (CSV) that are necessary for working with Hyper-V virtual machines.
78. In the Failover Cluster Manager, go to Cluster -> Storage -> Disks. Click Add Disk in the Actions panel, choose StarWind disks from the list and confirm the selection.
79. To configure the cluster witness disk, right-click on Cluster and proceed to More Actions -> Configure Cluster Quorum Settings.
80. Follow the wizard and use the Select the quorum witness option. Click Next.
81. Select Configure a disk witness. Click Next.
82. Select the Witness disk to be assigned as the cluster witness disk. Click Next and press Finish to complete the operation.
83. In Failover Cluster Manager, select a disk from the list of the available storage devices. Right-click on it and select Add to Cluster Shared Volumes.
84. Perform the steps above for any other disk in Failover Cluster Manager. The resulting list of disks will look similar to the screenshot below.
85. Once the disks are added to the Cluster Shared Volumes and the network preferences are set, highly available virtual machines can be created on the Cluster Shared Volumes. Select Roles and in the Action tab, click Virtual Machines -> New Virtual Machine. Complete the wizard.
NOTE: to avoid unnecessary CSV overhead, configure each CSV to be owned by different cluster node. This node should also be the preferred owner of the VMs running on that CSV.
The Windows Failover Cluster will increase availability of services or applications running in it, as well as exclude the downtime during maintenance.
In case of any additional questions, visit the StarWind Support Forum and StarWind Tech Support engineers will gladly assist.