我在 30 天试用期间测试了我的环境,非常喜欢它,但现在我想让它与免费版本一起工作。我重新开始,并按照 Starwind 的这些演练进行操作使用 StarWind Virtual SAN Free 创建 HA 设备和带有 Hyper-V 群集的 StarWind Virtual SAN 超融合 3 节点场景
我在 3 个节点上有 2 个设备(存储和见证),所有目标都是用 Starwind 的脚本创建的,并且我能够弄清楚它们是同步的。
我遇到的一个问题是,我无法向目标添加多条路径。我可以将两个节点配置为使用 10.0.0.0 地址,但不能使用 10.0.0.128 地址,第三个节点可以使用 10.0.0.128,但不能使用 10.0.0.0
另一个问题是,如果我继续并按照超融合链接,在“多路径配置”下,它会说为 MPIO 配置所有设备,但我的设备没有任何连接??
我在试用时只尝试了一条路径,并且没有出现此类问题,所以我知道某个地方的配置错误,但我似乎找不到它。
我使用的脚本:
- CreateHA(创建设备)
- enumDevicesTargets(确认设备和目标存在)
- haSyncPriority(名字说明了一切)
- SyncHaDeviceAdvanced(检查它们是否同步,如果不同步则需要执行的操作)
我重新安装了 starwind 以查看是否犯了错误,但问题仍然存在。
这是“CreateHA”配置:
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.HostName = "127.0.0.1"
$firstNode.ImagePath = "My computer\S\Storage"
$firstNode.ImageName = "Storage"
$firstNode.Size = 1536000
$firstNode.CreateImage = $true
$firstNode.TargetAlias = "Storage"
$firstNode.AutoSynch = $true
$firstNode.SyncInterface = "#p2=10.0.0.2:3260;#p3=10.0.0.3:3260"
$firstNode.HBInterface = "#p2=10.0.0.130:3260;#p3=10.0.0.131:3260"
$firstNode.PoolName = ""
$firstNode.SyncSessionCount = 1
$firstNode.ALUAOptimized = $true
$firstNode.SectorSize = 4096
$secondNode = new-Object Node
$secondNode.HostName = "192.168.0.42"
$secondNode.HostPort = "3261"
$secondNode.Login = "root"
$secondNode.Password = "starwind"
$secondNode.ImagePath = "My computer\S\Storage"
$secondNode.ImageName = "Storage"
$secondNode.Size = 1536000
$secondNode.CreateImage = $true
$secondNode.TargetAlias = "Storage"
$secondNode.AutoSynch = $true
$secondNode.SyncInterface = "#p1=10.0.0.1:3260;#p3=10.0.0.3:3260"
$secondNode.HBInterface = "#p1=10.0.0.129:3260;#p3=10.0.0.131:3260"
$secondNode.SyncSessionCount = 1
$secondNode.ALUAOptimized = $true
$thirdNode = new-Object Node
$thirdNode.HostName = "192.168.0.43"
$thirdNode.HostPort = "3261"
$thirdNode.Login = "root"
$thirdNode.Password = "starwind"
$thirdNode.ImagePath = "My computer\S\Storage"
$thirdNode.ImageName = "Storage"
$thirdNode.Size = 1536000
$thirdNode.CreateImage = $true
$thirdNode.TargetAlias = "Storage"
$thirdNode.AutoSynch = $true
$thirdNode.SyncInterface = "#p1=10.0.0.1:3260;#p2=10.0.0.2:3260"
$thirdNode.HBInterface = "#p1=10.0.0.129:3260;#p2=10.0.0.130:3260"
$thirdNode.SyncSessionCount = 1
$thirdNode.ALUAOptimized = $true
$device = Add-HADevice -server $server -firstNode $firstNode -secondNode $secondNode -thirdNode $thirdNode -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 $_ -foreground red
}
finally
{
$server.Disconnect()
}
答案1
首先,摆脱存储和同步网络的 NIC 团队。ISCSI 网络利用 MPIO,无需中继、团队、绑定等。此外,不要忘记在“添加角色和功能”向导中启用 MPIO。
假设您想要使用 10.0.0.x 网络进行 iSCSI 通信,您的 ISCSI 启动器配置应如下所示:
以节点1为例
ISCSI 发现门户:
127.0.0.1(启动器 IP - 默认)
10.0.0.130(启动器 IP - 节点 1 和节点 2 之间的 ISCSI 网络的本地 IP)
10.0.0.131(启动器 IP - 节点 1 和节点 3 之间的 ISCSI 网络的本地 IP)
然后您需要连接“目标”选项卡下的每个目标。
本地目标必须通过 127.0.0.1(环回)进行连接。伙伴节点 2 和 3 上的目标必须通过相应的 iSCSI 网络连接。
您可以在他们的网站上找到有关如何连接每个目标的详细指南。
顺便说一句,你提到的指南看起来已经过时了。他们有一个更新的版本:https://www.starwindsoftware.com/resource-library/starwind-virtual-san-hyper-converged-3-nodes-scenario-with-hyper-v-cluster
发现门户并连接所有三个节点上的每个目标后,您应该正确配置 MPIO 路径。只需按照其余指导即可实现此目的。
PS:3 路“主动-主动-主动”复制配置是最复杂的,因此请准备一大杯咖啡,全神贯注并仔细按照指南中的每个步骤进行操作。
答案2
与支持人员沟通后发现问题出在所使用的 Starwind Free 版本上。升级到旧版本后问题解决。最新的 Starwind Free 不再存在此问题(据我所知)。