Microsoft iscsi software target
Содержание
- Системные требования Microsoft ISCSI Target
- Установка iSCSI Target 3.3
- Создаем хранилище
- Создаем iSCSITarget
Начну из далека. Как часто вы встречаете организации использующие Подключение к удаленному рабочему столу как основной способ работы в офисе? Я стал встречать такие все чаще и мое личное мнение — это удобно! Удобно для сотрудников, удобно для системных администраторов, а самой компании это позволяет сократить IT расходы. А нередко это даже необходимость для комфортной многопользовательской работы в некоторых программах (пример — ПО 1С).
А как часто вы видите что в качестве клиентов используются обычные себе полноценные ПК, иногда даже вполне производительные и для локальной работы.
Разговор будет о замечательной технологии iSCSI, и как мы её можем использовать чтобы уменьшить совокупную стоимость владения, и поможет тем кто хочет познакомиться с технологией поближе.
Вики гласит:
iSCSI (англ. Internet Small Computer System Interface) — протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами.
Для понимания происходящего определимся с терминологией:
iSCSI Target: (Цель iSCSI) — программа или аппаратный контроллер (HBA), осуществляющие эмуляцию диска и выполняющие запросы iSCSI. подробнее
iSCSI Initiator: (Инициатор iSCSI) — Клиентская программа или аппаратный контроллер, который взаимодействует с iSCSI Target.
IQN: (iSCSI Qualified Name) — Уникальный идентификатор (имя) iSCSI Target’a или iSCSI Initiator’а.
LUN: (Logical Unit Number) — Адрес блочного устройства в диапазоне 0-127. подробнее
Инициатор iSCSI
Прелесть в том, что Windows 7, Windows Server 2008 и всё что старше умеют устанавливаться напрямую на iSCSI target. Проблема только в том, как инициализировать удаленное блочное устройство при включении ПК.
Все современные сетевые карты умеют работать по технологии PXE, а вот с iSCSI дружат только дорогущие серверные сетевые карты например intel
Однако есть как минимум два знакомых мне open source проекта gPXE и iPXE, последний, к слову, форк первого, с немного доработанной системой вывода ошибок и несколькими дополнительными опциями.
Лично я использую gPXE, я его нашел первым, к тому-же у них на сайте есть очень удобный генератор rom-o-matic
Есть много способов как загрузиться через gPXE. Для рабочего варианта я вшивал её ROM вместо PXE загрузчика в BIOS метеринки. Рисковый вариант, можно остаться без материнки, забегая вперед это позволит уменьшить время загрузки на
Расскажу лучше о простом и безопасном для оборудования способе под названием PXE chainloading подробно (англ.) . Суть такова — с помощью PXE загрузчика загружаем gPXE, который в свою очередь выступает iSCSI инициатором и передает управление диску. Для этого нам нужен TFTP сервер (я не стал прибегать к стороннему софту, сделал как тут) и правильная настройка DHCP сервера.
Вот так выглядит DHCP параметры у меня:
Обратите внимание на параметр 175 gPXE_Options, инкапсулированное значение 08 01 01 ff означает опцию keep_san = 1, которая заставляет gPXE не удалять регистрацию диска в случае неудачной загрузки с него (это необходимо для установки операционной системы).
В параметре 017 Корневой путь самый просто синтаксис будет iscsi: .
Настройки iSCSI инициатора на этом закончены.
Цель iSCSI
Настройки цели крайне простые и интуитивные.
Создаём новое или импортируем существующий VHD диск:
Далее создаём цель:
Добавляем созданный или импортированный ране диск:
На этом настройка цели почти закончена. Осталось только добавить IQN(или любой другой тип индификатора: MAC, IP) инициатора(ов) который имеет доступ к этой цели.
Если после этого при загрузке клиентского ПК в gPXE промелькнут надписи:
Registered as BIOS drive 0x80
Booting from BIOS drive 0x80
Значит у нас получилось. И можно приступать к установке ОС.
Установка ОС или Epic Fail
Уже с ностальгией вспоминаю тот момент, когда первый раз я дошел до этого этапа и… поначалу меня постигало кучу разочарований. Забегая вперед скажу, что причиной многому была неудачная материнская плата GYGABYTE GA-425TUD.
Что же я увидел когда дошел до пункта выбора диска? Верно. Ничего. Подумал, ага, надо подгрузить сетевые драйвера. Аномально долгий поиск
30 — 40 минут на пустой флешке, куда были переписаны исключительно дрова для нужной сетевухи, заставлял меня думать что ОС виснет и раз 5-10 я так и не дожидался окончания поиска, выключал, перезагружал, менял опции gPXE. Так сложилось, что однажды я таки дождался пока драйвера были найдены, и радовался как ребенок обнаружив что в меню выбора появился так желанный мне диск.
Радость тут-же омрачилась тем что ОС сообщила мне о невозможности установиться на этот диск и любезно попросила меня проверить включен ли в моём BIOS контроллер этого диска.
Решение было найдено довольно быстро вот тут в самом низу. Если коротко то ребята советовали включать/выключать SATA контроллер, менять режим его работы IDE, ACHI и даже попробовать подключить реальный диск на время установки, но установку проводить на iSCSI диск. Для меня сработало подключение реального диска в режиме ACHI. Теперь установка пошла на iSCSI диск без проблем. Однако после перезагрузки ОС (один из этапов установки) я постоянно ловил BSOD на classpnp.sys.
Причина до сих пор мне не совсем понятна.
Большими усилиями была найдена зацепка
Решением стало отключение LWF фильтра в ОС на сетевухе.
В этом варианте у меня заработало даже на проблемной материнке.
После этого я пробовал еще 2 или 3 материнки, установка проходила гладко изначально (нужно было лишь подгрузить сетевые драйвера).
Тесты
Интересно на сколько будет заметно что мой HDD где-то там в 100 метрах от меня? На глаз вообще не отличить! Но я даже не надеялся что вы поверите моему глазу по этому приведу результаты тестов.
Наши герои:
Seagate ST500DM002 — будет работать локально, как у людей ;D
iSCSI SSD Patriot 128 PYROSE — на сервере, будет работать через iSCSI, сетевой канал 1ГБ.
iSCSI RAID 10 4xSeagate ST500DM002 — на сервере, будет работать через iSCSI, сетевой канал 1ГБ.
(Локальный)Seagate ST500DM002
iSCSI SSD Patriot 128 PYROSE
iSCSI RAID 10 4xSeagate ST500DM002
Свод и выводы
На мой взгляд вполне заслуживающая внимания технология, как видно из тестов даже на 1ГБ сети имеет хороший КПД. При текущих ценах на HDD позволит экономить как минимум 2500р с рабочей станции и облегчает задачу резервирования данных. У меня в организации все сотрудники работают в терминале, еще вот открыли учебный класс на 8 рабочих мест, именно там в качестве теста я и внедрял эту технологию.
В этой статье поговорим о технологии, позволяющей программными средствами из обычного сервера Windows создать сетевую систему хранения наподобие SAN и позволяющей различным сетевым клиентам использовать дисковые ресурсы этого сервера по протоколу iSCSI. Для реализации такой технологии Microsoft поддерживает специальный бесплатный компонент — Microsoft iSCSI Software Target 3.3 (последняя версия на момент написания статьи). Даная технология может использоваться для построения недорогих кластерных систем с единым дисковым хранилищем, для использования в системах виртуализации (со всеми вкусностями, такими как Live Migration — LM и High Availability –HA) без необходимости покупать дорогие устройства Fiber Channel SAN или аппаратные iSCSI сервера.
Скачать Microsoft iSCSISoftware Target 3.3 можно с сайта Microsoft по ссылке http://www.microsoft.com/downloads/en/details.aspx?Family
Системные требования Microsoft ISCSI Target
Данная версия iSCSI Software Target поддерживает установку на следующие операционные системы
- Windows Server 2008 R2 Standard
- Windows Server 2008 R2 Enterprise
- Windows Server 2008 R2 Datacenter
И требует наличия процессора не менее 1GHz и не менее 2GB оперативной памяти.
Отметим, что не поддерживается установка на Windows 2008 Server Core и бесплатный Microsoft Hyper-V Server 2008 R2, они могут выступать только в качестве клиентов iSCSI Initiator .
Программный продукт iSCSI Target состоит из двух компонент: сервера (в терминологии ISCSI – Target) и клиента (initiator — инициатора)
В этой части статьи мы поговорим об установке и настройке серверной части программного iSCSI (iSCSI), во второй части о настройке клиента iSCSI (инициатора), который будет использовать дисковые ресурсы сервера.
Установка iSCSI Target 3.3
После того, как вы скачали пакет. Необходимо его распаковать, в результате у нас появятся 2 файла:
Для установки серверной части (Target) необходимо запустить файл iscsitarget_public.msi. Мастер установки крайне прост:
После нажатия кнопки Finish, считаем, что компонент установлен.
Утилиту управления iSCSI target можно открыть из стартового меню (Microsoft iSCSI Software Target).
Следующие этапы настройки iSCSI target – заключаются в создании устройства виртуального диска (в терминах сетей хранения LUN), и создании Target –а, к которому будут подключаться клиенты для получения доступа к виртуальному диску.
Создаем хранилище
В консоли правой кнопкой мыши щелкаем по Devices и выбираем пункт ”Create Virtual Disk”.
Указываем местоположение и имя виртуального диска (они храниться в формате vhd).
Укажем размер диска.
В результате в списке виртуальных устройств появится новый виртуальный диск.
Создаем iSCSITarget
iSCSI target по сути – это ссылка для клиента, которая поможет найти ему устройство хранения (созданный ранее виртуальный диск). Щелкнем правой кнопкой по элементу iSCSI Targets и выберем ”Create iSCSI Targets”.
Укажем осмысленное имя:
Далее можно указать каким серверам можно подключаться к данному Target-у. Мы настроим этот параметр позднее. Нажмем Next и Finish.
Чтобы перейти к тонкой настройке выберете созданный вами Target и перейдите в его свойства.
Добавим ранее созданный виртуальный диск (вкладка Virtual Disks).
Далее на вкладке iSCSI Initiators укажем каким клиентам (их IQN) можно подключаться к нашему Target-у (мы ранее пропустили этот шаг).
Вот и все мы настроили iSCSI сервер (target) на Windows Server 2008 R2. В следующей статье поговорим о том, как настраиваются клиенты iSCSI (инициаторы).
Internet Small Computer System Interface (iSCSI) — это протокол передачи данных, предназначенный для обмена данными между серверами и системами хранения данных (Storage Area Network, SAN). iSCSI представляет из себя комбинацию протокола SCSI и стека протоколов TCP/IP и предназначен для передачи блоков данных через сети Ethernet. Управляющие команды SCSI передаются внутри IP-пакетов, а протокол TCP обеспечивает управление потоком и надежность передачи данных.
При использовании iSCSI данные между сервером и системой хранения передаются блоками, в необработанном виде. Это позволяет использовать SAN практически так же, как если бы они были подключены к серверу напрямую, а не по сети. Хост-система может создавать на SAN логические разделы, форматировать их и использовать как обычные локальные жесткие диски. В этом заключается основное отличие SAN от сетевых хранилищ (Network Area Storage, NAS), которые работают на уровне файловой системы и используют протоколы передачи файлов, такие как SMB или CIFS.
Технология iSCSI была разработана как более дешевая альтернатива Fibre Channel (FC). Системы на базе iSCSI поддерживают стандартные протоколы и могут быть построены на базе любой существующей сетевой инфраструктуры, поддерживающей протокол IP. Для работы iSCSI может использовать самые обычные сетевые устройства (коммутаторы, маршрутизаторы, сетевые адаптеры и т.п), тогда как для FC требуются специальные HBA-адаптеры, оптические кабеля и прочее дорогостоящее оборудование.
Архитектура iSCSI является клиент-серверной и включает в себя следующие компоненты:
iSCSI Initiator — клиентский компонент, который отправляет запросы на подключение компоненту iSCSI Target, находящемуся на стороне сервера. Инициатор может быть реализован программно, в виде драйвера, либо аппаратно, в виде специального iSCSI адаптера.
iSCSI Target — серверный компонент, слушающий клиентские запросы и обеспечивающий установку соединения между клиентом и сервером iSCSI. Кроме того, таргет связан с виртуальными дисками iSCSI, и после установки соединения все виртуальные диски, связанные с этим таргетом, становятся доступны через инициатор. В качестве iSCSI Target может выступать как специализированная СХД, так и обычный Windows сервер с установленной ролью iSCSI Target.
Виртуальные диски iSCSI — используются для разбиения дискового пространства на логические разделы (Logical Unit Number, LUN). В Windows Server 2012 iSCSI LUN представляют из себя обычные виртуальные диски формата VHDVHDX. Кстати, в Windows Server 2012 для iSCSI поддерживался только формат VHD, что ставило ограничение в 2ТБ на максимальный размер LUN. В Windows Server 2012 R2 используется формат VHDX, что позволяет создавать LUN-ы размером до 64ТБ.
А теперь остановимся и уточним некоторые моменты:
• На каждом iSCSI сервере может быть один или несколько iSCSI Target;
• Каждый iSCSI Target может быть подключен к одному или нескольким виртуальным дискам;
• Каждый iSCSI Target может обслуживать одно или несколько подключений от iSCSI Initiator;
• В свою очередь, каждый iSCSI Initiator может подключаться к одному или нескольким iSCSI Target и, следовательно, к одному или нескольким виртуальным дискам.
Кроме того, в Windows Server 2012 поддерживается loopback-конфигурация, в которой и Target и Initiator могут находиться на одном и том же сервере.
В операционных системах Microsoft поддержка iSCSI появилась довольно давно. Первая версия Microsoft iSCSI Initiator устанавливалась в качестве отдельного компонента в Windows 2000, Windows XP SP2 и Windows Server 2003 SP1, а начиная с Windows Server 2008 и Vista iSCSI Initiator был встроен в операционную систему.
Что касается iSCSI Target, то изначально он входил в специальную версию серверной ОС Windows Data Storage Server 2003, которая была предназначена для построения систем хранения и поставлялась только в предустановленом виде. Однако с 2011 года компонент Microsoft iSCSI Software Target 3.3 стал доступен для загрузки и установки на Windows Server 2008R2, а в Windows Server 2012 он полностью интегрирован в систему и устанавливается в качестве роли сервера.
На этом закончим теоретическую часть и приступим к практике. Для настройки возьмем самый простой вариант, в качестве подопытных используем два сервера с установленной Windows Server 2012 R2: SRV2 для роли iSCSI Target и SRV3 для iSCSI Initiator.
Запуск службы iSCSI Initiator
Для начала проверим состояние службы инициатора на SRV3. Для этого открываем Server Manager и в меню Tools выбираем пункт iSCSI Initiator.
Как видите, по умолчанию служба не запущена. Нажав на Yes в диалоговом окне, мы стартуем службу iSCSI Initiator и поставим ее в режим автоматического запуска.
Затем в окне свойств переходим на вкладку Configuration и запоминаем значение IQN, оно пригодится нам при настройке сервера.
IQN (iSCSI qualified name) — это уникальный идентификатор, назначаемый для каждого iSCSI Target и Initiator. IQN формируется из даты (месяц и год) регистрации домена, официального имени домена, написанного в обратном порядке и любого произвольного имени, например имени сервера. Получается примерно так: iqn:1991-05.com.microsoft:srv3.contoso.com
Стартовать сервис iSCSI Initiator и установить режим его запуска можно и из консоли PowerShell, следующими командами:
Start-Service msiscsi
Set-Service msiscsi -StartupType automatic
Установка роли iSCSI Target Server
Теперь перейдем на SRV2 и приступим к настройке серверной части. Первое, что нам надо сделать — это установить на сервер роль iSCSI Target. Открываем Server Manager, переходим по ссылке Add roles and features
И выбираем роль iSCSI Target Server, которая находится в разделе File and Storage ServicesFile and iSCSI Services.
Либо воспользуемся командой PowerShell:
Install-WindowsFeature -Name FS-iSCSITarget-Server
Подготовка диска
Теперь подготовим физический диск, который будет использоваться для хранения виртуальных iSCSI дисков. Специально для этой цели к серверу подключен новый жесткий диск размером 120Гб. На данный момент диск неактивен (Offline). Для его активации в Server Manager переходим в раздел File and Storage Services — Disks, кликаем на диске и переводим его в Online.
Теперь на этом диске надо создать новый раздел (или том), для чего в контекстном меню выбираем пункт New Volume.
Выбираем физический диск, на котором будет создаваться том
указываем размер тома
и выбираем букву диска.
Затем выбираем для диска файловую систему, размер сектора и указываем метку тома. Здесь напомню, что виртуальные диски iSCSI можно создавать только на томах NTFS, новая файловая система ReFS (Resilient File System) не поддерживается.
Смотрим суммарную информацию, и если все правильно, то жмем Create, запуская создание тома.
Те же действия можно проделать с помощью PowerShell. Находим нужный диск:
Переводим его в online:
Set-Disk -Number 1 -IsOffline $false
Initialize-Disk -Number 1
New-Partition -DiskNumber 1 -UseMaximumSize -DriveLetter D
И форматируем его в NTFS:
Format-Volume -DriveLetter D -FileSystem NTFS -NewFileSystemLabel ″iSCSI Storage″
Создание виртуальных дисков iSCSI
Следующим пунктом нашей программы идет создание виртуальных iSCSI дисков. Для этого переходим в раздел iSCSI и кликаем по ссылке, запуская очередной мастер.
Выбираем том, на котором будет храниться виртуальный диск.
Даем диску имя и описание.
Указываем размер виртуального диска и его тип. Выбирать можно из трех вариантов:
• Fixed size (фиксированного размера) — создаваемый диск сразу занимает весь выделенный объем. Это наиболее производительный, но наименее экономичный вариант;
• Dynamically expanding (динамически расширяемый) — изначально создается диск минимального размера, который затем динамически изменяется в зависимости от количества записанных на него данных. Наилучший вариант в плане использования дискового пространства;
• Differencing (разностный) — в этом варианте нужно указать расположение родительского диска, с которым будет связан создаваемый диск. Разностный диск может быть как фиксированным, так и динамическим, в зависимости от типа родителя. У этого типа дисков есть свои преимущества, но использовать их для iSCSI лично я особого смысла не вижу.
Теперь нужно указать iSCSI Target, к которому будет подключен данный диск. Поскольку на сервере не создано ни одного таргета, выбираем New iSCSI target.
Даем таргету имя и описание.
И указываем сервера, которые могут получить к нему доступ.
При выборе серверов можно воспользоваться двумя способами. Если инициатор находится на Windows Server 2012 или Windows 8, то можно просто нажать Browse и выбрать нужный сервер из списка. Для более старых систем надо вручную ввести идентификатор сервера. В качестве идентификатора можно указать IQN инициатора, DNS имя или IP-адрес сервера, либо MAC-адрес сетевого адаптера.
Идем дальше. На следующей странице можно настроить аутентификацию по протоколу CHAP между серверами. CHAP (Challenge Handshake Authentication Protocol) — это протокол для проверки подлинности партнера по подключению, основанный на использовании общего пароля или секрета. Для iSCSI можно задействовать как одностороннюю, так и двухстороннюю (reverse) проверку подлинности CHAP.
Проверяем правильность настроек и запускаем создание диска.
Попробуем сделать все то же с помощью PowerShell. Создадим еще один виртуальный iSCSI диск на 20ГБ командой:
New-IscsiVirtualDisk -Path D:iSCSIVirtualDisksiSCSI2.vhdx
Обратите внимание, что по умолчанию создается динамический диск, для создания VHD фиксированного размера надо воспользоваться ключом -UseFixed.
Теперь создаем второй iSCSI Target c именем iscsi-target-2 и в качестве сервера доступа укажем IQN SRV3:
New-IscsiServerTarget -TargetName iscsi-target-2 -InitiatorIds ″IQN:iqn.1991-05.com.microsoft:srv3.contoso.com″
И проверим результат командой:
Get-IscsiServerTarget | fl TargetName, LunMappings
Подключение
Возвращаемся на SRV3, открываем окно свойств инициатора, переходим на вкладку Discovery и жмем кнопку Discover Portal.
Вводим имя или IP-адрес портала и жмем ОК.
По умолчанию iSCSI использует все доступные IP-адреса, и если вы хотите, чтобы трафик iSCSI шел только через определенный сетевой интерфейс, то надо перейти в расширенные настройки и в поле Connect using указать нужный IP.
Теперь переходим на вкладку Targets, где должны отобразиться все доступные для подключения iSCSI Target. Выбираем нужный таргет и жмем Connect.
Не забудьте отметить чекбокс Add this connection to the list of Favorite Targets, который обеспечивает автоматическое подключение к таргету при выключении или перезагрузке машины.
Подключение состоялось, и если открыть оснастку управления дисками, то там появится новый диск. Дальше с этим диском поступаем так же, как с обычным жестким диском, подключенным локально — переводим в Online, инициализируем, создаем на нем разделы и форматируем.
То же самое можно выполнить с помощью PowerShell. Выводим список доступных таргетов:
И подключаемся к нужному:
Connect-IscsiTarget -NodeAddress ″iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target″ -IsPersistent $true
Ключ -IsPersistent $true обеспечивает автоматическое подключение при выключении или перезагрузке.
Ну и для отключения можно воспользоваться командой Disconnect-IscsiTarge, вот так:
Disconnect-IscsiTarget -NodeAddress ″iqn.1995-05.com.microsoft:srv2-iscsi-target-2-target″ -Confirm:$false
Заключение
На этом настройка завершена. Как я говорил, это самый простой, базовый вариант настройки хранилища. В iSCSI имеется еще много интересных возможностей. Например, можно использовать службу имен iSCSI (iSNS) для простоты управления, многопутевой ввод-вывод (MPIO) для обеспечения отказоустойчивости, а для безопасности настроить аутентификацию по протоколу CHAP и шифрование трафика с помощью IPSec. О некоторых из этих фич я планирую написать в следующих статьях.
И в заключение важные моменты, которые надо учесть при организации системы хранения iSCSI:
• Развертывать iSCSI желательно в быстрой сети, не ниже Gigabit Ethernet;
• Сетевой трафик iSCSI рекомендуется отделить от остального трафика и вынести в отдельную сеть, например с помощью VLAN или физического разделения на подсети;
• Для обеспечения высокой доступности на сетевом уровне необходимо использовать технологию MPIO, либо сеансы с несколькими подключениями (MCS). Объединение сетевых адаптеров (NIC Teaming) для подключения к устройствам хранения iSCSI не поддерживается;
• При использовании технологии Storage Spaces можно хранить виртуальные диски iSCSI на Storage Spaces, но нельзя использовать LUN-ы iSCSI для создания Storage Spaces;
• Для хранения виртуальных дисков iSCSI нельзя использовать общие кластерные тома CSV (Cluster Shared Volume).
Источник: