Поделиться через


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

Storage Replica может реплицировать тома между кластерами, включая репликацию кластеров с помощью Storage Spaces Direct. Применяются те же управление и настройка, что и для межсерверной репликации.

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

Important

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

В этом руководстве не рассматривается настройка Storage Spaces Direct. Чтобы получить сведения о настройке технологии Подключенные дисковые пространства, см. в разделе Обзор технологии Подключенные дисковые пространства.

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

  • Two member servers, named SR-SRV01 and SR-SRV02 that are later formed into a cluster named SR-SRVCLUSA.

  • Two member servers named SR-SRV03 and SR-SRV04 that are later formed into a cluster named SR-SRVCLUSB.

  • A pair of logical "sites" that represent two different data centers, with one called Redmond and one called Bellevue.

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

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

Prerequisites

  • Лес доменных служб 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, общих VHDX, прямых дисковых пространств (Storage Spaces Direct) или iSCSI-целевого объекта. Хранилище должно включать как жесткие диски, так и твердотельные накопители. Вы сделаете каждый набор хранилища доступным только для каждого кластера без общего доступа между кластерами.
  • Каждый набор хранилищ должен допускать создание по меньшей мере двух виртуальных дисков: один для реплицируемых данных и один для журналов. На всех дисках данных в физическом хранилище необходимо использовать одинаковый размер секторов. На всех дисках с журналами в физическом хранилище необходимо использовать одинаковый размер секторов.
  • На каждом сервере должно быть создано по меньшей мере одно подключение Ethernet/TCP для синхронной репликации, но желательно использовать RDMA.
  • Правила всех задействованных брандмауэров и маршрутизаторов должны разрешать двунаправленный трафик ICMP, SMB (порт 445, а также 5445 для SMB Direct) и WS-MAN (порт 5985) между всеми узлами.
  • Сеть между серверами должна иметь достаточную пропускную способность для ваших рабочих нагрузок ввода-вывода, а средняя задержка приема-передачи должна составлять 5 мс для синхронной репликации. Асинхронная репликация не имеет рекомендации по задержке.
  • Реплицированное хранилище не может находиться на диске, содержащем папку операционной системы Windows.
  • Существуют важные соображения и ограничения для репликации Storage Spaces Direct.

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

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

  1. Install Windows Server on all four server nodes with an installation type of Windows Server (Desktop Experience).

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

    Important

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

  3. Connect first set of JBOD storage enclosure, iSCSI target, FC SAN, or local fixed disk (DAS) storage to the server in site Redmond.

  4. Connect second set of storage to the server in site Bellevue.

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

    Note

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

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

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

    • Graphical method

      1. Run ServerManager.exe and create a server group, adding all server nodes.

      2. Install the File Server and Storage Replica roles and features on each of the nodes and restart them.

    • Метод 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. Настройте хранилище следующим образом:

    Important

    • Необходимо создать два тома на каждой полке: один для данных и один для журналов.
    • Log and data disks must be initialized as GPT, not MBR.
    • Два тома данных должны иметь одинаковый размер.
    • Два тома логов должны иметь одинаковый размер.
    • Все реплицируемые диски данных должны иметь одинаковый размер сектора.
    • Все диски журналов должны иметь одинаковый размер сектора.
    • Тома журнала следует располагать на твердотельных накопителях на основе флеш-памяти, таких как SSD. Корпорация Майкрософт рекомендует быстрее хранить журналы, чем хранилище данных. Томы журналов никогда не должны использоваться для других рабочих нагрузок.
    • В качестве дисков данных можно использовать жесткие диски, твердотельные накопители или их многоуровневое сочетание. Диски можно организовать как зеркальные массивы, массивы с контролем четности, RAID 1 или 10, RAID 5 или RAID 50.
    • Размер журнала по умолчанию — 8 ГБ, если не указано. Объем журнала должен быть не менее 10 ГБ или больше в зависимости от требований к журналам и потребностей организации.
    • При использовании Storage Spaces Direct с кэшем NVME или SSD, наблюдается большее, чем ожидалось, увеличение задержки при настройке репликации с помощью Storage Replica между кластерами Storage Spaces Direct. Изменение задержки пропорционально значительно выше, чем в случае использования NVME и SSD в конфигурации производительность + емкость без уровня HDD и уровня емкости.

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

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

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

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

  2. Provision the storage using Storage Spaces by following Steps 1-3 provided in the Deploy Storage Spaces on a Stand-Alone Server using Windows PowerShell or Server Manager.

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

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

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

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

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

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

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

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

    Important

    Если вы используете тестовый сервер, на котором во время проверки не выполняются операции ввода-вывода для выбранного тома источника, попробуйте добавить рабочую нагрузку, иначе отчет не будет содержать полезные сведения. Чтобы увидеть реальные цифры и рекомендованные размеры журналов, следует тестировать с нагрузками, подобными рабочим нагрузкам в производственной среде. Alternatively, copy some files into the source volume during the test or download and run DISKSPD to generate write IOs. Например, образец с низкой нагрузкой на запись IO в течение пяти минут на том D: Diskspd.exe -c1g -d300 -W5 -C5 -b8k -t2 -o2 -r -w5 -h d:\test.dat

  4. Examine the TestSrTopologyReport.html report to ensure that you meet the Storage Replica requirements.

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

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

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

Graphical method

  1. Run cluadmin.msc against a node in each site.

  2. Проверьте предложенный кластер и проанализируйте результаты, чтобы убедиться, что можно продолжить. The example used below are SR-SRVCLUSA and SR-SRVCLUSB.

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

  4. Настройте свидетеля общих файлов или свидетеля в облаке.

    Note

    Windows Server теперь включает в себя опцию для облачного свидетеля на базе Azure. Можно выбрать этот вариант кворума вместо свидетеля общего доступа к файлам.

    Warning

    Дополнительные сведения о конфигурации свидетеля кворума см. в разделе "Развертывание свидетеля кворума". For more information on the Set-ClusterQuorum cmdlet, see Set-ClusterQuorum.

  5. Add one disk in the Redmond site to the cluster CSV. To do so, right click a source disk in the Disks node of the Storage section, and then click 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) в каждом кластере, который указывает на общий ресурс, размещённый на контроллере домена или другом независимом сервере. For example:

    Set-ClusterQuorum -FileShareWitness \\someserver\someshare
    

    Note

    Windows Server теперь включает в себя опцию для облачного свидетеля на базе Azure. Можно выбрать этот вариант кворума вместо свидетеля общего доступа к файлам.

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

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

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

  1. Grant the first cluster full access to the other cluster by running the Grant-SRAccess cmdlet on any node in the first cluster, or remotely. Средства администрирования удаленного сервера Windows Server

    Grant-SRAccess -ComputerName SR-SRV01 -Cluster SR-SRVCLUSB
    
  2. Grant the second cluster full access to the other cluster by running the Grant-SRAccess cmdlet on any node in the second cluster, or remotely.

    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
    

    Warning

    По умолчанию размер журнала составляет 8 ГБ. Depending on the results of the Test-SRTopology cmdlet, you may decide to use -LogSizeInBytes with a higher or lower value.

  4. To get replication source and destination state, use Get-SRGroup and Get-SRPartnership as follows:

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

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

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

      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. For example:

      (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
    

    Note

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

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

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

  1. Use Get-ClusterGroup or Failover Cluster Manager to determine the current source and destination of replication and their status. Средства администрирования удаленного сервера Windows Server

  2. To measure replication performance, use the Get-Counter cmdlet on both the source and destination nodes. Названия счетчиков:

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

    • \Статистика ввода-вывода раздела реплики хранилища(*)\Количество ожидающих флеш I/O операций

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • \Статистика реплики хранилища(*)\Максимальный номер лог-файла

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

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

    For more information on performance counters in Windows PowerShell, see Get-Counter.

  3. To move the replication direction from one site, use the Set-SRPartnership cmdlet.

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

    Note

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

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

    Note

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

  4. To change the log size from the default 8GB, use Set-SRGroup on both the source and destination Storage Replica groups.

    Important

    По умолчанию размер журнала составляет 8 ГБ. Depending on the results of the Test-SRTopology cmdlet, you may decide to use -LogSizeInBytes with a higher or lower value.

  5. To remove replication, use Get-SRGroup, Get-SRPartnership, Remove-SRGroup, and Remove-SRPartnership on each cluster.

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

    Note

    Реплика хранилища демонтирует конечные тома. Это сделано намеренно.

Additional References