Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Написав заметку об использовании Microsoft MPIO, встроенного в ОС Windows Server 2008/R2, я получил неожиданно много откликов (и запретил на будущее анонимные комментарии). Сегодня я вкратце расскажу о методах работы Microsoft Multipath I/O и вариантах его настройки в Server Core.
Что такое MPIO я уже описал в прошлой заметке, сейчас поговорим о теории.
Multipath I/O в Windows Server 2008 R2 включает в себя стандартный Device-Specific Module (DSM), который умеет работать с дисковыми системами, поддерживающими технологию Asymmetric Logical Unit Access (ALUA) согласно спецификации SPC-3, а также с дисковыми системами, работающими в режиме «Active/Active».
Режимы работы Microsoft MPIO DSM
Microsoft Multipath I/O DSM позволяет использовать различные режимы балансировки. Очевидно, что возможность использовать тот или ин6ой режим зависит, в первую очередь, от аппаратных возможностей контроллера — ALUA или Active/Active — в подключенном дисковом хранилище. Рассмотрим эти режимы.
- Failover. Не производит никакой балансировки. Указывается основной (первичный) путь и несколько резервных (вторичных) путей. Все операции с дисковым хранилищем осуществляются по первичному пути. В случае его выхода из строя (недоступности данных по этому пути) система начинает использовать один из резервных путей. Резервные пути указываются в порядке уменьшения приоритета их использования, начиная список с наиболее предпочтительного.
- Failback. Режим, позволяющий указать заведомо предпочтительный путь. В случае выхода его из строя используются другие пути. Однако, как только дисковое хранилище вновь доступно по предпочтительному пути, система возвращается к его использованию.
- Round-robin. Режим, когда DSM использует все возможные пути по очереди для балансировки.
- Round-robin with subset of paths. Режим, позволяющий указать несколько путей, используемых как первичные в режиме Round-robin, а также указать один или несколько резервных путей. Пока доступен хотя бы один из первичных путей, система использует их с балнсировкой round-robin. При доступности лишь резервных путей, система использует один из них в порядке уменьшения приоритета. Как только хотя бы один из основных путей становится вновь доступен, система возвращается к использованию балансировки на работоспособных основных путях.
- Dynamic Least Queue Depth. DSM направляет запросы на тот путь, который в настоящий момент имеет наименьшее количество запросов в очереди на исполнение.
- Weighted Path. Сиситема назначает каждому пути некий вес (стоимость), обозначающую относительный приоритет использования данного пути. Чем больше вес, тем ниже приоритет. DSM выбирает для операций доступный путь с наименьшим весом.
- Least Block (только в Windows Server 2008 R2). Режим, направляющий I/O запросы на тот путь, в очереди которого на передачу стоит наименьшее число блоков данных.
В Windows Server 2008 R2 по умолчанию для контроллеров Active/Active выбирается режим Round-robin, а для контроллеров ALUA SPC-3 выбирается режим Failover. В Windows Server 2008 по умолчанию всегда предлагается режим Failover.
Работа в Server Core
Для установки Microsoft Multipath I/O в Server Core следует воспользоваться одной из следующих команд.
- start /wait "%SystemRoot%\System32\OCSetup.exe" MultipathIo (для Windows Server 2008);
- "%SystemRoot%\System32\DISM.exe" /Online /Enable-Feature:"MultipathIo" (для Windows Server 2008 R2);
- Add-WindowsFeature -name "Multipath-IO" (для Windwos Server 2008 R2 с установленным Windows PowerShell и импортированным модулем ServerManager).
Для настройки из командной строки используется утилита "%SystemRoot%\System32\MPClaim.exe". Синтаксис утилиты выклядит примерно так:
"%SystemRoot%\System32\MPClaim.exe" restart_option install_switch device_switch device_hwid
Посмотреть примеры использования утилиты можно на страницах TechNet.
Кроме того, в Windows Server 2008 R2 можно запустить графическую утилиту командой "%SystemRoot%\System32\MPIOCPL.exe".