Автор статьи — Михаил Комаров, MVP по направлению Hyper-V
Цель данной статьи — рассказать о новой компоненте Storage Replica, которая появилась в Windows Server vNext. Появление данной технологии было ожидаемо, так как последние несколько лет Microsoft уделяет пристальное внимание системам хранения. Первой ласточкой была новая реализация протокола SMB 3.0, которая появилась с выходом Windows Server 2012 и доработана новыми возможностями к выходу Windows Server 2012 R2.
![](https://habrastorage.org/files/7ec/31b/34e/7ec31b34e897455492ead09f89a25ca6.png)
Далее в нашу копилку добавим новый тип файлового кластера, так называемый SOFS
![](https://habrastorage.org/files/f7d/01e/e74/f7d01ee7483441eda512f1e6d408e9d3.png)
Упомянем также такие приятные вещи как встроенный тиминг, поддержку RDMA, InfiniBand-адаптеров, Storage Space для объединения дисков пул, Storage Tiering, который позволяет эффективно использовать комбинацию SDD и HDD пулов. Уже есть решения дисковых JBOD-полок, которые можно подключать напрямую к серверам и делать системы хранения. Есть промышленные решения Dell CPS, в которых использованы данные технологии.
![](https://habrastorage.org/files/9b9/3af/056/9b93af056d654b5489dfb2decc09dd6b.png)
После всего этого можно было ожидать репликацию томов, как в других системах хранения, и с выходом Windows Server vNext TP это было реализовано.
Storage Replica — это технология репликации томов в Windows на уровне блоков с использованием протокола SMB. На данный момент реализованы два сценария репликации томов: эластичный кластер и репликация между простыми серверами.
![](https://habrastorage.org/files/65b/130/f34/65b130f345a44fe6ae19549055ed0dcb.png)
![](https://habrastorage.org/files/3fb/e64/bc8/3fbe64bc84364b819e3df361f9dc6644.png)
Управление реализовано следующим образом: из оснастки Failover Cluster Manager для эластичного кластера, а также Windows PowerShell и WMI. Обратите внимание, что поддерживаются только несъемные диски. Хотелось бы подчеркнуть, что Storage Replica — это не DFSR, и что репликация идет на уровне блоков. Ниже на иллюстрации видно, что механизм реализации Storage Replica находится ниже файловой системы, поэтому блочная репликация не зависит от типа файловой системы NTFS/CSVFS/ReFS.
![](https://habrastorage.org/files/b0f/2e1/357/b0f2e135752a4a92b9db18b6a9152336.png)
Рассмотрим процесс синхронной репликации более детально. Первый шаг — поступление данных на сервер-источник. Второй шаг — запись в журнал на отдельном томе и пересылка на целевой сервер. На третьем шаге — запись в журнал на целевом сервере. Четвертый шаг — передача информации на сервер-источник об успешной записи в журнал на целевом сервере. Пятый шаг- оповещение приложения, что данные обработаны. Далее, в момент времени t1, произойдет запись данных с тома журнала в том данных на обоих серверах.
![](https://habrastorage.org/files/8ec/8eb/948/8ec8eb948b964eab95c247c945802361.png)
Рассмотрим процесс асинхронной репликации более детально. Первый шаг — поступление данных на сервер-источник. Второй шаг — запись в журнал на отдельном томе. На третьем — оповещение приложения, что данные обработаны. Четвертый шаг — передача информации на целевой сервер. Пятый шаг — запись в журнал на целевом сервере. Шестой шаг — информирование сервера-источника об успешной записи в журнал. Далее, в момент времени t1, произойдет запись данных с тома журнала в том данных на обоих серверах.
![](https://habrastorage.org/files/c32/023/013/c3202301320744038eb71af4e92d9104.png)
Закончим теорию и начнем переходить к практике.
Начнем с требований.
Редакция Windows Server – Datacenter Edition. Оба компьютера должны быть членами домена. Диски обязательно GPT, не MBR. Никаких съемных носителей — внешних USB-массивов, флешек, ленточных накопителей, 5,25-дюймовых флоппи-дисков и т. п. Также необходима та же геометрия диска (между журналами, между данными) и разделы для данных. Свободное место для журналов на томе Windows NTFS/ReFS (журнал фиксированного размера, он не увеличивается и не уменьшается). Никакой репликации %SystemRoot%, файлов подкачки, файлов спящего режима, файлов DMP. Также необходимо открыть на брандмауэре порты SMB, WS-MAN.
Задержки обмена пакетами
В среднем ? 5 мс в обе стороны. Если взять идеальный вариант — скорость света в вакууме, то 5 мс — это примерно 1 500 км при обмене в обе стороны. В реальности оптоволокно снижает скорость примерно на 35 %, а есть еще и коммутаторы, маршрутизаторы, брандмауэры и т. д. В сухом остатке: большинство клиентов ограничиваются расстоянием 30–50 км.
Пропускная способность сети
Начальное требование — сеть ? 1 Гбит/с — при соединении «узел-узел» между серверами (для Windows Server нужны сетевые карты 1 Гбит/с). Все зависит от операций ввода-вывода и интенсивности совместного использования канала (возможно, SR – не единственная функция, которая будет генерировать трафик на площадку аварийного восстановления). Определите количество операций ввода- вывода (125 Мб/с объема операций ввода-вывода = ~1 Гбит/с нагрузки на сеть).
Производительность и размер тома журнала
Флеш-накопители (SSD, NVME и т. д.). Журналы большего размера позволяют быстрее восстановить систему после крупного сбоя и быстрее переключиться. Но цена этому — место на диске.
Существует командлет Test-SRTopology, который проверяет требования и рекомендации по пропускной способности сети, размеру журналов, количеству операций ввода-вывода в секунду и т. д. Работает в течение указанного времени и создает аккуратный отчет с рекомендациями в формате HTML.
Необходимо обратить внимание, что целевой том всегда отключен. Сценарий для целевого тома с возможностью записи-чтения или только чтения не используется. Подключение только «один к одному». Всегда можно использовать другие функции репликации (например, Hyper-V Replica для A-B, а SR для A-C). При изменении размера тома репликация прерывается.
Рассмотрим демонстрацию, в которой участвовали две одинаковые виртуальные машины с именами SR1 и SR2, они являлись членами домена. Начнем с того, что на каждой машине включим правила на межсетевых экранах, используя следующую команду:
Enable-NetFirewallRule -CimSession SR1,SR2 -DisplayGroup "Remote Desktop","File and Printer Sharing"
Результат ее работы приведен ниже. Можно сделать это из консоли.
![](https://habrastorage.org/files/3fd/2e2/14c/3fd2e214c9ca4fb69b905948794f8bd4.png)
Проверим доступность сервера:
ping SR2.contoso.com -4 -f -l 1472 -n 300
На следующем шаге подключим по 2 диска на каждый сервер и при инициализации выберем GPT раздел. Далее отформатируем в NTFS и присвоим литеры дискам. Для демонстрации я использовал динамические диски. И диск под журнал ограничил 15GB.
![](https://habrastorage.org/files/8dc/2af/473/8dc2af4734ea47a9ab52c0caa66daf48.png)
Включим фичу с помощью PowerShell команды и перезагрузим хосты.
$Servers = {список серверов}
$Servers | ForEach { Install-WindowsFeature –ComputerName $_ –Name WVR –IncludeManagementTools -restart }
Или используя графический интерфейс
![](https://habrastorage.org/files/7f7/37c/152/7f737c15299f4b02ab532b4650873c39.png)
Теперь включим репликацию, используя PowerShell, мастер доступен только в версии для failover cluster.
New-SRPartnership -SourceComputerName SR1 -SourceRGName rg01 -SourceVolumeName Q: -SourceLogVolumeName T: -DestinationComputerName SR2 -DestinationRGName rg02 -DestinationVolumeName Q: -DestinationLogVolumeName T: -LogSizeInBytes 8gb
Данная команда включает репликацию на серверах SR1,SR2. Определяет тома репликации Q, на которых буду лежать данные, а также задает тома для журналов T и задает размер журнала 8 GB.
Результат работы команды мы видим ниже.
![](https://habrastorage.org/files/f27/963/d98/f27963d98eaf45078b84a52023d46f6f.png)
Хотелось бы обратить внимание, что после включения репликации на томе появляется дополнительный раздел, а также новый журнал событий, в котором содержится информация о репликации.
![](https://habrastorage.org/files/733/ac0/b91/733ac0b91fc44aa8be7568360971c2bc.png)
![](https://habrastorage.org/files/e4f/71d/6c0/e4f71d6c08aa495191133976489803a5.png)
![](https://habrastorage.org/files/182/36c/128/18236c1288d1405db92a42197b42b86d.png)
На данном графике видно, как происходит начальная инициализация после включения репликации. Обратите внимание на набор счетчиков производительности, которые связаны с репликацией.
![](https://habrastorage.org/files/f31/880/43a/f3188043a89a406f8f6cd6cc3b54bd3d.png)
Для примера скопируем данные на реплицируемый том и сразу увидим сетевой трафик.
![](https://habrastorage.org/files/9c7/cc5/a8e/9c7cc5a8ee1f455fbcc3cd7da6a02e27.png)
Несмотря на то, что том с лог-файлом частично заполнен, данных там не видно. Используем команду dir с расширениями.
![](https://habrastorage.org/files/6f2/66d/c28/6f266dc283ca4f879ad26793b9f36fe9.png)
Как мы говорили ранее, на втором сервере диск с данными недоступен. Он в формате RAW и будет доступен после отключения или переключения репликации.
![](https://habrastorage.org/files/4f1/860/bb2/4f1860bb2cae42509e38bab45effb9bf.png)
Если возникает необходимость разобрать репликацию, помним о дополнительном разделе на дисках на двух серверах и удаляем их.
Запускаем DISKPART, выбираем наш диск (х, например)
DISKPART
LIST DISK
SELECT DISK X
attribute disk clear readonly
Находим раздел (Y “unknown” размером 512KB)
LIST PARTITION
SELECT PARTITION Y
Проверяем раздел ( GUID 558d43c5-a1ac-43c0-aac8-d1472b2923d1)
DETAIL PARTITION
Удаляем раздел
DELETE PART OVERRIDE
На этом мы закончим краткий обзор данной технологии, которая появилась в Windows Server vNext.
Ресурсы
Storage Replica in Windows Server Technical Preview
Комментарии (3)
mtp
28.08.2015 23:15Ждём 2016 сервер, очень ждём. Но в связи с открывшимися «фичами» по отсылке пользовательских данных из Windows 10, будем очень осторожно смотреть и тестировать будущую версию. Доверия Майкрософту как-то поубавилось.
excoder
Технология замечательная, давно присматриваемся для клиентов. Есть ли практические замеры, например в случае с репликацией снапшотов и лог-записей disk-based и in-memory баз данных? Понятно, что для SQL Server есть более специализированное решение по репликации и failover, но всё же Storage Replica как-то более commodity в этом плане, и является failover для целого приложения, а не только базы данных, что принципиально.
ashapo
Я пока цифр не видел. Появятся — поделюсь.