Как настроить StarWind Virtual SAN Free

Как настроить StarWind Virtual SAN Free

Я тестировал свою среду в течение 30-дневного пробного периода и она мне очень понравилась, но теперь я хочу, чтобы она работала с бесплатной версией. Я начал заново и следовал этим пошаговым инструкциям от StarwindСоздание устройства HA с помощью StarWind Virtual SAN FreeиStarWind Virtual SAN Hyper-Converged 3 Nodes Сценарий с кластером Hyper-V

У меня есть 2 устройства (хранилище и свидетель) на 3 узлах, все мои цели были созданы с помощью скриптов Starwind, и мне удалось выяснить, что они синхронизированы.

Одна из моих проблем заключается в том, что я не могу добавить более одного пути к цели. Я могу настроить два своих узла на использование адресов 10.0.0.0, но не адресов 10.0.0.128, а третий узел может использовать 10.0.0.128, но не 10.0.0.0

Другая проблема заключается в том, что если я продолжу и перейду по гиперконвергентной ссылке, в разделе «Multipath Configuration» будет предложено настроить все устройства для 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-адрес инициатора — локальный IP-адрес сети ISCSI между узлом Node1 и узлом Node2)

10.0.0.131 (IP-адрес инициатора — локальный IP-адрес сети ISCSI между узлом Node1 и узлом Node3)

Затем вам нужно будет подключить каждую цель на вкладке «Цели».

Локальные цели должны быть подключены через 127.0.0.1 (loopback). Цели на партнерских узлах 2 и 3 должны быть подключены через соответствующие сети iSCSI.

Подробное руководство по подключению каждой цели можно найти на их веб-сайте.

Кстати, руководство, которое вы упомянули, похоже, устарело. У них есть более новое:https://www.starwindsoftware.com/resource-library/starwind-virtual-san-hyper-converged-3-nodes-scenario-with-hyper-v-cluster

После обнаружения порталов и подключения каждой цели на всех трех узлах, вы должны правильно настроить пути MPIO. Просто следуйте остальной части руководства, чтобы добиться этого.

PS: Трехсторонняя конфигурация репликации «активный-активный-активный» является самой сложной, поэтому приготовьте большую кружку кофе, будьте максимально внимательны и тщательно следуйте каждому шагу в их руководстве.

решение2

После обращения в службу поддержки выяснилось, что проблема была в используемой версии Starwind Free. После перехода на более старую версию проблема была решена. В новейшей Starwind Free этой проблемы больше нет (насколько мне известно).

Связанный контент