Switchless Data and Replication Net Config

Software-based VM-centric and flash-friendly VM storage + free version

Moderators: anton (staff), art (staff), Max (staff), Anatoly (staff)

Locked
odintech
Posts: 5
Joined: Wed Dec 20, 2023 5:06 pm

Wed Dec 20, 2023 5:24 pm

Hello,

First time poster here. I am trying to configure a 3 node cluster using the CVM on Hyper-V server 2019. I have two 2port 10G cards in each node and each card is dedicated to Data or Replication respectively. When I try to put all the links together on one vswitch per data type I cannot ping all points. When I configure a VSwitch per data type and segment I can ping all ips in their respective subnets but the CVM won't allow me to setup HA Networking as all the subnets are different. Is there a way to configure this in a switchless configuration?

Node1
Port IP Role VSwitch
SL4P1 172.16.12.1 Data iSCSI 1-2
SL4P2 172.16.13.1 Data iSCSI 1-3
SL6P1 172.16.21.1 Replication Sync 2-1
SL6P2 172.16.31.1 Replication Sync 3-1

Node2
SL4P1 172.16.12.2 Data iSCSI 1-2
SL4P2 172.16.23.2 Data iSCSI 2-3
SL6P1 172.16.21.2 Replication Sync 2-1
SL6P2 172.16.32.2 Replication Sync 3-2

Node3
SL4P1 172.16.13.3 Data iSCSI 1-3
SL4P2 172.16.23.3 Data iSCSI 2-3
SL6P1 172.16.31.3 Replication Sync 3-1
SL6P2 172.16.32.3 Replication Sync 3-2

CVM-Node1
vSwitch IP Role
iSCSI 1-2 172.16.12.4 Data
iSCSI 1-3 172.16.13.4 Data
Sync 2-1 172.16.21.4 Replication
Sync 3-1 172.16.31.4 Replication

CVM-Node2
iSCSI 1-2 172.16.12.5 Data
iSCSI 2-3 172.16.23.5 Data
Sync 2-1 172.16.21.5 Replication
Sync 3-2 172.16.32.5 Replication

CVM-Node3
iSCSI 1-3 172.16.13.6 Data
iSCSI 2-3 172.16.23.6 Data
Sync 3-1 172.16.31.6 Replication
Sync 3-2 172.16.32.6 Replication
yaroslav (staff)
Staff
Posts: 2340
Joined: Mon Nov 18, 2019 11:11 am

Thu Dec 21, 2023 2:14 pm

Greetings,

Yes, you can set it up in a switchless configuration. I think there are Wired Ethernet adapters there that limit connectivity.
The GUI-enabled guide https://www.starwindsoftware.com/resour ... ng-web-ui/, you can use the scripts from https://www.starwindsoftware.com/resour ... chine-cvm/ and https://forums.starwindsoftware.com/vie ... p+3#p31505

As an exclusion, I will be happy to schedule a remote session. Please reach out to us at support@starwind.com (1081420 will be your reference)
odintech
Posts: 5
Joined: Wed Dec 20, 2023 5:06 pm

Thu Dec 21, 2023 3:11 pm

I tried using the createHA_3.ps1 script and got an error about "200-partner info invalid

here is the error From powershell:

Code: Select all

Request to  172.16.99.31 ( 172.16.99.31 ) : 3261
-
control HAImage -CreateHeader:"" -DeviceHeaderPath:"VSA Storage\mnt\zd0\csv1\masterImg31_HA.swdsk" -Type:"ImageFile_HA" -file
:"imagefile1" -size:"256000" -Priority:"#p0=0;#p1=1;#p2=2" -nodeType:"#p0=1;#p1=1;#p2=1" -PartnerTargetName:"#p1=iqn.2008-08.
com.starwindsoftware:172.16.99.32-partnerha32;#p2=iqn.2008-08.com.starwindsoftware:starwindvsa-83289036.jh-test.adds-partnerh
a33" -PartnerIP:"#p1=172.16.21.5:sync:3260:1, 172.16.99.32:heartbeat:3260:1,172.16.12.5:heartbeat:3260:1;#p2=172.16.31.6:sync
:3260:1, 172.16.99.33:heartbeat:3260:1,172.16.13.6:heartbeat:3260:1" -IsAutoSynchEnabled:"1" -AuthChapLogin:"#p1=0b;#p2=0b" -
AuthChapPassword:"#p1=0b;#p2=0b" -AuthMChapName:"#p1=0b;#p2=0b" -AuthMChapSecret:"#p1=0b;#p2=0b" -AuthChapType:"#p1=none;#p2=
none" -Offset:"0" -CacheMode:"wb" -CacheSizeMB:"128" -serial:"22EFA500CF96F7C8" -eui64:"22EFA500CF96F7C8" -revision:"0001" -p
roduct:"STARWIND" -vendor:"STARWIND" -Replicator:"#p0=0" -WitnessType:"0" -AluaAccessState:"#p0=0;#p1=1;#p2=1"
-
200 Failed: invalid partner info.. 
Here is the script I used:

Code: Select all

param($addr="172.16.99.31", $port=3261, $user="root", $password="starwind",
	$addr2="172.16.99.32", $port2=$port, $user2=$user, $password2=$password,
	$addr3="172.16.99.33", $port3=$port, $user3=$user, $password3=$password,
#common
	$initMethod="Clear",
	$size=256000,
	$sectorSize=4096,
	$failover=0,
	$bmpType=0,
	$bmpStrategy=0,
#primary node
	$imagePath="VSA Storage\mnt\zd0\csv1",
	$imageName="masterImg31",
	$createImage=$true,
	$targetAlias="targetha31",
	$autoSynch=$true,
	$poolName="pool1",
	$syncSessionCount=1,
	$aluaOptimized=$true,
	$cacheMode="wb",
	$cacheSize=128,
	$syncInterface=$("#p2=172.16.21.5:3260;#p3=172.16.31.6:3260" -f $addr2,$addr3),
	$hbInterface="#p2=172.16.12.5:3260, 172.16.99.32:3260;#p3=172.16.13.6:3260, 172.16.99.33:3260",
	$bmpFolderPath="",
#secondary node
	$imagePath2="VSA Storage\mnt\zd0\csv1",
	$imageName2="partnerImg32",
	$createImage2=$true,
	$targetAlias2="partnerha32",
	$autoSynch2=$true,
	$poolName2="pool1",
	$syncSessionCount2=1,
	$aluaOptimized2=$false,
	$cacheMode2=$cacheMode,
	$cacheSize2=$cacheSize,
	$syncInterface2=$("#p1=172.16.21.4:3260;#p3=172.16.32.6:3260" -f $addr,$addr3),
	$hbInterface2="#p1=172.16.12.4:3260, 172.16.99.31;#p3=172.16.23.6:3260, 172.16.99.33:3260",
	$bmpFolderPath2="",
#third node
	$imagePath3="VSA Storage\mnt\zd0\csv1",
	$imageName3="partnerImg33",
	$createImage3=$true,
	$targetAlias3="partnerha33",
	$autoSynch3=$true,
	$poolName3="pool1",
	$syncSessionCount3=1,
	$aluaOptimized3=$false,
	$cacheMode3=$cacheMode,
	$cacheSize3=$cacheSize,
	$syncInterface3=$("#p1=172.16.31.4:3260;#p2=172.16.32.5:3260" -f $addr,$addr2),
	$hbInterface3="#p1=172.16.13.4:3260, 172.16.99.4:3260;#p2=172.16.23.5:3260, 172.16.99.5:3260",
	$bmpFolderPath3=""
	)

Import-Module StarWindX

try
{
	Enable-SWXLog

	$server = New-SWServer -host $addr -port $port -user $user -password $password

	$server.Connect()
    
	$firstNode = new-Object Node

	$firstNode.HostName = $addr
	$firstNode.HostPort = $port
	$firstNode.ImagePath = $imagePath
	$firstNode.ImageName = $imageName
	$firstNode.Size = $size
	$firstNode.CreateImage = $createImage
	$firstNode.TargetAlias = $targetAlias
	$firstNode.AutoSynch = $autoSynch
	$firstNode.SyncInterface = $syncInterface
	$firstNode.HBInterface = $hbInterface
	$firstNode.PoolName = $poolName
	$firstNode.SyncSessionCount = $syncSessionCount
	$firstNode.ALUAOptimized = $aluaOptimized
	$firstNode.SectorSize = $sectorSize
	$firstNode.CacheMode = $cacheMode
	$firstNode.CacheSize = $cacheSize
	$firstNode.FailoverStrategy = $failover
	#$firstNode.BitmapStoreType = $bmpType
	#$firstNode.BitmapStrategy = $bmpStrategy
	#$firstNode.BitmapFolderPath = $bmpFolderPath

	$secondNode = new-Object Node

	$secondNode.HostName = $addr2
	$secondNode.HostPort = $port2
	$secondNode.Login = $user2
	$secondNode.Password = $password2
	$secondNode.ImagePath = $imagePath2
	$secondNode.ImageName = $imageName2
	$secondNode.CreateImage = $createImage2
	$secondNode.TargetAlias = $targetAlias2
	$secondNode.AutoSynch = $autoSynch2
	$secondNode.SyncInterface = $syncInterface2
	$secondNode.HBInterface = $hbInterface2
	$secondNode.SyncSessionCount = $syncSessionCount2
	$secondNode.ALUAOptimized = $aluaOptimized2
	$secondNode.CacheMode = $cacheMode2
	$secondNode.CacheSize = $cacheSize2
	$secondNode.FailoverStrategy = $failover
	#$secondNode.BitmapFolderPath = $bmpFolderPath2

	$thirdNode = new-Object Node

	$thirdNode.HostName = $addr3
	$thirdNode.HostPort = $port3
	$thirdNode.Login = $user3
	$thirdNode.Password = $password3
	$thirdNode.ImagePath = $imagePath3
	$thirdNode.ImageName = $imageName3
	$thirdNode.CreateImage = $createImage3
	$thirdNode.TargetAlias = $targetAlias3
	$thirdNode.AutoSynch = $autoSynch3
	$thirdNode.SyncInterface = $syncInterface3
	$thirdNode.HBInterface = $hbInterface3
	$thirdNode.SyncSessionCount = $syncSessionCount3
	$thirdNode.ALUAOptimized = $aluaOptimized3
	$thirdNode.CacheMode = $cacheMode3
	$thirdNode.CacheSize = $cacheSize3
	$thirdNode.FailoverStrategy = $failover
	#$thirdNode.BitmapFolderPath = $bmpFolderPath3

	$device = Add-HADevice -server $server -firstNode $firstNode -secondNode $secondNode -thirdNode $thirdNode -initMethod $initMethod
    
	$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()
}
odintech
Posts: 5
Joined: Wed Dec 20, 2023 5:06 pm

Thu Dec 21, 2023 3:45 pm

Attempted the Configure HA Networking per the guide but got the error that all the interfaces are on different subnets
2023-12-21 08_33_00-SWvSAN-NODE1 - StarWind web console and 16 more pages - Profile 1 - Microsoft​ E.png
2023-12-21 08_33_00-SWvSAN-NODE1 - StarWind web console and 16 more pages - Profile 1 - Microsoft​ E.png (34.78 KiB) Viewed 15647 times
2023-12-21 08_33_30-SWvSAN-NODE1 - StarWind web console and 16 more pages - Profile 1 - Microsoft​ E.png
2023-12-21 08_33_30-SWvSAN-NODE1 - StarWind web console and 16 more pages - Profile 1 - Microsoft​ E.png (24.54 KiB) Viewed 15647 times
2023-12-21 08_33_56-SWvSAN-NODE1 - StarWind web console and 16 more pages - Profile 1 - Microsoft​ E.png
2023-12-21 08_33_56-SWvSAN-NODE1 - StarWind web console and 16 more pages - Profile 1 - Microsoft​ E.png (7.78 KiB) Viewed 15647 times
yaroslav (staff)
Staff
Posts: 2340
Joined: Mon Nov 18, 2019 11:11 am

Thu Dec 21, 2023 3:47 pm

Please try setting $initMethod="SyncFromFirst" and comment everything with bmp*.
Can you please try selecting only one pair at a time and add another pair later? Thanks!
p.s. if you have access to GUI, you might have access to support@starwind.com
Thanks!
odintech
Posts: 5
Joined: Wed Dec 20, 2023 5:06 pm

Thu Dec 21, 2023 5:07 pm

Tried CreateHA_2.ps1 per your suggestion to attempt just one pair, Still the same 200 invalid partner info error

Code: Select all

PS C:\Windows\system32> C:\Users\Administrator.JH-TEST\Downloads\CreateHA_2.ps1
Request to  172.16.99.31 ( 172.16.99.31 ) : 3261
-
control HAImage -CreateHeader:"" -DeviceHeaderPath:"VSA Storage\mnt\zd0\csv1\masterImg21_HA.swdsk" -Type:"ImageFile_HA" -file
:"imagefile4" -size:"25600" -Priority:"#p0=0;#p1=1" -nodeType:"#p0=1;#p1=1" -PartnerTargetName:"#p1=iqn.2008-08.com.starwinds
oftware:172.16.99.32-partnerha22" -PartnerIP:"#p1=172.16.21.5:sync:3260:1, 172.16.99.32:heartbeat:3260:1,172.16.12.5:heartbea
t:3260:1" -IsAutoSynchEnabled:"1" -AuthChapLogin:"#p1=0b" -AuthChapPassword:"#p1=0b" -AuthMChapName:"#p1=0b" -AuthMChapSecret
:"#p1=0b" -AuthChapType:"#p1=none" -Offset:"0" -CacheMode:"wb" -CacheSizeMB:"128" -Replicator:"#p0=0" -WitnessType:"0" -AluaA
ccessState:"#p0=0;#p1=1"
-
200 Failed: invalid partner info.. 
Set SyncFromFirst and commented out all bmp entries

Code: Select all

param($addr="172.16.99.31", $port=3261, $user="root", $password="starwind",
	$addr2="172.16.99.32", $port2=$port, $user2=$user, $password2=$password,
#common
	$initMethod="SyncFromFirst",
	$size=25600,
	$sectorSize=4096,
	$failover=0,
	#$bmpType=1,
	#$bmpStrategy=0,
#primary node
	$imagePath="VSA Storage\mnt\zd0\csv1",
	$imageName="masterImg21",
	$createImage=$False,
	$storageName="",
	$targetAlias="targetha21",
	$autoSynch=$true,
	$poolName="pool1",
	$syncSessionCount=1,
	$aluaOptimized=$true,
	$cacheMode="wb",
	$cacheSize=128,
	$syncInterface="#p2=172.16.21.5:3260" -f $addr2,
	$hbInterface="#p2=172.16.12.5:3260, 172.16.99.32:3260",
	$createTarget=$true,
	#$bmpFolderPath="",
#secondary node
	$imagePath2="VSA Storage\mnt\zd0\csv1",
	$imageName2="partnerImg22",
	$createImage2=$true,
	$storageName2="",
	$targetAlias2="partnerha22",
	$autoSynch2=$true,
	$poolName2="pool1",
	$syncSessionCount2=1,
	$aluaOptimized2=$false,
	$cacheMode2=$cacheMode,
	$cacheSize2=$cacheSize,
	$syncInterface2="#p1=172.16.21.4:3260" -f $addr,
	$hbInterface2="#p1=172.16.12.4:3260, 172.16.99.31.3260",
	$createTarget2=$true
	#$bmpFolderPath2=""
	)
	
Import-Module StarWindX

try
{
	Enable-SWXLog -level SW_LOG_LEVEL_DEBUG

	$server = New-SWServer -host $addr -port $port -user $user -password $password

	$server.Connect()

	$firstNode = new-Object Node

	$firstNode.HostName = $addr
	$firstNode.HostPort = $port
	$firstNode.Login = $user
	$firstNode.Password = $password
	$firstNode.ImagePath = $imagePath
	$firstNode.ImageName = $imageName
	$firstNode.Size = $size
	$firstNode.CreateImage = $createImage
	$firstNode.StorageName = $storageName
	$firstNode.TargetAlias = $targetAlias
	$firstNode.AutoSynch = $autoSynch
	$firstNode.SyncInterface = $syncInterface
	$firstNode.HBInterface = $hbInterface
	$firstNode.PoolName = $poolName
	$firstNode.SyncSessionCount = $syncSessionCount
	$firstNode.ALUAOptimized = $aluaOptimized
	$firstNode.CacheMode = $cacheMode
	$firstNode.CacheSize = $cacheSize
	$firstNode.FailoverStrategy = $failover
	$firstNode.CreateTarget = $createTarget
	$firstNode.BitmapStoreType = $bmpType
	$firstNode.BitmapStrategy = $bmpStrategy
	$firstNode.BitmapFolderPath = $bmpFolderPath
    
	#
	# device sector size. Possible values: 512 or 4096(May be incompatible with some clients!) bytes. 
	#
	$firstNode.SectorSize = $sectorSize
    
	$secondNode = new-Object Node

	$secondNode.HostName = $addr2
	$secondNode.HostPort = $port2
	$secondNode.Login = $user2
	$secondNode.Password = $password2
	$secondNode.ImagePath = $imagePath2
	$secondNode.ImageName = $imageName2
	$secondNode.CreateImage = $createImage2
	$secondNode.StorageName = $storageName2
	$secondNode.TargetAlias = $targetAlias2
	$secondNode.AutoSynch = $autoSynch2
	$secondNode.SyncInterface = $syncInterface2
	$secondNode.HBInterface = $hbInterface2
	$secondNode.SyncSessionCount = $syncSessionCount2
	$secondNode.ALUAOptimized = $aluaOptimized2
	$secondNode.CacheMode = $cacheMode2
	$secondNode.CacheSize = $cacheSize2
	$secondNode.FailoverStrategy = $failover
	$secondNode.CreateTarget = $createTarget2
	$secondNode.BitmapFolderPath = $bmpFolderPath2
        
	$device = Add-HADevice -server $server -firstNode $firstNode -secondNode $secondNode -initMethod $initMethod
    
	while ($device.SyncStatus -ne [SwHaSyncStatus]::SW_HA_SYNC_STATUS_SYNC)
	{
		$syncPercent = $device.GetPropertyValue("ha_synch_percent")
	        Write-Host "Synchronizing: $($syncPercent)%" -foreground yellow

		Start-Sleep -m 2000

		$device.Refresh()
	}
}
catch
{
	Write-Host $_ -foreground red 
}
finally
{
	$server.Disconnect()
}
yaroslav (staff)
Staff
Posts: 2340
Joined: Mon Nov 18, 2019 11:11 am

Thu Dec 21, 2023 6:11 pm

Hi,

Let us continue working on this case internally.
Merry Christmas and Happy New Year!
odintech
Posts: 5
Joined: Wed Dec 20, 2023 5:06 pm

Thu Dec 21, 2023 8:18 pm

Thanks. Merry Christmas
User avatar
anton (staff)
Site Admin
Posts: 4010
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Tue Feb 27, 2024 10:58 am

Update: POC went well, no issues so far. Closing the thread...
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
User avatar
anton (staff)
Site Admin
Posts: 4010
Joined: Fri Jun 18, 2004 12:03 am
Location: British Virgin Islands
Contact:

Tue Feb 27, 2024 1:17 pm

== thread closed ==
Regards,
Anton Kolomyeytsev

Chief Technology Officer & Chief Architect, StarWind Software

Image
Locked