Межкластерная репликация хранилища

Область применения: Azure Stack HCI, Windows Server 2022, Windows Server 2019, Windows Server 2016

служба хранилища реплика может реплика te тома между кластерами, включая реплика реплику кластеров с помощью Локальные дисковые пространства. Применяются те же управление и настройка, что и для межсерверной репликации.

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

Внимание

В этом тесте для примера используются четыре сервера. Вы можете использовать любое количество серверов, поддерживаемых корпорацией Майкрософт в каждом кластере, которое в настоящее время составляет 8 для кластера Локальные дисковые пространства и 64 для общего кластера хранилища.

В этом руководстве не рассматривается настройка локальных дисковых пространств. Сведения о настройке Локальные дисковые пространства см. в Локальные дисковые пространства обзоре.

В этом пошаговом руководстве в качестве примера используется следующая среда:

  • Два сервера-члены с именем SR-SRV01 и SR-SRV02, которые позже формируются в кластер с именем SR-SRVCLUSA.

  • Два сервера-члены с именем SR-SRV03 и SR-SRV04, которые позже формируются в кластер с именем SR-SRVCLUSB.

  • Два логических расположения, которые представляют два разных центра обработки данных: Redmond и Bellevue.

Схема, показывающая пример среды с кластером на сайте в Редмонде, который реплицируется с кластером на сайте в Белвью

РИС. 1. Репликация кластера в кластер

Необходимые компоненты

  • Лес доменных служб Active Directory (не обязательно под управлением Windows Server 2016).
  • 4-128 серверов (два кластера 2-64 серверов) под управлением Windows Server 2019 или Windows Server 2016, Datacenter Edition. Если вы работаете под управлением Windows Server 2019, вместо этого можно использовать выпуск Standard если вы ОК реплика только один том размером до 2 ТБ.
  • Два набора хранилища с использованием SAS JBOD, SAN канала fibre channel, общего VHDX, Локальные дисковые пространства или целевого объекта iSCSI. Хранилище должно включать как жесткие диски, так и твердотельные накопители. Каждый набор хранилищ должен быть доступен только одному из этих кластеров без общего доступа между кластерами.
  • Каждый набор хранилищ должен допускать создание по меньшей мере двух виртуальных дисков: один для реплицируемых данных и один для журналов. На всех дисках данных в физическом хранилище необходимо использовать одинаковый размер секторов. На всех дисках с журналами в физическом хранилище необходимо использовать одинаковый размер секторов.
  • На каждом сервере должно быть создано по меньшей мере одно подключение Ethernet/TCP для синхронной репликации, но желательно использовать RDMA.
  • Правила всех задействованных брандмауэров и маршрутизаторов должны разрешать двунаправленный трафик ICMP, SMB (порт 445, а также 5445 для SMB Direct) и WS-MAN (порт 5985) между всеми узлами.
  • Сеть между серверами должна иметь достаточную пропускную способность для ваших рабочих нагрузок ввода-вывода, а средняя задержка приема-передачи должна составлять 5 мс для синхронной репликации. Для асинхронной репликации рекомендации по задержке приема и передачи отсутствуют.
  • Реплицируемое хранилище не может находиться на диске с папкой операционной системы Windows.
  • Существуют важные рекомендации и ограничения для Локальные дисковые пространства реплика tion - ознакомьтесь с подробными сведениями ниже.

Многие из этих требований можно определить с помощью командлета Test-SRTopology. Это средство будет доступно, если установить реплику хранилища или средства управления репликой хранилища хотя бы на один сервер. Настраивать реплику хранилища не нужно. Для использования инструмента достаточно только установить командлет. Дополнительная информация приведена ниже.

Шаг 1. Подготовка операционной системы, функций, ролей, хранилища и сети

  1. Установите Windows Server на всех четырех узлах сервера с типом установки Windows Server (рабочий стол).

  2. Добавьте сведения о сети и присоедините узлы к домену, а затем перезапустите их.

    Внимание

    С этого момента вход в систему всегда нужно выполнять от имени пользователя домена, входящего в группу встроенной учетной записи администратора на всех серверах. Не забывайте повысить полномочия командных строк Windows PowerShell и CMD, запуская их через графический интерфейс на компьютере с ОС Windows 10.

  3. Подключите первый набор массивов JBOD, целей iSCSI, SAN на основе Fibre Channel и (или) хранилища на локальном жестком диске (DAS) к серверу в расположении Redmond.

  4. Подключите второй набор хранилищ к серверу в расположении Bellevue.

  5. При необходимости установите на всех четырех узлах последнюю версию хранилища поставщика и встроенного ПО и драйверов, а также последние версии драйверов адаптера шины поставщика, встроенного ПО BIOS/UEFI поставщика, драйверов сети поставщика и драйверов набора микросхем материнской платы. Перезапустите узлы при необходимости.

    Примечание.

    Для настройки общих хранилищ и сетевого оборудования обратитесь к документации поставщика оборудования.

  6. Убедитесь, что для параметров BIOS или UEFI настроена высокая производительность, например отключено C-состояние, установлена скорость QPI, включена архитектура NUMA и установлена максимально возможная частота памяти. Убедитесь, что для управления питанием в Windows Server выбрана схема высокой производительности. При необходимости перезагрузите компьютер.

  7. Настройте роли следующим образом.

    • Графический метод

      1. Запустите ServerManager.exe и создайте группу серверов, добавив в нее все узлы серверов.

      2. Установите роли и компоненты файлового сервера и реплики хранилища на всех узлах и перезапустите их.

    • Метод Windows PowerShell

      На сервере SR-SRV04 или на компьютере удаленного управления выполните следующую команду в консоли Windows PowerShell, которая установит все необходимые компоненты и роли для растянутого кластера на четырех узлах и перезапустит их:

      $Servers = 'SR-SRV01','SR-SRV02','SR-SRV03','SR-SRV04'
      
      $Servers | ForEach { Install-WindowsFeature -ComputerName $_ -Name Storage-Replica,Failover-Clustering,FS-FileServer -IncludeManagementTools -restart }
      

      Дополнительные сведения об этих действиях см. в статье Установка и удаление ролей, служб ролей и компонентов.

  8. Настройте хранилище следующим образом:

    Внимание

    • Необходимо создать два тома на каждой полке: один для данных и один для журналов.
    • Диски журналов и данных следует инициализировать как GPT, а не MBR.
    • Два тома данных должны иметь одинаковый размер.
    • Два тома журналов должны иметь одинаковый размер.
    • Все реплицируемые диски данных должны иметь одинаковый размер сектора.
    • Все диски журналов должны иметь одинаковый размер сектора.
    • Тома журнала следует располагать на твердотельных накопителях. Корпорация Майкрософт рекомендует быстрее хранить журналы, чем хранилище данных. Тома журнала никогда не должны использоваться для других рабочих нагрузок.
    • В качестве дисков данных можно использовать жесткие диски, твердотельные накопители или их многоуровневое сочетание. Диски можно организовать как зеркальные массивы, массивы с контролем четности, RAID 1 или 10, RAID 5 или RAID 50.
    • По умолчанию том журнала должен быть не менее 8 ГБ и может быть больше или меньше на основе требований к журналам.
    • При использовании Локальные дисковые пространства (Локальные дисковые пространства) с кэшем NVME или SSD при настройке служба хранилища реплики реплика между реплика Локальные дисковые пространства кластерах. Изменение задержки пропорционально выше, чем при использовании NVME и SSD в конфигурации производительности и емкости, а также не уровня HDD и уровня емкости.

    Эта проблема возникает из-за ограничений архитектуры в механизме журнала SR в сочетании с крайне низкой задержкой NVME по сравнению с более медленным носителем. При использовании кэша Локальные дисковые пространства Локальные дисковые пространства все журналы SR, а также все последние операции ввода-вывода в секунду приложений, будут выполняться в кэше и никогда не на уровнях производительности или емкости. Это означает, что все действия SR выполняются на одном и том же носителе скорости. Эта конфигурация не поддерживается не рекомендуется (см https://aka.ms/srfaq . рекомендации по журналам).

    При использовании Локальные дисковые пространства с жесткими дисками нельзя отключить или избежать кэша. В качестве обходного решения, если используется только SSD и NVME, можно настроить только уровни производительности и емкости. При использовании этой конфигурации и путем размещения журналов SR на уровне производительности только с томами данных, которые они используют только на уровне емкости, можно избежать проблемы с высокой задержкой, описанной выше. То же самое можно сделать с помощью сочетания более быстрых и медленных SSD и без NVME.

    Это обходное решение, конечно, не идеально, и некоторые клиенты могут не иметь возможности использовать его. Команда SR работает над оптимизацией и обновленным механизмом журнала в будущем, чтобы уменьшить эти искусственные узкие места, которые происходят. Для этого нет ETA, но при наличии для клиентов TAP для тестирования эти вопросы будут обновлены.

  • Для корпусов JBOD:
  1. Убедитесь, что каждый кластер может видеть только полки дисков своего сайта и что подключения SAS правильно сконфигурированы.

  2. Подготовьте хранилище с помощью дисковых пространств, выполнив шаги 1–3 из статьи Развертывание дисковых пространств на автономном сервере с помощью Windows PowerShell или диспетчера сервера.

  • Для целевого хранилища iSCSI:
  1. Убедитесь, что каждый кластер может видеть только полки дисков своего сайта. При работе с iSCSI следует использовать несколько сетевых адаптеров.

  2. Подготовьте хранилище в соответствии с документацией поставщика. При использовании целей iSCSI для Windows изучите статью Блочное хранилище конечного сервера iSCSI, краткое руководство.

  • Для хранилища SAN fc:
  1. Убедитесь, что каждый кластер можно видеть только полки дисков своего расположения, и что правильно выбраны зоны узлов.

  2. Подготовьте хранилище в соответствии с документацией поставщика.

  • Для Локальные дисковые пространства:
  1. Убедитесь, что каждый кластер может видеть корпуса хранилища этого сайта только путем развертывания Локальные дисковые пространства.

  2. Убедитесь, что тома журнала SR всегда будут находиться в самом быстром хранилище флэш-памяти и томах данных на более медленном хранилище высокой емкости.

  3. Запустите Windows PowerShell и используйте командлет Test-SRTopology, чтобы определить, все ли требования для реплики хранилища выполнены. Этот командлет можно запустить в режиме быстрой проверки требований или в режиме длительной оценки производительности. Например,

    MD c:\temp
    
    Test-SRTopology -SourceComputerName SR-SRV01 -SourceVolumeName f: -SourceLogVolumeName g: -DestinationComputerName SR-SRV03 -DestinationVolumeName f: -DestinationLogVolumeName g: -DurationInMinutes 30 -ResultPath c:\temp
    

    Внимание

    Если вы используете тестовый сервер, на котором во время проверки не выполняются операции ввода-вывода для выбранного тома источника, попробуйте добавить рабочую нагрузку, иначе отчет не будет содержать полезные сведения. Чтобы получить фактические результаты и рекомендованные размеры журнала, тестовая нагрузка должна соответствовать ожидаемой рабочей нагрузке. Как вариант, во время теста просто скопируйте некоторые файлы на исходный том или загрузите и запустите средство DISKSPD для создания операций ввода-вывода на запись. Например, пример с низкой рабочей нагрузкой ввода-вывода записи в течение пяти минут до тома D: Diskspd.exe -c1g -d300 -W5 -C5 -b8k -t2 -o2 -r -w5 -h d:\test.dat

  4. Изучите отчет TestSrTopologyReport.html, чтобы убедиться в выполнении всех требований к реплике хранилища.

    Экран с результатами отчета о топологии репликации

Шаг 2. Настройка двух отказоустойчивых кластеров файлового сервера горизонтального масштабирования

Теперь создадим два обычных отказоустойчивых кластера. После настройки, проверки и тестирования они будут реплицированы с помощью реплики хранилища. Вы можете выполнить все описанные ниже действия на узлах кластера непосредственно или с компьютера удаленного управления, содержащего средства удаленного управления Windows Server Администратор istration Tools.

Графический метод

  1. Запустите cluadmin.msc для узла на каждом сайте.

  2. Проверьте предложенный кластер и проанализируйте результаты, чтобы убедиться, что можно продолжить. В примере ниже рассматриваются SR-SRVCLUSA и SR-SRVCLUSB.

  3. Создайте два кластера. Убедитесь, что имена кластеров содержат не более 15 символов.

  4. Настройте файловый ресурс-свидетель или облачный свидетель.

    Примечание.

    Теперь WIndows Server включает в себя вариант для облачного следящего сервера (Azure). Можно выбрать этот вариант кворума вместо файлового ресурса-свидетеля.

    Предупреждение

    Дополнительные сведения о конфигурации кворума см. в разделе "Конфигурация следящего сервера" в разделе "Настройка кворума" и "Управление кворумом". Дополнительные сведения о командлете Set-ClusterQuorum см. в разделе Set-ClusterQuorum.

  5. Добавьте один диск сайта Redmond в кластер CSV. Для этого щелкните правой кнопкой мыши исходный диск в узле Disks (Диски) раздела Storage (Хранилище) и нажмите кнопку Add to Cluster Shared Volumes (Добавить к общим томам кластера).

  6. Создайте масштабируемые файловые серверы в обоих кластерах, следуя инструкциям в разделе Настройка масштабируемого файлового сервера

Метод для Windows PowerShell

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

    Test-Cluster SR-SRV01,SR-SRV02
    Test-Cluster SR-SRV03,SR-SRV04
    
  2. Создайте кластеры (необходимо указать свои собственные статические IP-адреса для кластеров). Убедитесь, что имя каждого кластера содержит не более15 символов.

    New-Cluster -Name SR-SRVCLUSA -Node SR-SRV01,SR-SRV02 -StaticAddress <your IP here>
    New-Cluster -Name SR-SRVCLUSB -Node SR-SRV03,SR-SRV04 -StaticAddress <your IP here>
    
  3. Настройте файловый ресурс-свидетель или облачный свидетель (Azure) в каждом кластере, который указывает на общий ресурс, размещенный на контроллере домена или другом независимом сервере. Рассмотрим пример.

    Set-ClusterQuorum -FileShareWitness \\someserver\someshare
    

    Примечание.

    Теперь WIndows Server включает в себя вариант для облачного следящего сервера (Azure). Можно выбрать этот вариант кворума вместо файлового ресурса-свидетеля.

    Предупреждение

    Дополнительные сведения о конфигурации кворума см. в разделе "Конфигурация следящего сервера" в разделе "Настройка кворума" и "Управление кворумом". Дополнительные сведения о командлете Set-ClusterQuorum см. в разделе Set-ClusterQuorum.

  4. Создайте масштабируемые файловые серверы в обоих кластерах, следуя инструкциям в разделе Настройка масштабируемого файлового сервера

Шаг 3. Настройка кластерной репликации с помощью Windows PowerShell

Теперь вы настроите реплика реплика кластеров с помощью Windows PowerShell. Все описанные ниже действия можно выполнить на узлах непосредственно или с компьютера удаленного управления, содержащего средства удаленного управления Windows Server Администратор istration Tools

  1. Предоставьте первому кластеру полный доступ к другому кластеру, выполнив командлет Grant-SRAccess на любом узле в первом кластере или удаленно. Средства Администратор установки удаленного сервера Windows Server

    Grant-SRAccess -ComputerName SR-SRV01 -Cluster SR-SRVCLUSB
    
  2. Предоставьте второму кластеру полный доступ к другому кластеру, выполнив командлет Grant-SRAccess на любом узле второго кластера или удаленно.

    Grant-SRAccess -ComputerName SR-SRV03 -Cluster SR-SRVCLUSA
    
  3. Настройте межкластерную репликацию, указав исходный и целевой диски, исходный и целевой журналы, имена исходного и целевого кластеров, а также размер журнала. Эту команду можно выполнить локально на сервере или на компьютере удаленного управления.

    New-SRPartnership -SourceComputerName SR-SRVCLUSA -SourceRGName rg01 -SourceVolumeName c:\ClusterStorage\Volume2 -SourceLogVolumeName f: -DestinationComputerName SR-SRVCLUSB -DestinationRGName rg02 -DestinationVolumeName c:\ClusterStorage\Volume2 -DestinationLogVolumeName f: -LogType Raw
    

    Предупреждение

    По умолчанию размер журнала составляет 8 ГБ. В зависимости от результатов работы командлета Test-SRTopology иногда целесообразно использовать журнал большего или меньшего размера (параметр -LogSizeInBytes).

  4. Чтобы получить сведения о состоянии источника и назначения репликации, используйте командлеты Get-SRGroup и Get-SRPartnership, как описано ниже.

    Get-SRGroup
    Get-SRPartnership
    (Get-SRGroup).replicas
    
  5. Ход репликации можно отслеживать следующим образом.

    1. На исходном сервере введите следующую команду и изучите события 5015, 5002, 5004, 1237, 5001 и 2200.

      Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica -max 20
      
    2. На конечном сервере выполните следующую команду для просмотра событий реплики хранилища, которые показывают создание партнерства. Это событие сообщает количество скопированных байтов и время выполнения. Пример:

      Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | Where-Object {$_.ID -eq "1215"} | Format-List
      

      Ниже приведен пример выхода.

      TimeCreated  : 4/8/2016 4:12:37 PM
      ProviderName : Microsoft-Windows-StorageReplica
      Id           : 1215
      Message      : Block copy completed for replica.
          ReplicationGroupName: rg02
          ReplicationGroupId:
          {616F1E00-5A68-4447-830F-B0B0EFBD359C}
          ReplicaName: f:\
          ReplicaId: {00000000-0000-0000-0000-000000000000}
          End LSN in bitmap:
          LogGeneration: {00000000-0000-0000-0000-000000000000}
          LogFileId: 0
          CLSFLsn: 0xFFFFFFFF
          Number of Bytes Recovered: 68583161856
          Elapsed Time (seconds): 117
      
    3. Кроме того, группа конечных серверов для реплики постоянно сообщает количество оставшихся байтов для копирования, и эти сведения можно запрашивать через PowerShell. Например:

      (Get-SRGroup).Replicas | Select-Object numofbytesremaining
      

      Пример контроля выполнения (не завершается самостоятельно):

        while($true) {
        $v = (Get-SRGroup -Name "Replication 2").replicas | Select-Object numofbytesremaining
        [System.Console]::Write("Number of bytes remaining: {0}`n", $v.numofbytesremaining)
        Start-Sleep -s 5
       }
      
  6. На целевом сервере в целевом кластере выполните следующую команду и проверьте события 5009, 1237, 5001, 5015, 5005 и 2200 для отслеживания хода обработки события. В этой последовательности не должно быть предупреждений или ошибок. Будет много событий 1237, которые указывают ход выполнения.

    Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica | FL
    

    Примечание.

    Во время репликации целевого диска кластера всегда отображается значение Online (No Access) (В сети (нет доступа)).

Шаг 4. Управление реплика tion

Теперь приступим к управлению межкластерной репликацией и работе с ней. Вы можете выполнить все описанные ниже действия на узлах кластера непосредственно или с компьютера удаленного управления, содержащего средства удаленного управления Windows Server Администратор istration Tools.

  1. Используйте командлет Get-ClusterGroup или диспетчер отказоустойчивости кластеров, чтобы определить источник и цель репликации и их текущее состояние. Средства Администратор установки удаленного сервера Windows Server

  2. Для измерения производительности репликации выполните командлет Get-Counter на исходном и целевом узлах. Ниже перечислены имена счетчиков.

    • \Статистика ввода-вывода раздела реплики хранилища(*)\Количество раз приостановки записи на диск

    • \Статистика ввода-вывода раздела реплики хранилища(*)\Количество вводов-выводов записи на диск в ожидании

    • \Статистика ввода-вывода раздела реплики хранилища(*)\Количество запросов для последней записи в журнал

    • \служба хранилища статистика секции ввода-вывода (*)\Avg. Длина очереди flush

    • \Статистика ввода-вывода раздела реплики хранилища(*)\Текущая длина очереди записи на диск

    • \Статистика ввода-вывода раздела реплики хранилища(*)\Количество запросов записи приложения

    • \служба хранилища статистика секции ввода-вывода секции (*)\Avg. Количество запросов на запись журнала

    • \служба хранилища статистика операций ввода-вывода секции реплики (*)\Avg. Задержка записи приложения

    • \служба хранилища статистика операций ввода-вывода раздела реплики (*)\Avg. Задержка чтения приложения

    • \Статистика реплики хранилища(*)\Целевая RPO

    • \Статистика реплики хранилища(*)\Текущая RPO

    • \служба хранилища статистика реплики(*)\Avg. Длина очереди журнала

    • \Статистика реплики хранилища(*)\Длина очереди текущего журнала

    • \Статистика реплики хранилища(*)\Всего байт получено

    • \Статистика реплики хранилища(*)\Всего байт отправлено

    • \служба хранилища статистика реплики(*)\Avg. Задержка отправки сети

    • \Статистика реплики хранилища(*)\Состояние репликации

    • \служба хранилища статистика реплики(*)\Avg. Задержка кругового пути сообщения

    • \Статистика реплики хранилища(*)\Время, затраченное на последнее восстановление

    • \Статистика реплики хранилища(*)\Количество транзакций восстановления, записанных на диск

    • \Статистика реплики хранилища(*)\Количество транзакций восстановления

    • \Статистика реплики хранилища(*)\Количество транзакций репликации, записанных на диск

    • \Статистика реплики хранилища(*)\Количество транзакций репликации

    • \Статистика реплики хранилища(*)\Максимальный порядковый номер журнала

    • \Статистика реплики хранилища(*)\Количество полученных сообщений

    • \Статистика реплики хранилища(*)\Количество отправленных сообщений

    Дополнительные сведения о счетчиках производительности, доступных в Windows PowerShell, есть в описании командлета Get-Counter.

  3. Чтобы изменить направление репликации с одного сайта, используйте командлет Set-SRPartnership.

    Set-SRPartnership -NewSourceComputerName SR-SRVCLUSB -SourceRGName rg02 -DestinationComputerName SR-SRVCLUSA -DestinationRGName rg01
    

    Примечание.

    Windows Server предотвращает переключение ролей при текущей начальной синхронизации, так как может привести к потере данных, если вы пытаетесь переключиться, прежде чем разрешить начальное реплика завершение. Не осуществляйте принудительное переключение направления до завершения начальной синхронизации.

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

    Примечание.

    Во время репликации целевого диска кластера всегда отображается значение Online (No Access) (В сети (нет доступа)).

  4. Чтобы изменить размер журнала из 8 ГБ по умолчанию, используйте Set-SRGroup как в исходном, так и в целевом служба хранилища группах реплик.

    Внимание

    По умолчанию размер журнала составляет 8 ГБ. В зависимости от результатов работы командлета Test-SRTopology иногда целесообразно использовать журнал большего или меньшего размера (параметр -LogSizeInBytes).

  5. Чтобы удалить репликацию, используйте командлеты Get-SRGroup, Get-SRPartnership, Remove-SRGroup и Remove-SRPartnership в каждом кластере.

    Get-SRPartnership | Remove-SRPartnership
    Get-SRGroup | Remove-SRGroup
    

    Примечание.

    служба хранилища реплика отключает тома назначения. Это сделано намеренно.

Дополнительные справочники