Технический блог специалистов ООО"Интерфейс"
- Главная
- Настройка iSCSI-хранилища в Windows Server 2012 R2
Настройка iSCSI-хранилища в Windows Server 2012 R2
- Автор: Уваров А.С.
- 29.01.2015
Продолжая тему создания систем высокой доступности, в данном материале мы рассмотрим настройку iSCSI-хранилищ в современной версии серверных ОС от Microsoft. Мы не будем повторяться и снова обсуждать общие вопросы, поэтому, если вы только начинаете работать с iSCSI, то настоятельно рекомендуем ознакомиться с вступительной частью к нашему предыдущему материалу.
Широкое распространение виртуализации и потребности в создании отказоустойчивых систем даже при небольших внедрениях заставили компанию Microsoft пересмотреть свое отношение к доступным из коробки ролям Windows Server и политике лицензирования. Если раньше iSCSI Target предлагался только в редакции Windows Storage Server, то начиная с Server 2008 R2 он стал доступен в виде отдельно устанавливаемого компонента, а с выходом Windows Server 2012 закономерно стал частью ОС.
Для установки роли Cервера цели iSCSI запустите Мастер добавления ролей и компонентов, затем последовательно разверните пункты Файловые службы и службы хранилища — Файловый службы и службы iSCSI и укажите одноименную роль.
Перезагрузки сервера не требуется и по завершении работы мастера можно сразу переходить к настройке сервера целей. Для этого в левом меню Диспетчера серверов выберите Файловые службы и службы хранилища и перейдите в раздел iSCSI.
Для создания нового виртуального диска щелкните соответствующую ссылку или выберите соответствующий пункт из меню Задачи, откроется Мастер создания виртуальных дисков iSCSI, который в первую очередь попросит вас указать расположение хранилища.
Помните, что производительность дисковой подсистемы хранилища должна соответствовать предполагаемым нагрузкам, также вы должны обеспечить серверу цели достаточную пропускную способность сетевых интерфейсов. Мы рекомендуем выделять для сети хранения данных (SAN) отдельную сеть, не связанную с сетью предприятия.
Следующим шагом укажите имя и размер создаваемого диска. Windows Server 2012 поддерживает новый формат виртуальных дисков — VHDX, а также динамически расширяемые диски. Если доступные ранее диски фиксированного размера резервировали дисковое пространство хранилища сразу при создании, то динамически расширяемые диски увеличивают размер согласно реально записанным в них данным. Это позволяет существенно экономить дисковое пространство хранилища, нарезая виртуальные диски с запасом.
Не рекомендуется данный тип дисков для систем с высокой дисковой активностью, так как за счет возможной фрагментации и операций по приращению размера диска производительность будет ниже, чем у дисков фиксированного размера. В тоже время динамически расширяемые диски неплохо подходят для файловых хранилищ, резервного копирования и т.п. задачам, где в первую очередь требуется хранение данных, а не скорость доступа к ним.
Еще один поддерживаемый тип дисков — разностный, когда все изменения пишутся не на исходный виртуальный диск, а на вновь созданный, к использованию в производственных средах не рекомендуется ввиду существенно более низкой производительности, но может оказаться полезным при отладке и разного рода экспериментах, когда надо иметь возможность быстро откатиться к исходному состоянию.
Созданный виртуальный диск можно назначить как уже существующей цели (таргету), так и создать новый, в этом случае просто укажите имя цели, IQN будет сформирован автоматически.
Затем потребуется указать инициаторы, которым будет разрешен доступ к этой цели. IQN инициатора можно посмотреть на клиенте, для этого откройте Панель управления — Администрирование — Инициатор iSCSI, на вопрос об автоматическом запуске службы ответьте утвердительно.
IQN ткущего инициатора можно посмотреть на закладке Конфигурация:
Но можно поступить проще, перейдите на закладку Конечные объекты и выполните Быстрое подключение к Cерверу цели, подключиться по понятным причинам не получится, но IQN инициализатора останется в кэше сервера.
Вернемся на сервер и нажав кнопку Добавить выберем IQN инициатора из кэша, для современных систем вы также можете получить IQN инициатора выполнив подключение к нему по IP-адресу или имени хоста:
На остальных шагах оставляем значения по умолчанию, после чего работа мастера будет завершена, виртуальный диск создан и назначен соответствующей цели. Теперь следует подключить созданный диск к целевой системе. Можно воспользоваться функцией быстрого подключения, тогда все диски цели будут подключены с параметрами по умолчанию, что не всегда правильно. Поэтому перейдите на закладку Обнаружение и нажмите кнопку Обнаружить портал:
Возвращаемся на закладку Конечные объекты и выполняем ручное подключение найденных дисков, при этом, нажав на кнопку Дополнительно, можно самостоятельно настроить параметры подключения, например, выбрать сетевой адаптер, обслуживающий сеть SAN.
Если вам потребуется изменить параметры подключения уже подключенного объекта, то его следует отключить и подключить заново. После выполнения всех этих действий подключенное устройство будет обнаружено системой как еще один локальный диск и последующая работа с ним ничем не отличается от работы с обычным жестким диском.
iSCSI — это сетевой протокол для работы с системами хранения данных (СХД). Он позволяет взаимодействовать по сети с различными системами хранения данных. В упрощенном виде она состоит из следующих частей:
- iSCSI-target (таргет) — это ресурс, к которому осуществляется доступ посредством протокола iscsi
- iSCSI-initiator (инициатор) — это хост который инициирует (устанавливает) iSCSI-соединение
- IQN (iSCSI Qualified Name) — это полный уникальный идентификатор устройства iSCSI, однозначно определяющий данное устройство (есть и у таргета и у инициатора)
Такая система хранения данных может быть организована на практически любой ОС, так как строится на логическом уровне и не требует обязательного наличия специальных устройств хранения данных (дисков, дисковых контроллеров). В большинство ОС эта функция уже включена, и может быть достаточно легко активирована.
Не является исключением и ОС Windows, где компоненты iSCSI являются дополнительными компонентами системы.
Установка iSCSI-таргета.
Для создания таргета нам необходимо через мастер добавления ролей и компонентов диспетчера серверов добавить роль “Сервер цели iSCSI” из раздела “Файловые службы и службы хранилища”.
Для этого необходимо нажать комбинацию клавиш Win-R и в командную строку ввести compmgmt.msc.
Далее запустить мастер установки ролей и компонентов нажав кнопку “добавить роли и компоненты”.
Откроется страница приветствия. Можно просто нажать “Вперед”, а также поставить галочку “Пропускать эту страницу по умолчанию”, если вы не хотите постоянно видеть эту страницу при запуске мастера установки ролей и компонентов, так как эта страница чисто информационная.
После этого, ОС задаст уточняющий вопрос.Выберем установку ролей и компонентов.
Укажем на какие сервера устанавливать роли и компоненты. Выберем интересующий нас сервер и нажмем далее.
Выбираем необходимые из списка ролей сервера. Надо раскрыть Файловые службы и поставить галочку “Сервер цели iSCSI”.
Установка дополнительных компонентов — добавляем нажатием соответствующей кнопки.
После этого выбранная роль отметится галочкой и можно переходить к следующему этапу нажатием кнопки “Далее”.
Установку компонентов можно пропустить, так как они нам в данный момент не нужны, нажав кнопку далее.
После этого, предупреждение о готовности роли к установке. Нажимаем “Установить”. Можно также поставить галочку “Автоматический перезапуск конечного сервера, если требуется” чтобы не перезапускать сервер вручную. Следует иметь ввиду, что нажатие этой галочки перезапускает конечный сервер после установки без дополнительных предупреждений, поэтому используйте ее с осторожностью.
После нажатия кнопки установить запустится процесс установки, можно закрыть это окно нажатием соответствующей кнопки. Следует иметь ввиду что это действие не отменяет процесс установки, а только скрывает текущее окно.
Заходим последовательно в “Диспетчер серверов”-”Файловые службы и службы хранилища”-”Тома”-”Диски”.
Выбираем на каком томе будет храниться наш таргет и в контекстном меню пустого тома выбираем “Создать виртуальный диск iSCSI”.
На первой странице еще раз определяем том на котором будет храниться таргет.
Задаем имя и по желанию описание нашего диска и жмем далее.
Вводим размер диска и определяем как будет выделяться под него пространство — сразу или динамически. Доступный размер под iSCSI-диск показан в самом верху.
Определяем создавать ли новый таргет или присоединить диск к существующему (если они есть).
Задаем имя и описание нового таргета.
Выбираем инициаторы которым можно подключаться к данному таргету (может быть переопределено) посредством кнопки “добавить”. Можно добавить инициаторы через поиск, выбрать из кеша, если ранее инициаторы уже подключались или задать вручную через IQN, DNS-имя, ip или mac-адрес. Как минимум один инициатор должен быть задан. Введем например IQN вручную.
Нам стала доступна кнопка далее.
Можно включить дополнительную проверку подлинности если это необходимо (например таргет публикуется в сети интернет).
На последнем шаге выводится сводная информация по таргету. Проверяем и нажимаем “Создать”.
Начнется процесс создания таргета.
После этого можно подключаться к данному таргету инициатором, заданным на этапе создания.
Установка компонента Multipath I/O
MPIO в Windows Server 2012 является дополнительным компонентом (Feature) и по умолчанию неактивен. Установить его можно из оснастки Server Manager, запустив мастер добавления ролей и компонентов и выбрав компонент Multipath I/O.
Также для включения MPIO мы можем воспользоваться PowerShell. Сначала проверяем состояние компонента:
Get-WindowsOptionalFeature -Online -FeatureName MultiPathIO
И если он неактивен (disabled), устанавливаем его:
Enable-WindowsOptionalFeature -Online -FeatureName MultiPathIO
Включение MPIO для iSCSI
Сама по себе установка компонента еще не означает, что система определит диски правильно. Поэтому следующим шагом является включение MPIO для iSCSI, для чего нам понадобится оснастка MPIO. Для ее запуска в Server Manager открываем меню Tools и выбираем пункт MPIO, либо нажимаем Win+R и вводим команду mpiocpl.exe.
Для включения поддержки MPIO для устройств iSCSI переходим на вкладку «Discover Multi-Paths», отмечаем чекбокс «Add support for iSCSI devices» и жмем кнопку Add.
После чего перезагружаем сервер.
Настройка MPIO для iSCSI
Теперь, когда MPIO включен и доступен для использования, приступим к подключению iSCSI устройств. Открываем оснастку iSCSI Initiator, переходим на вкладку «Discovery», жмем кнопку «Discover Portal» и вводим один из IP-адресов (любой) сервера SRV2, на котором запущен iSCSI Target.
Переходим на вкладку Targets, выбираем наш таргет и жмем «Properties» для перехода к его свойствам.
В свойствах откроем вкладку «Portal Groups», на которой отображены все доступные пути до выбраного таргета. Выберем два из них.
Теперь переходим на вкладку «Sessions» и жмем на кнопку «Add session».
Отмечаем чекбокс «Enable multi-path» и жмем «Advanced» для перехода к дополнительным настройкам.
В дополнительных настройках в поле «Initiator IP» выбираем адрес локального интерфейса, а в поле «Target portal IP» — соответствующий адрес iSCSI-сервера. Как видите, оба IP находятся в одной подсети. Таким образом мы определяем путь, по которому будет производиться подключение к iSCSI Target на SRV2. Жмем OK, затем таким же способом добавляем второй путь.
Теперь надо сконфигурировать диск iSCSI для использования MPIO. Возвращаемся на вкладку «Sessions», выбираем обе сессии и жмем кнопку «Devices».
В списке у нас одно устройство — Disk 1. Выбираем его и жмем кнопку MPIO.
Здесь нам надо настроить политику использования путей. Выбирать можно из следующих вариантов:
• Fail Over Only — используется только один путь, указанный в качестве основного (active), остальные пути находятся в режиме ожидания (standby). При недоступности основного пути все подключения переводятся на резервный путь. Как только основной путь становится доступен, все подключения возвращаются обратно на основной путь;
• Round Robin — все возможные пути используются по очереди, для балансировки нагрузки;
• Round Robin with Subset — можно указать несколько основных путей, используемых как в предыдущем режиме Round Robin, а также один или несколько дополнительных путей. Пока доступен хотя бы один из основных путей, система использует их в режиме Round Robin. Если же ни один из основных путей недоступен, то используются дополнительные пути в порядке уменьшения приоритета. Когда восстанавливается работоспособность хотя бы одного из основных путей, система возвращается в режим балансировки.
• Least Queue Depth — запросы направляются на тот путь, который в данный момент имеет наименьшее число запросов в очереди;
• Weighted Paths — для каждого пути назначается некий вес (или стоимость), которая обозначает приоритет использования данного пути. Чем больше вес, тем ниже приоритет, соответственно для операций выбирается доступный путь с наименьшим приоритетом;
• Least Blocks — все запросы направляются на тот путь, в очереди которого на передачу стоит наименьшее число блоков данных.
Для обеспечения отказоустойчивости выберем самый простой вариант — политику Fail Over Only.
Кроме того, выбрав путь и кликнув на «Details» можно посмотреть подробности этого подключения.
А по кнопке «Edit» — выбрать активный путь (для Fail Over Only) или указать вес пути (для Weighted Paths).
Настройка MPIO с помощью PowerShell
Управлять MPIO можно и с помощью PowerShell, где для этого есть специальный модуль. Выведем все командлеты этого модуля командой:
Get-Command -Module MPIO
Так например можно включить MPIO для iSCSI:
Enable-MSDSMAutomaticClaim -BusType iSCSI
Так настроить политику Fail Over Only :
Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy FOO
А вот так посмотреть все доступные для MPIO устройства iSCSI:
Get-MPIOAvailableHW -BusType iSCSI
Также стоит упомянуть о дополнительных параметрах MPIO, доступных из консоли PowerShell. Вывести их можно командой Get-MPIOSetting. Это настройки таймера, которые отвечают за таймауты при переключении:
• PathVerificationState — определяет, нужна ли проверка доступности пути;
• PathVerificationPeriod — указывает время в секундах, в течение которого сервер будет проверять каждый путь. Этот параметр действует только при включенном параметре PathVerificationState;
• PDORemovePeriod — задает время в секундах, по истечении которого физическое устройство будет полностью удалено, если все пути к устройству недоступны;
• RetryCount — задает количество повторов запроса вводавывода;
• RetryInterval — задает период времени, по истечении которого сервер повторяет попытку запроса вводавывода;
• UseCustomPathRecoveryTime — указывает, задавать ли вручную период восстановления. Если этот параметр отключен, то используется удвоенное значение PDORemovePeriod;
• CustomPathRecoveryTime — задает период времени в секундах, по истечении которого выполняется попытка восстановления подключения. Этот параметр действует только при включенном UseCustomPathRecoveryTime;
• DiskTimeoutValue — указывает, сколько времени должен ожидать сервер перед тем, как считать запрос вводавывода к диску истекшим.
В большинстве случаев эти параметры можно оставить без изменения, однако в некоторых ситуациях для получения оптимальной производительности может потребоваться их изменить. К примеру, если используется отказоустойчивый кластер и балансировка нагрузки по нескольким путям, то уменьшение таймаута может ускорить переключение между узлами. И наоборот, для одиночного сервера некоторые из значений можно увеличить, для обеспечения большей надежности.
Для изменения этих параметров воспользуемся командой Set-MPIOSetting. Для примера изменим таймаут переключения диска:
Set-MPIOSetting -NewDiskTimeout 30
Напомню, что при изменении параметров MPIO может потребоваться перезагрузка сервера.