В Windows Server 2016 появилась довольно интересная возможность репликации локального хранилища (дискового тома) на удаленный сервер – Storage Replica (SR). Данные одного тома автоматически синхронизируются по сети на вторичный сервер, на котором всегда будет доступна идентичная копия тома. Репликация данных в Storage Replica выполняется на уровне блоков с помощью протокола SMB v3.1.1 и не зависит от используемой файловой системы (NTFS, CSVFS, ReFS).
Репликация хранилищ в Windows Server 2016 работает в режиме Active / Passive. Это означает, что данные доступны только на сервере источнике. Возможны два режима репликации:
- Синхронная репликация – данные пишутся одновременно на оба сервера. Перед записью данных на основной сервер он ждет подтверждения о записи данных на удаленный сервер;
- Асинхронная репликация – данные записываются на основной сервер, и затем реплицируются на вторичный.
Storage Replica поддерживает следующие сценарии:
- Репликация между томами одного сервера
- Репликация хранилища Server-to-server
- Репликация хранилища в эластичном кластере (stretch cluster)
- Репликация хранилища между двумя разными кластерами (Cluster-to-cluster)
Требования к Storage Replica
Для использования Storage Replica ваша инфраструктура должна соответствовать следующим требованиям:
- Windows Server 2016/2019 в редакции Datacenter;
- Оба сервера должны состоять в домене Active Directory;
- По два дополнительных диска на каждом сервере – на одном храняться данные, на втором – логи. Диск с логами должен быть быстрее диска с данными, в идеале SSD. Размеры диска с данными должны быть одинаковыми;
- Таблица разделов дисков – только GPT (MBR не поддерживается);
- Поддерживаются локальные диски (SAS/SCSI/SATA), iSCSI, SAN, общие VHDX, Storage Spaces с SAS JBOD;
- Минимум 2 Гб памяти на сервере;
- Сеть между серверами >= 1 Гбит/с с задержками не более 5 мс в обе стороны ( как правило это ограничивает расстоянием между партнерами по репликации до 30-50 км). Сетевой адаптер желательно с поддержкой RDMA;
- Наличие открытых TCP портов 445, 5985 и 5445 между серверами;
Установка Storage Replica в Windows Server 2016
Компонент Storage Replica можно установить из консоли Server Manager или с помощью PowerShell:
Install-WindowsFeature Storage-Replica –IncludeManagementTools -Restart
Компонент Storage-Replica нужно установить на оба сервера. После установки компонента сервера нужно перезагрузить.
Настройка репликации томов в Windows Server 2016
У Storage Replication нет встроенной графической консоли управления. Для настройки репликации хранилищ нужно использовать PowerShell, Admin Center или консоль Failover Clustering (при использовании кластера).
Список доступных командлетов в модуле StorageReplica можно вывести так:
Get-Command -Module storagereplica
С помощью команды
Test-SRTopology
вы можете проверить соответствует ли ваш сервер и канал связи технологии Storage Replica. Вы можете оценить текущее количество операций ввода/вывода, пропускную способность сети, размер журналов. Командлет Test-SRTopology генерирует HTML отчет с текущими нагрузками и рекомендациями.
Включим репликацию хранилища D: между двумя отдельными серверами SR1 и SR2 (для логов используется диск L:, размер журнала – 1 Гб):
New-SRPartnership -SourceComputerName SR1 -SourceRGName SR1ReplGroup01 -SourceVolumeName E: -SourceLogVolumeName L: -DestinationComputerName SR2 -DestinationRGName SR2ReplGroup01 -DestinationVolumeName D: -DestinationLogVolumeName E: -LogSizeInBytes 1GB
После включения репликации на вторичном сервере диск с данными становится недоступен для внесения изменений (формат RAW).
Информацию о репликации тома можно получить с помощью дополнительных счетчиков производительности в PerfMon или из PowerShell:
Get-Counter -Counter “\Storage Replica Statistics(*)
События репликации томов можно отслеживать в журналах Event Viewer (Applications and Services Logs -> Microsoft -> Windows -> StorageReplica) или из PowerShell:
Get-WinEvent -ProviderName Microsoft-Windows-StorageReplica -max 10
Переключить режим репликации на асинхронный можно командой:
Set-SRPartnership -ReplicationMode Asynchronous
При выходе из строя основного сервера вы можете вручную изменить направление репликации данных, переведя вторичную копию в онлайн режим:
Set-SRPartnership -NewSourceComputerName SR2 -SourceRGName SR2ReplGroup01 -DestinationComputerName SR1 -DestinationRGName SR1ReplGroup01
Для получения информации о состоянии групп и направлении репликации используйте командлеты Get-SRGroup и Get-SRPartnerShip.
Можно проверить длину очереди копирования:
(Get-SRGroup).Replicas | Select-Object numofbytesremaining
Чтобы удалить репликацию:
Get-SRPartnership | Remove-SRPartnership
(только на основном сервере)
Get-SRGroup | Remove-SRGroup
(на обоих серверах)
интерфейса.
Во многих организациях в качестве решения для катастрофоустойчивого хранения данных используется DFS репликация между ЦОД. У SR есть несколько преимуществ перед DFS репликацией: данные копируются на блочном уровне (возможно репликация открытых и используемых файлов, VSS снапшотов), независимость от базы данных (нет необходимости согласования базы данных при старте), быстрая и синхронная репликация (не нужно ждать часы или дни как в DFS). Из недостатков Storage Replica: репликация только 1 к 1, высокие требования к сети и задержкам, без использования кластера используется ручное переключение направления репликации и перенастройка приложений (пользователей) на новый сервер (можно упростить за счет общего DFS namespace).
В Windows Server 2019 Build 17650 Storage Replica доступна и редакции Standard (можно реплицирвать только 1 том до 2 Тб, одному партнеру по репликации. В Datacenter партеров по репликации можен быть несколько). Кроме того, появился режим Test Failover. В этом режиме на партнере создается достпный для записи том-реплика, а репликация прекращается до момента отключения Test Failover (все изменения за время использования этого режима откатываются к снапшоту).