Использование Microsoft MPIO в Windows Server 2008 R2

К написанию этой заметки меня подтолкнула необходимость миграции одного из кластеров с виртуальными машинами в технологическом центре Microsoft с платформы Windows Server 2008 на Windows Server 2008 R2. Задача назрела уже давно, однако, на миграцию стабильно работающей продуктивной среды не было времени. К тому же заранее вырисовывалась одна техническая проблема: кластер использует различные внешние дисковые массивы, а в частности HP MSA 2012fc, который не поддерживается HP под Windows Server 2008 R2. Что означает «не поддерживается HP»? К сожалению, HP не предоставляет программного обеспечения для массивов MSA под новую ОС.

Что такое MPIO?

Как вы понимаете, большинство серверов, имеющие HBA для подключения к SAN, имеют несколько портов. И каждый сервер может (и в нормальной ситуации должен) подключаться к любому из устройств хранения через несколько портов одновременно. Кроме того, у системы хранения, как правило, тоже не одна точка подключения в сеть, а у некоторых из таких систем — ещё и по несколько контроллеров, каждый со своим набором портов. При правильной настройке SAN, каждый из портов сервера должен «видеть» каждый из портов системы хранения. При этом между ними ещё могут находиться не один, а несколько коммутаторов. Всё это служит, в первую очередь, для обеспечения избыточности — подключение к хранилищу более не является единой точкой сбоя. Кроме того, при определённых условиях эта схема может обеспечивать дополнительные преимущества — такие, например, как балансировку нагрузки между путями.

Однако при настройке по умолчанию операционная система ещё «не понимает», что то, что она «видит» по разным путям, на самом деле является не разными устройствами, а одним и тем же.  И для того, чтобы она «видела» каждый из представленных ей дисков в единственном экземпляре, мы устанавливаем во-первых, специальный компонент (Feature), который так и называется: Multi-Path Input-Output (MPIO). А во-вторых — специальное ПО, которое поставляется производителем системы хранения, встраивается в инфраструктуру Microsoft MPIO и обеспечивает работу с данной конкретной моделью оборудования. Этот компонент называется Device-Specific Module (DSM).

Проблема

Увы, для Windows Server 2008 R2 компания HP не предоставляет MPIO DSM, совместимого с массивами Modular Storage Array (MSA) 1000/1500/2000. А MPIO DSM для Windows Server 2008 не работает в Windows Server 2008 R2. В связи со сложившейся ситуацией передо мной возникает задача настройки MPIO без использования специального ПО.

Решение

Рассмотрим на реальном примере процесс установки и настройки Microsoft Multipath I/O в Windows Server 2008 R2. Для начала нам потребуется установить сам компонент ОС (Feature).

Просто установка компонента ещё никак не влияет на то, как система «видит» диски. Теперь нам предстоит настроить MPIO. Сейчас в Disk Manager мне доступны два LUN с MSA 2012fc — по двум путям каждый — и один LUN с NetApp — по четырём путям.

Для начала откроем панель управления MPIO.

Перейдя в закладку Discover Multi-Paths увидим те массивы, которые доступны системе по нескольким путям, но для которых MPIO еще не настроен.

Выделим требуемый массив, выберем Add и по требованию системы перезагрузим сервер.

После перезагрузки в панели управления MPIO мы уже увидим добавленные массивы, появившиеся в основной закладке MPIO Devices.

Уже сейчас в Disk Manager я вижу каждый LUN только один раз — задача выполнена.

Теперь при желании я могу настроить параметры выбора пути MPIO. Для этого в Device Manager выберем диск, и во вкладке MPIO можем настроить различные способы определения путей. По умолчанию выставлен режим Round Robin, пытающийся равномерно распределять запросы к диску по всем путям.

Лично я для Microsoft MPIO предпочитаю выбирать режим Fail Over Only. Для этого необходимо выбрать соответствующий путь в выпадающем списке — и для всех путей, кроме основного, выставить настройку Standby, оставив Active/Optimized только для основного пути.

Для конфигурации доступны и другие политики настройки MPIO, о которых вам следует внимательно почитать.

Если эта заметка вызовет интерес, я готов более подробно описать теорию различных политик настройки MPIO, а также отличия в настройке для Server Core и Hyper- V Server, не имеющих панели управления и диспетчера устройств.