В этой статье мы рассмотрим, как установить и настроить MPIO на Windows Server 2016/2012 R2. MPIO (Multi-Path Input Output) это технология, позволяющая создать отказоустойчивый транспорт к системе хранения данных (или серверу хранения) за счет использования избыточных путей. Дополнительные пути между сервером и хранилищем создаются с помощью избыточных физических компонентов (коммутаторов, кабелей, адаптеров или сетевых карт). У этого типа избыточности есть недостаток: операционная система может видеть один и тот же LUN на разных путях и воспринимать его как разные диски.

Если сервер может получить доступ к логическому диску (LUN) с помощью нескольких адаптеров инициаторов iSCSI или нескольких портов Fibre Channel, диспетчер устройств/дисков без модуля MPIO покажет больше LUN, чем есть на самом деле (= количество путей к LUN * количество представленных LUN), если модуль MPIO не установлен.Следующий снимок экрана показывает, что Windows без MPIO видит 2 диска с разными путями, которые на самом деле являются одним и тем же LUN (список представленных дисков можно отобразить с помощью команды Get-Disk PowerShell).

get-disk - lun отображается как 2 диска

Если ОС поддерживает MPIO, она будет видеть каждый из представленных ей дисков в одном экземпляре. Если MPIO включен, сервер может получить доступ к данным на хранилище по нескольким путям, что ускоряет доступ к подключенному LUN и позволяет использовать несколько сетевых или HBA-адаптеров.
MPIO может использовать альтернативный логический путь в случае отказа одного или нескольких компонентов, что заставляет операционную систему использовать другой маршрут для доступа к логическому диску (LUN), сохраняя согласованность доступа к данным. Таким образом, MPIO является важным компонентом отказоустойчивой системы хранения и доступа к данным, а модули MPIO могут распределять нагрузку на один и тот же LUN по разным путям.

Совет. Если ОС не поддерживает MPIO, оставьте только один путь к LUN, чтобы предотвратить потерю данных. Включите только один порт Fibre Channel или один адаптер инициатора iSCSI на сервере. Также отключите дополнительные пути к LUN на уровне системы хранения данных и SAN/сетевого коммутатора.

Установка MPIO на Windows Server 2016/2012R2

Windows Server поддерживает многопутевой ввод-вывод (MPIO), начиная с Windows Server 2008 R2. Microsoft MPIO обеспечивает высокую доступность и балансировку нагрузки с помощью нескольких подключений к хранилищу, не зависит от протоколов и поддерживает подключение дисковых массивов и хранилищ с помощью iSCSI, Fiber Channel и SAS.

По умолчанию модуль MPIO отключен в Windows Server. В Windows Server 2016 его можно установить двумя способами:

  • Из графического интерфейса с помощью консоли Server Manager;
  • Из командной строки PowerShell.

Включение MPIO с помощью диспетчера сервера

  1. Откройте диспетчер сервера;
  2. Найдите и проверьте Многопутевой ввод/вывод в Характеристики список ;Установка функции MPIO на WIndows Server через диспетчер сервера
  3. Завершите установку MPIO и перезапустите сервер.

Установка Multipath-IO с помощью PowerShell

Запустите консоль PowerShell от имени администратора и выполните следующую команду для установки функции Windows Server:

Add-WindowsFeature -Name 'Multipath-IO'

Add-WindowsFeature -Name 'Multipath-IO' - включение mpio на Windows Server

Чтобы убедиться, что MPIO установлен на вашем Windows Server, выполните эту команду:

Get-WindowsFeature -Name 'Multipath-IO'

windows server - get 'Multipath-IO' powershell

Примечание. Чтобы отключить MPIO, введите следующую команду:Remove-WindowsFeature -Name 'Multipath-IO'

Настройка MPIO в Windows Server 2016

После установки модуля MPIO необходимо активировать его для LUN, доступных по нескольким путям. По умолчанию Windows воспринимает каждое подключение к диску как разные логические диски (LUN).

Совет. Среди компонентов MPIO есть специальный модуль, MSDSM (Microsoft Device Service Module) , который позволяет управлять политиками балансировки нагрузки. По умолчанию MPIO устанавливается вместе со стандартным Microsoft DSM. Однако в большинстве случаев рекомендуется устанавливать модуль DSM, предоставляемый производителем СХД (IBM DSM, HP DSM MPIO и т. д.). Как правило, родной DSM обеспечивает лучшую производительность и больше возможностей, чем Microsoft (поскольку производитель создает свой DSM на основе условий эксплуатации и характеристик своего оборудования).

Разрешить модулю DSM от Microsoft (MSDSM) автоматически объединять диски SAN в зависимости от типа соединения. MSDSM автоматически обнаруживает LUNы, имеющие несколько путей к хранилищу, и поддерживает большинство популярных устройств хранения.

Это можно сделать из командной строки:

  • Для дисков SAS: Enable-MSDSMAutomaticClaim -BusType SAS
  • Для дисков iSCSI: Enable-MSDSMAutomaticClaim -BusType iSCSI
Примечание. Вы можете сделать то же самое, используя mpclaim (она появилась в Windows 2008 R2). Следующая команда просканирует все обнаруженные системой устройства, найдет те, которые имеют несколько путей, и включит для них поддержку MPIO:mpclaim.exe -r -i -a ""

Вы также можете включить DSM в графическом интерфейсе. Откройте диспетчер серверов и выберите MPIO в Инструменты меню (или выполните команду: mpiocpl).

Перейти к Откройте для себя многопутевые маршруты вкладка, проверка Добавить поддержку устройств SASdevices (или Добавьте поддержку устройств iSCSI если вы используете хранилище iSCSI) и нажмите Добавить. Затем перезапустите сервер.

обнаружить многопутевые соединения: Добавлена поддержка устройств SAS и iSCSI

После перезапуска откройте диспетчер устройств (или диспетчер дисков) и убедитесь, что количество подключенных дисков (LUN), доступных серверу, уменьшилось в два раза (если к устройству хранения есть два пути).

Вы можете управлять списком устройств с включенной поддержкой MPIO в Устройства MPIO (или с помощью вкладки Get-MSDSMSupportedHw команду).

устройства mpio

Вы можете добавить новые MPIO-устройства, нажав Добавить или из PowerShell:

New-MSDSMSupportedHw -VendorId <vend> -ProductId <product>

Если вы развертываете кластер, настройте MPIO на всех узлах.

Если вы подключаете цель iSCSI по двум путям и хотите использовать для нее MPIO, выберите iSCSI LUN при подключении цели, нажмите кнопку Подключить и установите флажок Включить многопутевое подключение опция.

включить multipath для устройства iscsi на windows server 2016

Затем нажмите Дополнительно и привязывать разные IP-адреса инициаторов к разным целевым IP-адресам.

Windows Server 2016 multipath iscsi - привязка разных целевых IP-адресов к разным инициаторам

Вы можете получить текущие настройки MPIO с помощью PowerShell:

Get-MPIOSetting

Get-MPIOSetting

PathVerificationState     : Disabled
PathVerificationPeriod    : 30
PDORemovePeriod           : 20
RetryCount                : 3
RetryInterval             : 1
UseCustomPathRecoveryTime : Disabled
CustomPathRecoveryTime    : 40
DiskTimeoutValue          : 60

Настройки таймера MPIO можно изменить следующим образом (для примера включим рекомендуемые настройки для массива all-flash):

Set-MPIOSetting -NewPathRecoveryInterval 20 -CustomPathRecovery Enabled -NewPDORemovePeriod 30 -NewDiskTimeout 60 -NewPathVerificationState Enabled

Доступны следующие политики балансировки MPIO:

  • FOO — Только безотказная работа
  • RR — Раунд Робин
  • LQD — Наименьшая глубина очереди
  • LB — Наименьшие блоки

Чтобы изменить политику балансировки:

Set-MSDSMGlobalLoadBalancePolicy -Policy RR

Вы также можете выбрать политику балансировки в меню MPIO вкладка свойств подключенного LUN. В этом примере для массива выбрана политика Round Robin.

изменение политики балансировки нагрузки MPIO на Windows Server 2016

Чтобы просмотреть полный список команд PowerShell, доступных в модуле MPIO, выполните эту команду:

Get-Command –Module Mpio

модуль powershell mpio

Политика SAN (Disk) в Windows Server

В Windows есть специальная дисковая политика (Политика SAN), которая определяет, должны ли диски монтироваться автоматически при подключении к хосту.

Текущую настройку политики SAN можно получить с помощью diskpart. По умолчанию для SAN используется политика Offline Shared:

diskpart
DISKPART>>san</code

Из-за этой политики SAN внешние LUNы хранилища могут быть отключены после перезапуска. Ознакомьтесь со статьей Диск отключен из-за политики, установленной администратором.

Чтобы монтировать диски автоматически, измените значение политики SAN на OnlineAll.

DISKPART> san policy=OnlineAll

diskpart изменить политику san с offline shared на onlineall

Возможные значения политики SAN:

OfflineAll По умолчанию все диски находятся в автономном режиме
OfflineInternal Все диски на внутренних шинах находятся в автономном режиме
OfflineShared Все диски, подключенные через iSCSI, FC или SAS, находятся в автономном режиме
OnlineAll Все диски автоматически переходят в режим онлайн (рекомендуется)