4

I tested my environment during the 30 day trial and really liked it but now I want to make it work with the free version. I started over and followed these walk-through from Starwind Creating HA Device with StarWind Virtual SAN Free and StarWind Virtual SAN Hyper-Converged 3 Nodes Scenario with Hyper-V Cluster

I have 2 devices (Storage and witness) on 3 nodes, all my targets were created with Starwind's scripts and I was able to figure out they were synchronized.

One of my problems is that I cannot add more then one path to the target. I can configure two of my nodes to use the 10.0.0.0 adresses but not adresses 10.0.0.128 and the third node can use 10.0.0.128 but not 10.0.0.0

The other problem is if I continue and follow the Hyper-converged link, under "Multipath Configuration" it says to configure all devices for MPIO but my devices don't have any connections??

I tried it with only one path when I had the trial and it worked without this kind of problem so I know it's a misconfiguration somewhere but I cannot seem to find it.

The scripts I used :

  • CreateHA (created the devices)
  • enumDevicesTargets (confirm the devices and targets are there)
  • haSyncPriority (the name says it all)
  • SyncHaDeviceAdvanced (check if they are synchronized, stuff to do if not)

I redid the installation of starwind to see if I made a mistake but the problem is still there.

Here is the "CreateHA" config :

Import-Module StarWindX

try
{
    $server = New-SWServer -host 127.0.0.1 -port 3261 -user root -password starwind

    $server.Connect()

    $firstNode = new-Object Node

    $firstNode.HostName = "127.0.0.1"
    $firstNode.ImagePath = "My computer\S\Storage"
    $firstNode.ImageName = "Storage"
    $firstNode.Size = 1536000
    $firstNode.CreateImage = $true
    $firstNode.TargetAlias = "Storage"
    $firstNode.AutoSynch = $true
    $firstNode.SyncInterface = "#p2=10.0.0.2:3260;#p3=10.0.0.3:3260"
    $firstNode.HBInterface = "#p2=10.0.0.130:3260;#p3=10.0.0.131:3260"
    $firstNode.PoolName = ""
    $firstNode.SyncSessionCount = 1
    $firstNode.ALUAOptimized = $true
    $firstNode.SectorSize = 4096

    $secondNode = new-Object Node

    $secondNode.HostName = "192.168.0.42"
    $secondNode.HostPort = "3261"
    $secondNode.Login = "root"
    $secondNode.Password = "starwind"
    $secondNode.ImagePath = "My computer\S\Storage"
    $secondNode.ImageName = "Storage"
    $secondNode.Size = 1536000
    $secondNode.CreateImage = $true
    $secondNode.TargetAlias = "Storage"
    $secondNode.AutoSynch = $true
    $secondNode.SyncInterface = "#p1=10.0.0.1:3260;#p3=10.0.0.3:3260"
    $secondNode.HBInterface = "#p1=10.0.0.129:3260;#p3=10.0.0.131:3260"
    $secondNode.SyncSessionCount = 1
    $secondNode.ALUAOptimized = $true

    $thirdNode = new-Object Node

    $thirdNode.HostName = "192.168.0.43"
    $thirdNode.HostPort = "3261"
    $thirdNode.Login = "root"
    $thirdNode.Password = "starwind"
    $thirdNode.ImagePath = "My computer\S\Storage"
    $thirdNode.ImageName = "Storage"
    $thirdNode.Size = 1536000
    $thirdNode.CreateImage = $true
    $thirdNode.TargetAlias = "Storage"
    $thirdNode.AutoSynch = $true
    $thirdNode.SyncInterface = "#p1=10.0.0.1:3260;#p2=10.0.0.2:3260"
    $thirdNode.HBInterface = "#p1=10.0.0.129:3260;#p2=10.0.0.130:3260"
    $thirdNode.SyncSessionCount = 1
    $thirdNode.ALUAOptimized = $true

    $device = Add-HADevice -server $server -firstNode $firstNode -secondNode $secondNode -thirdNode $thirdNode -initMethod "Clear"

    $syncState = $device.GetPropertyValue("ha_synch_status")

    while ($syncState -ne "1")
    {
        #
        # Refresh device info
        #
        $device.Refresh()

        $syncState = $device.GetPropertyValue("ha_synch_status")
        $syncPercent = $device.GetPropertyValue("ha_synch_percent")

        Start-Sleep -m 2000

        Write-Host "Synchronizing: $($syncPercent)%" -foreground yellow
    }
}
catch
{
    Write-Host $_ -foreground red
}
finally
{
    $server.Disconnect()
}
Carobell
  • 331
  • 4
  • 16
  • 2
    Your MPIO configuration is definitely broken! What are your network settings? – BaronSamedi1958 Mar 13 '18 at 01:32
  • 1
    There are 5 nic-teams on each nodes. One for LAN, Storage, Cluster, Backups and Heartbeat. They all ping each other and Lan as access to the domain no problem. On Starwind, Storage = SyncInterface and Heartbeat = HBInterface. Doing targets I use the Storage network. – Carobell Mar 13 '18 at 12:15
  • 2
    You don't configure teams with StarWind, they use non-LACP connections for sync and "normal" iSCSI traffic. – BaronSamedi1958 Mar 17 '18 at 01:50

2 Answers2

7

First off, get rid of NIC teams for your storage and synchronization networks. ISCSI networks leverage MPIO, there is no need for trunking, teaming, bonding, etc. Also, don't forget to enable MPIO in Add Roles and Features wizard.

Assuming you want to use the 10.0.0.x networks for iSCSI traffic, your ISCSI Initiator configuration should look like this:

Node 1 used as an example

ISCSI Discovery portals:

127.0.0.1 (Initiator IP - Default)

10.0.0.130 (Initiator IP - local IP of ISCSI network between Node1 and Node2)

10.0.0.131 (Initiator IP - local IP of ISCSI network between Node1 and Node3)

Then you will need to connect each target under "Targets" tab.

Local targets must be connected through 127.0.0.1 (loopback). Targets on partner nodes 2 and 3 must be connected via corresponding iSCSI networks.

The detailed guide on how to connect each target can be found on their website.

By the way, the guide you have mentioned looks outdated. They have a more recent one: https://www.starwindsoftware.com/resource-library/starwind-virtual-san-hyper-converged-3-nodes-scenario-with-hyper-v-cluster

After discovering portals and connecting each target on all three nodes, you should properly configure MPIO paths. Just follow the rest of the guidance to achieve this.

P.S.: 3-way "active-active-active" replication configuration is the most complex one so prepare a big mug of coffee, pay maximum attention and carefully follow each step in their guide.

Net Runner
  • 5,626
  • 11
  • 29
  • 2
    I deleted the nic-teaming but It seems to have taken care of only half my problems. I was able to configure one of my devices (storage) but the other one (witness) still has no options when trying to configure MPIO. I also still cannot add more then one path for the targets. One problem that was added when deleting the nicteam is that I cannot modify the HBInterface and SyncInterface which means they aren't in HA anymore since I only have one NIC for each address instead of two as it was before. – Carobell Mar 19 '18 at 13:14
2

After talking to support the problem was the version of Starwind Free used. After going to an older version the problem was solved. The newest Starwind Free does not have this problem anymore (as far as I know).

Carobell
  • 331
  • 4
  • 16