I started to use starwind vsan in a 2-Node HA. First of all everything seems fine I deployed the first vms and it was looking good but then i an into problems.
When the cluster is in synchronized state I could not storage VMotion a VM to the starwind datastore.
In the logfile I got the following message:
4/14 15:13:57.227060 182c HA: CDistributedCriticalSection::PushCommandFromSharer: (CSid = 0xCCC5) sharerID = 0xD1, cmdID = 1, result = BUSY (section is busy now).
4/14 15:13:57.227330 11ac HA: CDistributedCriticalSection::EnterOnTheDistributeSharersSide: (CSid = 0xCCC5) ENTER command on dist sharer(Id = 0xD1) can't be complete. Sharer return BUSY.
4/14 15:13:57.227381 11ac HA: CDistributedCriticalSection::Enter: (CSid = 0xCCC5) retry #1 after sleep 189 ms...
But on the other hand I have no problem to deploy a VM from a template to the starwind datastore.
The next problem was when I tried to do some stability tests and shutted down one node. After the Host is coming back I had to start the sync manually with the HASyncDevice script.
Any suggestions what happens wrong?
For installation I used the CreateHA_2.ps1 script:
Code: Select all
param($addr="10.x.31.10", $port=3261, $user="root", $password="starwind",
$addr2="10.x.31.11", $port2=$port, $user2=$user, $password2=$password,
#common
$initMethod="Clear",
$size=10485760,
$sectorSize=512,
$failover=0,
#primary node
$imagePath="My computer\E\StoragePool",
$imageName="masterImg21",
$createImage=$true,
$storageName="",
$targetAlias="targetha21",
$autoSynch=$true,
$poolName="pool1",
$syncSessionCount=1,
$aluaOptimized=$true,
$cacheMode="none",
$cacheSize=0,
$syncInterface="#p2=10.x.32.11:3260" -f $addr2,
$hbInterface="#p2=10.x.31.11:3260" -f $addr2,
$createTarget=$true,
#secondary node
$imagePath2="My computer\E\StoragePool",
$imageName2="partnerImg22",
$createImage2=$true,
$storageName2="",
$targetAlias2="partnerha22",
$autoSynch2=$true,
$poolName2="pool1",
$syncSessionCount2=1,
$aluaOptimized2=$true,
$cacheMode2=$cacheMode,
$cacheSize2=$cacheSize,
$syncInterface2="#p1=10.x.32.10:3260" -f $addr,
$hbInterface2="#p1=10.x.31.10:3260" -f $addr,
$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.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
#
# 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
$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()
}