AutoSynch Undefined in HA PowerShell Script

Software-based VM-centric and flash-friendly VM storage + free version
Post Reply
Raymond
Posts: 1
Joined: Sat Nov 15, 2025 10:27 am

Sat Nov 15, 2025 11:25 am

Hi everyone,

I followed the sample PowerShell script from the StarWind Virtual SAN Configuration Guide for VMware vSphere
(link available here: https://www.starwindsoftware.com/resour ... shell-cli/ )
to create a HA LUN in my lab environment.

After the LUN was created, I noticed that autoSynch and autoSynch2 were never defined in the sample script.
Both nodes therefore receive:

$Node.AutoSynch = $null

My questions:

1. Does setting AutoSynch = $null effectively disable automatic synchronization?

2. Is the intended value supposed to be $true?

3. Can the AutoSynch setting be changed on an existing HA device, or must the LUN be recreated?

Any clarification or guidance would be greatly appreciated.

Below is my script adapted for my environment:

Code: Select all

param($addr="192.168.129.84", $port=3261, $user="root", $password="starwind",
      $addr2="192.168.129.85", $port2=$port, $user2=$user, $password2=$password,
#common
      $initMethod="NotSynchronize",
      $size=1048576,
      $sectorSize=512,
      $failover=0,
      $bmpType=1,
      $bmpStrategy=0,
#primary node
      $imagePath="/mnt/md127",
      $imageName="device1",
      $createImage=$true,
      $storageName="",
      $targetAlias="target1",
      $poolName="pool1",
      $syncSessionCount=1,
      $aluaOptimized=$true,
      $cacheMode="none",
      $cacheSize=0,
      $syncInterface="#p2=192.168.21.11:3260",
      $hbInterface="#p2=192.168.20.11:3260",
      $createTarget=$true,
      $bmpFolderPath="",
#secondary node
      $imagePath2="/mnt/md127",
      $imageName2="device1",
      $createImage2=$true,
      $storageName2="",
      $targetAlias2="target1",
      $poolName2="pool1",
      $syncSessionCount2=1,
      $aluaOptimized2=$false,
      $cacheMode2=$cacheMode,
      $cacheSize2=$cacheSize,
      $syncInterface2="#p1=192.168.21.10:3260",
      $hbInterface2="#p1=192.168.20.10: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()
}
Thanks in advance!
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Sat Nov 15, 2025 12:05 pm

Welcome to StarWind Forum!
I think this would be helpful.
viewtopic.php?f=5&t=6852&p=37208&hilit=HINT8#p37208.
If you plan the system for POC or production use, please make sure that it meets system requirements https://www.starwindsoftware.com/system-requirements

Good luck with your project.
Post Reply