В 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 (все изменения за время использования этого режима откатываются к снапшоту).
В 2022 новое
Storage Replica compression for data transfer
This update includes Storage Replica compression for data transferred between the source and destination servers. This new functionality compresses the replication data at the source system, sent over the network and decompressed and saved on the destination. The compression results in fewer network packets to transfer the same amount of data, allowing for more throughput, and less network utilization. Higher data throughput should also result in lowering synchronization time for when you need it most, for example in a disaster recovery scenario.
New Storage Replica PowerShell parameters are available for existing commands, review the Windows PowerShell StorageReplica reference to learn more. For more information about Storage Replica, see the Storage Replica overview.
Есть еще такая штука StarWind Virtual SAN.
Никто не тестировал для тех же целей?