StarWind vSAN Free..

Software-based VM-centric and flash-friendly VM storage + free version
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Mon Jul 21, 2025 12:06 pm

Hi,

Deploying my first VMware environment, and had some queries.

Received email with License key, instruction, and the OVF link as well, but is there an ISO to install the vSAN Free on Baremetal ?

I also read somewhere (can't find the page now) Free vSAN only allows 2 nodes, are these storage or ESXi nodes ?

Currently I only have 1 storage server, I also want to know if vSAN Free allows to add more Storage Servers to the system.

Thank You
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Mon Jul 21, 2025 12:26 pm

Should have seen this 1st, anyway..

viewtopic.php?f=5&t=4302
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Mon Jul 21, 2025 8:20 pm

Hi,

Welcome to StarWind Forum. I'd suggest trialing the solution so that you can more easily reach out to the tech team and maybe request a demo or tech call. Please note that the free key cannot be applied afterward.
This could be helpful (the thread you are referring to is outdated): https://www.starwindsoftware.com/resour ... al_papers/
Received email with License key, instruction, and the OVF link as well, but is there an ISO to install the vSAN Free on Baremetal ?
It all depends on the use case.
ISO is only meant to be installed on the physical server (i.e., compute and storage separated scenario). For hyperconverged setups, there are two options available: Windows-based installation (Windows-based app, only for a Windows VM or physical host) and OVF (all other hypervisors from the list).
I also read somewhere (can't find the page now) Free vSAN only allows 2 nodes, are these storage or ESXi nodes ?
Not quite. The solution can be deployed as a standalone server, 2-way mirror, or 3-way mirror/2-way mirror +witness. See our help for more info on replication strategies https://www.starwindsoftware.com/help/C ... ation.html
You need 2 or 3 nodes for storage high availability. A single node can still act as an iSCSI or NVMe-oF target (you are always welcome to join our beta).
Currently I only have 1 storage server, I also want to know if vSAN Free allows to add more Storage Servers to the system.
That's just enough to start. You can add more and replicate the existing storage (short iSCSI blip will happen; make sure to schedule downtime for VMs).
Good luck with your project.
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Tue Jul 22, 2025 8:22 am

Thanks yaroslav for all the information,

The outdated link was found pinned in the forum, thanks for the updated links..
ISO is only meant to be installed on the physical server (i.e., compute and storage separated scenario).
In our case we have a separate server to be used for Storage so I'm looking for where to download the ISO from.
Not quite. The solution can be deployed as a standalone server, 2-way mirror, or 3-way mirror/2-way mirror +witness. See our help for more info on replication strategies

You need 2 or 3 nodes for storage high availability. A single node can still act as an iSCSI..
In our case we have 3 ESXi Hosts Cluster, and 1 Storage Server for now (1 to be added later), in this case will StarWind vSAN Free work ?
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Tue Jul 22, 2025 9:28 pm

The outdated link was found pinned in the forum, thanks for the updated links..
The resource library comes first. That's where we keep info, and we tend to update it more often than forum entries.
In our case we have a separate server to be used for Storage so I'm looking for where to download the ISO from.
https://www.starwindsoftware.com/downlo ... s#download select Linux Bare metal
In our case we have 3 ESXi Hosts Cluster, and 1 Storage Server for now (1 to be added later), in this case will StarWind vSAN Free work ?
Yes. Make sure
-not to use cache while StarWind devices are not replicated.
-system with HA meets system requirements https://www.starwindsoftware.com/system-requirements (see the networking part).
Good luck with your project.
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Thu Jul 24, 2025 7:44 am

The resource library comes first. That's where we keep info, and we tend to update it more often than forum entries.
https://www.starwindsoftware.com/downlo ... s#download select Linux Bare metal
Thanks for the link..
Yes. Make sure
-not to use cache while StarWind devices are not replicated.
-system with HA meets system requirements https://www.starwindsoftware.com/system-requirements (see the networking part).
Good luck with your project.
Got it, thanks again yaroslav..
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Thu Jul 24, 2025 8:39 am

Good luck with your project! :)
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Thu Jul 24, 2025 8:29 pm

Hi Again,

Seems I'm unable to create the LUNs with the powershell script, the error is as below but the username password seems to work fine when I login (The code below does not contain the real username / password used)..

Can I know what might be the issue..

The error:

Code: Select all

Connection to  192.168.1.162 ( 192.168.1.162 ) : 3261 has failed
-
login root Password123$
-
104 Username or password you entered is invalid.
Authentication attempts from '192.168.1.175' address are blocked for 5 minute(s)..
Connection has not been initialized
At C:\Users\Administrator\Desktop\a.ps1:123 char:2
+     $server.Disconnect()
+     ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException
Systems are reachable..

Code: Select all

Pinging 192.168.1.162 with 32 bytes of data:
Reply from 192.168.1.162: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.1.162:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Control-C

Pinging 192.168.1.163 with 32 bytes of data:
Reply from 192.168.1.163: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.1.163:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss)
SSH is enabled in StarWind, and Firewall is disabled..

Complete code..

Code: Select all

param($addr="192.168.1.162", $port=3261, $user="root", $password="Password123$",
      $addr2="192.168.1.163", $port2=$port, $user2="root", $password2="Password123$",
#common
      $initMethod="NotSynchronize",
      $size=1048576,
      $sectorSize=512,
      $failover=0,
      $bmpType=1,
      $bmpStrategy=0,
#primary node
      $imagePath="/mnt/sdb1/volume1",
      $imageName="device1",
      $createImage=$true,
      $storageName="",
      $targetAlias="target1",
      $poolName="pool1",
      $syncSessionCount=1,
      $aluaOptimized=$true,
      $cacheMode="none",
      $cacheSize=0,
      $syncInterface="#p2=172.16.20.2:3260,172.16.21.2:3260",
      $hbInterface="#p2=172.16.10.2:3260,192.168.0.2:3260",
      $createTarget=$true,
      $bmpFolderPath="",
#secondary node
      $imagePath2="/mnt/sdb1/volume1",
      $imageName2="device1",
      $createImage2=$true,
      $storageName2="",
      $targetAlias2="target1",
      $poolName2="pool1",
      $syncSessionCount2=1,
      $aluaOptimized2=$false,
      $cacheMode2=$cacheMode,
      $cacheSize2=$cacheSize,
      $syncInterface2="#p1=192.168.1.164:3260,192.168.1.166:3260",
      $hbInterface2="#p1=192.168.1.171:3260,192.168.1.173: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: 4309
Joined: Mon Nov 18, 2019 11:11 am

Fri Jul 25, 2025 4:11 am

viewtopic.php?f=5&t=6852&p=37208&hilit=HINT8#p37208
Welcome to StarWind Forum. The credentials are root/starwind.
Good luck with your project :)
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Fri Jul 25, 2025 1:24 pm

Thanks yaroslav,

I have gone through the script and different links below..

https://www.starwindsoftware.com/resour ... chine-cvm/

viewtopic.php?f=5&t=6852

I couldn't understand the below..

On the page https://www.starwindsoftware.com/resour ... chine-cvm/ it says to go the headers folder but there is no headers folder..

Code: Select all

IMPORTANT: If the script should be executed again with the same parameters, (for example, the first time execution has failed) make sure to do the following for one node at a time before the next attempt to execute the script:
1. Stop StarWind Service:

sudo systemctl stop starwind-virtual-san
2. Go to /opt/starwind/starwind-virtual-san/drive_c/starwind/headers and delete the headers you do not need.
3. Go to the underlying storage specified as $imagePath and delete the header and imagefile there.

Code: Select all

root@vSAN1:~# cd  /opt/starwind/starwind-virtual-san/drive_c/starwind/
root@vSAN1:/opt/starwind/starwind-virtual-san/drive_c/starwind# ls
ConfigUpdater.exe   iSCSITransportLib.dll  logwatcher     sptdintf.dll          SysMan.dll
DiskBridge.dll      libcrypto-3-x64.dll    logwatcher.py  StarWind.cfg          third-party-licenses.txt
events              libiconv-1.14.dll      mkimage.exe    StarWindService.exe   Tools.dll
HAImage.dll         libssl-3-x64.dll       NativeLib.dll  starwind-virtual-san  vcruntime140.dll
hba_rescan_conf.py  libswnwrapper.so       NotifyDB       storage               VersionTracker.dll
hba_rescan.ps1      Localizations          NvmfConf       SWBuild.Number        VirtualDvd.dll
hba_rescan.py       LogLib.dll             PerformanceDB  SwCache.dll           VTL
ImageFile.dll       logs                   RamDisk.dll    symbols               VTL.dll
Also could not understand what HINT4 refers to..

Code: Select all

https://forums.starwindsoftware.com/viewtopic.php?f=5&t=6852&p=37208&hilit=HINT8#p37208

HINT4
/ and \ in imagePath are not the same :)
It now throws an error about an img file which does not exist in the location specified.

Code: Select all

Request to  192.168.1.162 ( 192.168.1.162 ) : 3261
-
control ImageFile -CreateImage:"/mnt/md1/volume1\vsn.img" -Size:"1024" -Flat:"True" -DeferredInit:"True" -Password:"starwind"
-
200 Failed: operation cannot be completed..
For simplicity, not adding the complete code here..

Code: Select all

param($addr="192.168.1.162", $port=3261, $user="root", $password="starwind",
      $addr2="192.168.1.163", $port2=$port, $user2=$user, $password2=$password,
#common
	$initMethod="NotSynchronize",
	$size=1024,
	$sectorSize=512,
	$failover=0,
	$bmpType=1,
	$bmpStrategy=0,
#primary node
	$imagePath="/mnt/md1/volume1",
	$imageName="vsn",
	$createImage=$true,
	$storageName="",
	$targetAlias="vsn",
	$poolName="pool1",
	$syncSessionCount=1,
	$aluaOptimized=$true,
	$cacheMode="none",
	$cacheSize=0,
	$syncInterface="#p2=192.168.1.164:3260,192.168.1.171:3260",
	$hbInterface="#p2=192.168.1.162:3260,192.168.1.162:3260",
	$createTarget=$true,
	$bmpFolderPath="",
#secondary node
	$imagePath2="/mnt/md1/volume1",
	$imageName2="vsn",
	$createImage2=$true,
	$storageName2="",
	$targetAlias2="vsn",
	$poolName2="pool1",
	$syncSessionCount2=1,
	$aluaOptimized2=$false,
	$cacheMode2=$cacheMode,
	$cacheSize2=$cacheSize,
	$syncInterface2="#p1=192.168.1.166:3260,192.168.1.173:3260",
	$hbInterface2="#p1=192.168.1.163:3260,192.168.1.163:3260",
	$createTarget2=$true,
	$bmpFolderPath2=""
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Fri Jul 25, 2025 1:41 pm

Intertestingly the LUNs are created now but synchronizing does not seem to be happening..

https://imgur.com/a/hZTlRBL

Is there a way to force synchronize the 2 nodes ?
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Fri Jul 25, 2025 5:00 pm

Strange. Please delete the targets and /headers contents and try again, but with different slashes.
It looks like it does create the header, but cannot lay out the file.
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Fri Jul 25, 2025 8:33 pm

yaroslav (staff) wrote:
Fri Jul 25, 2025 5:00 pm
Strange. Please delete the targets and /headers contents and try again, but with different slashes.
It looks like it does create the header, but cannot lay out the file.
Hi yaroslav,

Sorry I could not understand what you mean by different slashes..

Yes I can see the headers folder now with the following content..

Code: Select all

root@vSAN1:/opt/starwind/starwind-virtual-san/drive_c/starwind/headers/vsn# ls
vsn_HA.swdsk  vsn.swdsk
While in the powershell script the following keeps on going..

Code: Select all

Synchronizing: 0%
Synchronizing: 0%
Synchronizing: 0%
Synchronizing: 0%
Synchronizing: 0%
Synchronizing: 0%
Synchronizing: 0%
yaroslav (staff)
Staff
Posts: 4309
Joined: Mon Nov 18, 2019 11:11 am

Fri Jul 25, 2025 9:06 pm

Great! Do you see an Img there?
Tell me more about the setup, please. What hypervisor do you use?
As a side note, please try reducing MTU to 1500 on the entire synchronization stack (i.e., inside the VM and hypervisor).
tanjum
Posts: 34
Joined: Mon Jul 21, 2025 12:02 pm

Fri Jul 25, 2025 9:45 pm

Yes I can see the img in there..

Code: Select all

root@vSAN1:/mnt/md0/vSANStrg# ls
starwind-volume-config.json  vsn  vsn_HA.swdsk.bak  vsn.img  vsn.swdsk.bak
This is a test setup in in VMware Workstation (so I can get the script working), and the MTU is 1500..

There are 3 VMs, 1 running Windows system, and 2 StarWind vSAN Nodes..
Post Reply