Windows 2016 Failover Cluster - Storage Replication (Часть 1)

Добрый день.

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

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

Конфигурация исходной системы и требования заказчика.

Дано:

  • Windows Failover Cluster на базе Windows Server 2016 Datacenter Edition.
  • Несимметричное дисковое подключение к узлам кластера, при котором одна дисковая стойка присоединена к одной группе узлов (размещенных на основном сайте, далее Site1), а другая дисковая стойка присоединена к другой группе узлов (размещенных на резервном сайте, далее Site2).
  • На основном сайте размещены два сервера SL-FS6, SL-FS16, а на резервном SL-FS5.

Результат:

  • На сайтах должны быть созданы кластеризованные роли File Server (в нашем случае FS1-Site1, FS1-Site2).
  • Должна быть реализована возможность переключения файловых серверов.

 1.gif 

Требования к аппаратному и программному обеспечению

Общие требования:

  • Active Directory Domain Services (не обязательно Windows Server 2016).
  • Как минимум два сервера Windows Server 2016 Datacenter Edition.
  • Желательно иметь сетевые интерфейсы со скоростью не менее 1 ГБ/сек (лучше 10 Гб/сек), поддерживающие RDMA.
  • Необходимо открыть порты для ICMP, SMB (445, плюс 5445 для SMB Direct) и WS-MAN (порт 5985) в обоих направлениях.

Требования к дискам:

  • Набор дисков SAS JBODs (для Storage Spaces), Fiber Channel SAN, Shared VHDX, или iSCSI Target. В данном случае используется диски подключенные через Fiber Channel и размещенные на двух разнотипных системах хранения (SAN).
  • На каждом дисковом хранилище должно быть создано как минимум два диска, один, для хранения данных, другой для хранения логов дисковых операций.
  • Диски должны быть только GPT.
  • Размеры сектора должны быть одинаковыми на обоих хранилищах.
  • Размеры соответствующих томов на обоих сайтах должны быть одинаковы с точностью до байта. Показанные ниже команды необходимо выполнить на всех узлах и убедиться, что это так.

Get-PhysicalDisk | select FriendlyName, SerialNumber, PhysicalSectorSize, LogicalSectorSize

Get-Volume | select DriverLetter, FileSystemLabel, AllocationUnitSize, Size, HealthStatus

  • Для хранения логов желательно иметь SSD-диск с минимальным временем отклика.
  • Размер тома для логов должен быть не менее 9 ГБ. Однако, чем больше, тем лучше, так как от его размера зависит сколько времени (в случае неработоспособности реплики) может сохраняться работоспособность данного решения.
  • Все тома должны быть форматированы либо под NTFS, либо под ReFS.

Развертывание системы репликации

Подготовительные операции

  • Создать стандартный Windows 2016 Failover кластер.
  • Установите на все узлы модуль управления Storage Replica

Add-WindowsFeature RSAT-Storage-Replica -ComputerName sol-fs5

Add-WindowsFeature RSAT-Storage-Replica -ComputerName sol-fs6

Add-WindowsFeature RSAT-Storage-Replica -ComputerName sol-fs16

  • Установите на все узлы библиотеки для Storage Replica.

Add-WindowsFeature Storage-Replica -ComputerName sol-fs5

Add-WindowsFeature Storage-Replica -ComputerName sol-fs6

Add-WindowsFeature Storage-Replica -ComputerName sol-fs16

  • Перезагрузите узлы.

Подключение дисков

  • Подсоединить одну дисковую стойку к двум узлам кластера (Site1), другую стойку к третьему узлу кластера (Site2).
  • Создайте физические диски на каждой стойке (один диск для данных, другой для логов).
  • Создайте GPT-разделы на дисках. Разделы должны иметь одинаковый размер с точностью до байта.
  • Создайте тома и отформатируйте их под NTFS или ReFS.
  • Убедитесь, что размеры томов, предназначенные для хранения данных, совпадают на Site1 и Site2.

Get-Volume | select DriverLetter, FileSystemLabel, AllocationUnitSize, Size, HealthStatus

  • Убедитесь, что размеры томов, предназначенные для хранения логов, совпадают на Site1 и Site2.
  • Get-Volume | select DriverLetter, FileSystemLabel, AllocationUnitSize, Size, HealthStatus
  • Добавьте диски в кластер.

Get-ClusterAvailableDisk -All | Add-ClusterDisk

  • Обратите внимание, что два диска будут находиться в работоспособном состоянии, а два буду в Offline, это нормально, поскольку группа Available Storage в каждый момент времени может находиться на одном из узлов и иметь доступ только к одной дисковой стойке.
  • Выполните перекат группы Available Storage на узел, подключенный к другой дисковой стойке, и убедитесь, что после “переката” группы Available Storage другая группа дисков переключится в состоянии Offline

Get-ClusterGroup "Available Storage" | Move-ClusterGroup -Node SOL-FS5

Get-ClusterGroup "Available Storage" | Move-ClusterGroup -Node SOL-FS6

Get-ClusterGroup "Available Storage" | Move-ClusterGroup -Node SOL-FS16

  • Установите для дисков понятные имена, зависящие от сайта, на котором они будут активны. Например:

2.gif

Развертывание файловых серверов

  • Войдите на любой узел Site1 (SOL-FS6, SOL-FS16). Запустите Failover Cluster Manager и в строке соединения введите “.” (точку), что подключит консоль к текущему узлу.
  • Выполните перекат группы Available Storage на узел SOL-FS6 или SOL-FS16, размещенный на сайте Site1.
Get-ClusterGroup "Available Storage" | Move-ClusterGroup -Node SOL-FS6
  • Создайте роль типа File Server с именем (например) FS1-Site1.

3.gif

4.gif

5.gif

  • Добавьте диски, предварительно “перекатив” группу Available Storage на любой узел Site1.

8.gif

  • Укажите предпочтительные узлы для роли.

7.gif

  • Войдите на любой узел Site2 (в данном случае на SOL-FS5). Запустите Failover Cluster Manager и в строке соединения введите “.” (точку), что подключит консоль к текущему узлу.
  • Выполните перекат группы Available Storage на узел SOL-FS5, размещенный на сайте Site2

Get-ClusterGroup "Available Storage" | Move-ClusterGroup -Node SOL-FS5

  • Создайте роль типа File Server с именем (например) FS1-Site2, для этого выполните шаги приведенные выше для роли FS1-Site1.
  • Обратите внимание, что теперь все диски доступны поскольку они размещены в ролях (группах), размещенных на тех же узлах, где и роли (группы).

 9.gif

Развертывание репликации дисковых хранилищ

  • На любом узле выполните команды и создайте группы репликации. Вы создадите две группы одну для сайта Site1, а другую для сайта Site2. Размер лог файла определяется нагрузкой на систему и размером, выделенного под него диска. Минимально возможный 512 МБ, оптимальный 9…10 ГБ, хотя это ориентировочная величина. Размеры лога могут быть любыми вплоть до размеров диска, на котором он размещен. Чем больше размер лога, тем больше система будет продолжать работать при отключении вторичной реплики.

New-SRGroup -ComputerName sol-fs6 -Name rg_Sol-fs6-Disk-D -VolumeName D: -LogVolumeName L: -LogSizeInBytes 10GB -Verbose

New-SRGroup -ComputerName sol-fs5 -Name rg_Sol-fs5-Disk-D -VolumeName D: -LogVolumeName L: -LogSizeInBytes 10GB -Verbose

  • Убедитесь, что группы репликации созданы.

Get-SRGroup FS1-Site*

  • Также обратите внимание, что из графической оболочки роли (группы кластера) исчезли.

 10.gif

 

  • Создайте репликацию от группы rg_Sol-fs6-Disk-D на группу rg_Sol-fs5-Disk-D. Вид репликации “синхронный”. Ключом -Seeded вы указываете, что синхронизация пользовательских данных не нужна, что ускорит синхронизацию пустых дисков.

New-SRPartnership -SourceComputerName sol-fs6 -SourceRGName rg_Sol-fs6-Disk-D -DestinationComputerName sol-fs5 -DestinationRGName rg_Sol-fs5-Disk-D -ReplicationMode Synchronous -Seeded

  • Проверьте статус репликации.

Get-SRGroup | select Name,ReplicationMode, ReplicationStatus, IsPrimary

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

11.gif

  •  Рабочее состояние группы репликации показано ниже.

12.gif

  •  Обратите внимание, что после создания репликации роль файлового сервера появилась в графической оболочке.

13.gif

Заключение.

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

 

Александр Каленик, Senior Premier Field Engineer (PFE), MSFT (Russia)