Управление репликой хранилища в VMM

Важно!

Поддержка этой версии Virtual Machine Manager (VMM) завершена. Мы рекомендуем выполнить обновление до VMM 2022.

Реплика хранилища появилась в Windows Server 2016. Он обеспечивает не зависящей от хранилища, блочного уровня синхронную репликацию между кластерами или серверами для обеспечения готовности к авариям и восстановления, а также растяжения отказоустойчивого кластера между сайтами для обеспечения высокой доступности. Синхронная репликация позволяет зеркально отображать данные на физических сайтах с отказоустойчивыми томами, что полностью предотвращает потерю данных на уровне файловой системы. Асинхронная репликация позволяет использовать физические расположения за пределами города, но при этом вероятна потеря данных.

Узнайте больше и ознакомьтесь с часто задаваемыми вопросами.

В этой статье объясняется, как реплика хранилища интегрируется с System Center Virtual Machine Manager (VMM), а также как настроить реплику хранилища с помощью PowerShell для репликации хранилища в структуре VMM.

Реплика хранилища в VMM

Вы можете использовать реплику хранилища для репликации данных файлов или данных кластера Hyper-V. Использование реплики хранилища в VMM обеспечивает множество бизнес-преимуществ:

  • Исключает затраты и сложности, связанные с решениями синхронной репликации, такими как SAN.
  • Сводит к минимуму время простоя и потерю данных. Он предоставляет RPO, равный 0 (ноль потери данных). RTO (недоступность данных) имеет место только при сбое основного сайта и запуске дополнительного сайта.
  • Не требует идентичности оборудования исходного и целевого хранилища.

Прежде чем начать

  • VMM должен работать в Windows Server 2016 или более поздней версии Datacenter Edition.
  • Hyper-V должен работать в Windows Server 2016 или более поздней версии Datacenter, Server Core или Nano.
  • Поддерживается только синхронная репликация. Асинхронная репликация не поддерживается.
  • Вам потребуется два набора хранилища — хранилище томов или хранилище файлов. Исходные и целевые расположения должны иметь хранилище одного и того же типа (файлы или тома), но фактическое хранилище может быть смешанным. Например, у вас может быть сеть SAN Fibre Channel на одном конце и прямые пространства (в гиперконвергентном или дезагрегированном режиме) на другом.
  • Каждый набор хранилища должен быть доступен в каждом кластере. Хранилище кластеров не может быть общим.
  • Исходные тома и тома назначения (включая тома журналов) должны иметь одинаковый размер и размер блоков. Это связано с тем, что в реплике хранилища используется блочная репликация.
  • Вам потребуется по крайней мере одно подключение по 1 Гбит/с на каждом сервере хранилища, предпочтительно 10 GbE, iWARP или InfiniBand.
  • Для каждого файлового сервера или узла кластера требуются правила брандмауэра, разрешающие двунаправленный трафик ICMP, SMB (порт 445, плюс 5445 для SMB Direct) и WS-MAN (порт 5985).
  • Вам необходимо быть членом группы "Администраторы" на каждом узле кластера.
  • В настоящее время реплику хранилища можно настраивать только с использованием Windows PowerShell.
  • Исходным и целевым хранилищем должен управлять один и тот же сервер VMM.
  • Интеграция VMM со службой Azure Site Recovery не поддерживается.
  • Настройка порядка записи и группы согласованности не поддерживаются.

Шаги по развертыванию

  1. Определение хранилища: определите исходное и целевое хранилища, которые нужно использовать.

  2. Обнаружение и классификация: если ваше хранилище не входит в структуру VMM, его необходимо обнаружить с помощью VMM. Исходное и целевое хранилище должны управляться на одном сервере VMM. После обнаружения создайте пул носителей и классификацию хранилища для него. Подробнее.

  3. Создание пары: создайте пару исходного и конечного массивов хранения данных.

  4. Подготовка. После связывания хранилища необходимо подготовить идентичные тома данных и журналов из исходного и целевого пулов носителей, созданных в соответствующих массивах хранилища. Кроме подготовки подлежащего репликации тома для данных необходимо также подготовить том для журналов транзакций репликации. При обновлении данных в исходном хранилище обновляется журнал транзакций и выполняется синхронизация разностных изменений с целевым хранилищем (используется синхронная репликация).

  5. Создание групп репликации. После того как тома будут созданы, создайте группы репликации. Группы репликации — это логические группы, содержащие несколько томов. Группы репликации должны быть идентичными и содержать тома данных и журналов для исходного и целевого сайтов соответственно.

  6. Включение репликации: теперь можно включить репликацию между исходной и целевой группами репликации.

  7. Обновление. Чтобы завершить создание групп репликации и запустить начальную репликацию данных, необходимо обновить основного и дополнительного поставщиков хранилища. Данные реплицируются в целевое хранилище.

  8. Проверка состояния: теперь можно проверить состояние основной группы репликации. Она должна находиться в состоянии репликации.

  9. Добавление виртуальных машин. Если разностная репликация запущена и запущена, можно добавить виртуальные машины, использующие хранилище, содержащееся в группе репликации. При добавлении виртуальных машин они будут обнаружены и начнут реплицироваться автоматически.

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

  11. Запуск восстановления размещения: после завершения отработки отказа и запуска виртуальных машин вы сможете восстановить размещение, если потребуется. Убедитесь в следующем:

    • Если вы выполняете внеплановую отработку отказа, а исходное расположение недоступно, вы запустите отработку отказа для восстановления размещения из дополнительного расположения в основное расположение, а затем создадите виртуальную машину в основном расположении.
    • Если вы запустили плановую отработку отказа, а исходная виртуальная машина по-прежнему доступна, остановите репликацию, удалите исходную виртуальную машину, создайте виртуальную машину в дополнительном размещении и перезапустите репликацию. Затем на первичном сайте можно создать виртуальную машину с теми же параметрами, что и исходная виртуальная машина.

Извлечение объектов PowerShell

  1. Прежде чем начать, получите имя объектов PowerShell, которые вы хотите использовать.

  2. Получите имя основного массива хранилища и назначьте его переменной.

        $PriArray = Get-SCStorageArray - Name $PriArrayName
    
  3. Получите имя вторичного массива хранения и назначьте его переменной.

        RecArray = Get-SCStorageArray - Name $RecArrayName
    
  4. Получите имя основного пула носителей и назначьте его переменной.

        $ $ PriPoolName $RecPool = Get-SCStoragePool -Name $
    
  5. Получите имя дополнительного пула носителей и назначьте его переменной.

        $ $PriPoolName $RecPool = Get-SCStoragePool -Name $
    

Создание пары массивов хранения данных

Создайте пару основного и дополнительного массивов хранения данных, используя переменные как имена массивов.

Примечание

Имя массива должно совпадать с именем кластера.

      Set-SCStorageArray -StorageArray $PriArray -PeerStorageArrayName $RecArray.name

Если вы создали кластер за пределами VMM и вам нужно переименовать имя массива в соответствии с именем кластера, используйте:

      Get-SCStorageArray -Name "existing-name" | Set-SCStorageArray -Name "new-name"

Подготовка LUN и создание групп хранения

На основе пула носителей подготовьте LUN для данных и журнала. Затем создайте группы репликации.

  1. Подготовьте и создайте источник.

        Set-SCStorageArray -StorageArray $PriArray -PeerStorageArrayName $RecArray.name
    
        $PrimaryVol = New-SCStorageVolume -StorageArray $PriArray -StoragePool $PriPool -Name PrimaryVol -SizeInBytes $VolSize -RunAsynchronously -PhysicalDiskRedundancy "1" -FileSystem "CSVFS_NTFS" -DedupMode "Disabled"
    
        $PrimaryLogVol = New-SCStorageVolume -StorageArray $PriArray -StoragePool $PriPool -Name PrimaryLogVol -SizeInBytes $LogVolSize -GuidPartitionTable -RunAsynchronously -FileSystem "NTFS"
    
        $PriRG = New-SCReplicationGroup -Name PriRG -StorageVolume $PrimaryVol -LogStorageVolume $PrimaryLogVol
    
  2. Подготовьте и создайте назначение.

        $RecoveryVol = New-SCStorageVolume -StorageArray $RecArray -StoragePool $RecPool -Name RecoveryVol -SizeInBytes $VolSize -RunAsynchronously -PhysicalDiskRedundancy "1" -FileSystem "CSVFS_NTFS" -DedupMode "Disabled"
    
        $RecoveryLogVol = New-SCStorageVolume -StorageArray $RecArray -StoragePool $RecPool -Name RecoveryLogVol -SizeInBytes $LogVolSize -GuidPartitionTable -RunAsynchronously -FileSystem "NTFS"
    
        $RecRG = New-SCReplicationGroup -Name RecRG -CreateOnArray -ProtectionMode Synchronous -StorageVolume $RecoveryVol -LogStorageVolume $RecoveryLogVol
    

Включение репликации

Теперь включите синхронную репликацию между исходной и целевой группами репликации.

    Set-SCReplicationGroup -ReplicationGroup $PriRG -Operation EnableProtection -TargetReplicationGroup $RecRG -EnableProtectionMode Synchronous

Обновление поставщиков хранилищ

  1. Откройте консоль VMM.
  2. Выберите Поставщики ресурсов> структуры. Щелкните поставщик правой кнопкой мыши и выберите пункт Обновить.

Проверка состояния репликации

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

    Get replication status Get-SCReplicationGroup | where {($_.Name.EndsWith("PriRG")) -or ($_.Name.EndsWith("RecRG"))}  | fl Name, IsPrimary, ReplicationState, ReplicationHealth

Создание виртуальной машины

Создайте виртуальную машину, используя LUN в исходной группе репликации. Кроме того, можно создать виртуальную машину в консоли VMM.

    New-SCVirtualMachine -Name "DemoVM" -VMHost <HostName> -Path $PrimaryVol -VMTemplate <VMTemplate>

Запуск отработки отказа

Выполните отработку отказа.

    Set-SCReplicationGroup -ReplicationGroup $PriRG -Operation PrepareForFailover

    Set-SCReplicationGroup -ReplicationGroup SRecRG -Operation Failover

Запуск восстановления размещения

Перед восстановлением размещения в консоли VMM удалите исходные виртуальные машины, если они по-прежнему доступны. Восстановить размещение на ту же виртуальную машину нельзя.

Теперь запустите восстановление размещения:

    Set-SCReplicationGroup -ReplicationGroup $PriRG -Operation ReverseRoles -EnableProtectionMode Synchronous -TargetReplicationGroup $RecRG

После восстановления размещения можно создать виртуальные машины на исходном сайте с помощью файлов VHD/конфигурации для восстановления размещения.

Остановка репликации

Если вы хотите остановить репликацию, необходимо выполнить этот командлет в источнике и назначении.

    Set-SCReplicationGroup -ReplicationGroup $RecRG -Operation TearDown  Tear down need to be done on both RGs

Подробнее