Page 1 of 1

Create HA via Powershell error

Posted: Thu Jun 29, 2017 3:38 pm
by mpastore
Hello,

I'm new to use the Starwind application and I'm trying to create an HA setup using the sample powershell script called "CreateHA(two nodes).ps1". After editing the proper values, I'm getting the error "Exception No coercion operator is defined between types 'System.String' and 'System.Int32'". I've tried many different things, but can't get past this error. Here is the copy of the script. Any idea what might be causing this?

Import-Module StarWindX

try
{
$server = New-SWServer -host 127.0.0.1 -port 3261 -user root -password starwind

$server.Connect()

$firstNode = new-Object Node

$firstNode.ImagePath = "My computer\C\Starwind"
$firstNode.ImageName = "imagefile1"
$firstNode.Size = 1024
$firstNode.CreateImage = $true
$firstNode.TargetAlias = "targetha1"
$firstNode.AutoSynch = $true
$firstNode.SyncInterface = "#p2=10.120.120.69:3260"
$firstNode.HBInterface = "#p2=10.120.120.69:3260"
$firstNode.CacheSize = 64
$firstNode.CacheMode = "wb"
$firstNode.PoolName = "pool1"
$firstNode.SyncSessionCount = 1
$firstNode.ALUAOptimized = $true

#
# device sector size. Possible values: 512 or 4096(May be incompatible with some clients!) bytes.
#
$firstNode.SectorSize = 512

#
# 'SerialID' should be between 16 and 31 symbols. If it not specified StarWind Service will generate it.
# Note: Second node always has the same serial ID. You do not need to specify it for second node
#
#$firstNode.SerialID = "050176c0b535403ba3ce02102e33eab"

$secondNode = new-Object Node

$secondNode.HostName = "10.120.120.69"
$secondNode.HostPort = "3261"
$secondNode.Login = "root"
$secondNode.Password = "starwind"
$secondNode.ImagePath = "My computer\C\Starwind"
$secondNode.ImageName = "partnerImg1"
$secondNode.Size = 256
$secondNode.CreateImage = $true
$secondNode.TargetAlias = "partnerha1"
$secondNode.AutoSynch = $true
$secondNode.SyncInterface = "#p1=10.120.120.224:3260"
$secondNode.HBInterface = "#p1=10.120.120.224:3260"
$secondNode.ALUAOptimized = $true

$device = Add-HADevice -server $server -firstNode $firstNode -secondNode $secondNode -initMethod "Clear"

$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 "Exception $($_.Exception.Message)" -foreground red
}

$server.Disconnect()

Re: Create HA via Powershell error

Posted: Fri Jun 30, 2017 8:40 pm
by tig_jeff
Are you trying to run this on one of the two system that will be in the HA volume?

I've run into an error similar to this.
The fix was to install this onto a 3rd system for initial configuration.

Re: Create HA via Powershell error

Posted: Mon Jul 03, 2017 2:14 pm
by mpastore
Thanks, just spun up a new VM, installed the software and kept the same settings, and reran the script which produced the same error. When you ran into this same error and introduced a 3rd node, did you run the 3 node script or ran the same 2 node one?

Re: Create HA via Powershell error

Posted: Mon Jul 03, 2017 2:46 pm
by mpastore
Looks like I found some more info. I hope I'm not going down the rabbit hole, but when I enter the code line by line into powershell and execute, I get a little better error message. Looks like it's having issues with this line in the HA PS module: $firstImage.AppendParam("Type", $firstNode.StorageType). If I look at the value of $firstNode.StorageType, it's '0'. Maybe I need to add a value for this variable?

No coercion operator is defined between types 'System.String' and 'System.Int32'.
At C:\windows\system32\windowspowershell\v1.0\Modules\StarWindX\HA.ps1:73 char:4
+ $firstImage.AppendParam("Type", $firstNode.StorageType)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException

No coercion operator is defined between types 'System.String' and 'System.Int32'.
At C:\windows\system32\windowspowershell\v1.0\Modules\StarWindX\HA.ps1:141 char:4
+ $secondImage.AppendParam("Type", $secondNode.StorageType)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], InvalidOperationException
+ FullyQualifiedErrorId : System.InvalidOperationException

Error:
200 Synchronization cannot be started because the nodes are not ready! Try to synchronize the nodes manually.
Pending.
At C:\windows\system32\windowspowershell\v1.0\Modules\StarWindX\HA.ps1:236 char:9
+ $server.CreateDevice($firstNode.ImagePath, $firstNode.ImageNa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMException

Re: Create HA via Powershell error

Posted: Mon Jul 03, 2017 7:05 pm
by Ivan (staff)
Hello mpastore,
Thanks for your interest in StarWind solution.
Could you try to create simple ImageFile via powershell and share with us the results?
Also, try to change size of partner from 256 to 1024.

Re: Create HA via Powershell error

Posted: Wed Jul 05, 2017 12:36 pm
by mpastore
Thanks for the reply. I was able to create an image fine and without issue with PS, but unfortunately changing the partner size to 1024 didn't make a difference in the "CreateHA" script. Do you happen to have the steps to create a HA setup manually through the GUI? If not, I'm not sure what else I should be checking for the PS error?

Re: Create HA via Powershell error

Posted: Wed Jul 05, 2017 4:34 pm
by Ivan (staff)
Hello mpastore,
Could you please check the IPs on your script?
$firstNode.SyncInterface = "#p2=10.120.120.69:3260"
$firstNode.HBInterface = "#p2=10.120.120.69:3260"
#p2 - should be IP from SECOND node
$secondNode.SyncInterface = "#p1=10.120.120.224:3260"
$secondNode.HBInterface = "#p1=10.120.120.224:3260"
#p1 - should be IP from FIRST node
Also, make sure you have "StarWind" folder in your path: "My computer\C\Starwind"

If your GUI still available, you can create an HA storage via StarWind Management console. You can read about it in your guide by following next link: https://www.starwindsoftware.com/starwi ... -v-cluster