Virtual SAN free Witness never gets up

Software-based VM-centric and flash-friendly VM storage + free version
Post Reply
john37
Posts: 6
Joined: Mon May 11, 2026 9:05 am

Tue May 12, 2026 10:00 am

Hi all,

I'm trying to setup Virtual SAN free using the SMB witness failover strategy.

I Have a setup of 2 Hyper-V servers. Each server has a CVM appliance. I have used the following script to create the LUN based on the SMB witness failover strategy.

Small sumary:
LAN (management) network = 172.27.112.0/24
SYNC (replication) network = 10.1.1.0/24
ISCSI (data) network = 10.2.2.0/24


param($addr="172.27.112.98", $port=3261, $user="root", $password="starwind",
$addr2="172.27.112.99", $port2=$port, $user2=$user, $password2=$password,
#common
$initMethod="Clear",
$size=1024,
$sectorSize=4096,
$bmpType=1,
$bmpStrategy=0,
$smbWitnessFilePath="\\172.27.112.92\witness\witness.dat",
$smbWitnessUsername="172.27.112.92\witness",
$smbWitnessPassword="********",
#primary node
$imagePath="VSA Storage/mnt/md0/clusterStorage",
$imageName="ClusterStorageImage1",
[bool][ValidateSet($false, $true)]
$createImage=$true,
$storageName="",
$targetAlias="ClusterStorageTarget1",
$poolName="pool1",
$syncSessionCount=1,
[bool][ValidateSet($false, $true)]
$aluaOptimized=$true,
$cacheMode="none",
$cacheSize=0,
$syncInterface="#p2=10.1.1.9:3260" -f $addr2,
$bmpFolderPath="",
[bool][ValidateSet($false, $true)]
$createTarget=$true,
#secondary node
$imagePath2="VSA Storage/mnt/md0/clusterStorage",
$imageName2="ClusterStorageImage1",
[bool][ValidateSet($false, $true)]
$createImage2=$true,
$storageName2="",
$targetAlias2="ClusterStorageTarget1",
$poolName2="pool1",
$syncSessionCount2=1,
[bool][ValidateSet($false, $true)]
$aluaOptimized2=$true,
$cacheMode2=$cacheMode,
$cacheSize2=$cacheSize,
$syncInterface2="#p1=10.1.1.8:3260" -f $addr,
$bmpFolderPath2="",
[bool][ValidateSet($false, $true)]
$createTarget2=$true
)

#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.Login = $user
$firstNode.Password = $password
$firstNode.ImagePath = $imagePath
$firstNode.ImageName = $imageName
$firstNode.Size = $size
$firstNode.CreateImage = $createImage
$firstNode.StorageName = $storageName
$firstNode.TargetAlias = $targetAlias
$firstNode.SyncInterface = $syncInterface
$firstNode.PoolName = $poolName
$firstNode.SyncSessionCount = $syncSessionCount
$firstNode.ALUAOptimized = $aluaOptimized
$firstNode.CacheMode = $cacheMode
$firstNode.CacheSize = $cacheSize
$firstNode.FailoverStrategy = 1
$firstNode.BitmapStoreType = $bmpType
$firstNode.BitmapStrategy = $bmpStrategy
$firstNode.BitmapFolderPath = $bmpFolderPath
$firstNode.CreateTarget = $createTarget
$firstNode.SmbWitnessFilePath = $smbWitnessFilePath
$firstNode.SmbWitnessUsername = $smbWitnessUsername
$firstNode.SmbWitnessPassword = $smbWitnessPassword

#
# 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.SyncInterface = $syncInterface2
$secondNode.SyncSessionCount = $syncSessionCount2
$secondNode.ALUAOptimized = $aluaOptimized2
$secondNode.CacheMode = $cacheMode2
$secondNode.CacheSize = $cacheSize2
$secondNode.FailoverStrategy = 1
$secondNode.BitmapFolderPath = $bmpFolderPath2
$secondNode.CreateTarget = $createTarget2

$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()
}

Unfortunately I see the LUN only shows the status "Limited availability". Also see the following message on both appliances: "The replication partner is not synchronised".

When I look at the SMB witness share I see the file has been created and when opnening the file it has the follwing inside:

reserved=no
owner=
pulse=0


Can anyone help me with this mistery?
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Tue May 12, 2026 11:40 am

To me, it looks like none of the nodes could form a quorum.
The file is totally healthy https://www.starwindsoftware.com/help/C ... tness.html.
Please try
1. Mark the device as synchronized (see viewtopic.php?f=5&t=7379&p=41002&hilit= ... ice#p41002).
2. After the replication is over, try shutting down any node. See if the remaining one stays synchronized.
john37
Posts: 6
Joined: Mon May 11, 2026 9:05 am

Tue May 12, 2026 12:11 pm

Just did the following:

1. Mark HAimage on one appliance as synchronized.
result: Script awnsered back synchronized, and in appliances a saw no change.

2. shutdown the other appliance, not the one I just marked as synchronized.
result: my lun now displays the following: availibility = down, state = online
After that restarted the other appliance again and see availability = limited availability, state = online message in both appliances apear "the replication partner is not synchronised"
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Tue May 12, 2026 12:21 pm

1. Mark HAimage on one appliance as synchronized.
result: Script awnsered back synchronized, and in appliances a saw no change.
You need to check LUNs view. Please install Windows-based Management Console and see the status there.
2. shutdown the other appliance, not the one I just marked as synchronized.
result: my lun now displays the following: availibility = down, state = online
After that restarted the other appliance again and see availability = limited availability, state = online message in both appliances apear "the replication partner is not synchronised"
It looks like one of them cannot form the majority with the witness.

It looks like the environment is Windows-based. Try installing it as a Windows-based service. I am not sure if CVM works well with SMB file share witness.
john37
Posts: 6
Joined: Mon May 11, 2026 9:05 am

Tue May 12, 2026 12:33 pm

In starwind Management console (installed on Windows) I can see the LUN on both appliances with the status synchronized.
So I should not use the CVM appliances with smb witness?

Don't want to use the windows service based starwind vsan option, because I understand support of it will end and it is recomended to go to the CVM appliance.
Also would like to use the CVM (linux based) software raid option instead of windows software raid.
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Tue May 12, 2026 2:17 pm

Thanks for additional info.
In starwind Management console (installed on Windows) I can see the LUN on both appliances with the status synchronized.
This means it is synchronized.
So I should not use the CVM appliances with smb witness?
Yes, please.
Don't want to use the windows service based starwind vsan option, because I understand support of it will end and it is recomended to go to the CVM appliance.
I am not aware of it. We really don't have such plans.
Also would like to use the CVM (linux based) software raid option instead of Windows software raid.
Is it mirror or parity?
john37
Posts: 6
Joined: Mon May 11, 2026 9:05 am

Tue May 12, 2026 2:43 pm

So it is a gui glitch in the CVM apliance?

Is SMB witness share not supported in the CVM appliance underneath vsan free?

it is parity, not mirror.
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Tue May 12, 2026 2:47 pm

it is parity, not mirror.
Got it. That's tough. Parity Storage spaces may not be fun.
So it is a gui glitch in the CVM apliance?
Is SMB witness share not supported in the CVM appliance underneath vsan free?
Yes, it looks so. I am not sure if we tested SMB share witness for CVM, to be honest.
john37
Posts: 6
Joined: Mon May 11, 2026 9:05 am

Wed May 13, 2026 7:28 am

Can you check for me if that case was tested?
Think that I will change and deploy the heartbeat option for now.

Will this function (SMB witness share) using CVM become available and tested in the future?
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Wed May 13, 2026 8:02 am

SMB witness is not supported for CVM.
It is on our roadmap; however, there's no date for its release.
I'd suggest using the traditional node majority (i.e., the Witness node) or Windows-based installation.
john37
Posts: 6
Joined: Mon May 11, 2026 9:05 am

Wed May 13, 2026 8:13 am

ok, thank you
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Wed May 13, 2026 8:45 am

Good luck with your project!
Post Reply