Я довольно часто использую бесплатный гипервизор hyper-v от Microsoft. Бесплатная редакция основана на core версии сервера. Это доставляет некоторые неудобства в решении стандартных задач, о которых даже не задумываешься во время работы на полноценной версии сервера с графическим интерфейсом. Одной из таких задач было добавление диска через iSCSI.

Онлайн-курс Data Engineer – для разработчиков, администраторов СУБД и всех, кто стремится повысить профессиональный уровень, освоить новые инструменты и заниматься интересными задачами в сфере работы с большими данными. Курс не для новичков – нужно пройти.

В стандартной версии сервера с GUI это делается просто через панель управления. Там есть отдельный раздел для этого.

Есть еще в разделе администрирования оснастка для этих же целей. А что делать, если у вас нет GUI? Решение есть и достаточно простое.

Первым делом нам надо запустить службу Microsoft iSCSI Initiator Service и установить тип запуска «Автоматически»

Делается это с машины, на которой настроены оснастки управления Hyper-V. Подробнее об этом читайте в статьях:

Принцип настройки один и тот же в обоих случаях. После этого подключаемся к гипервизору по rdp и запускаем в командной строке:

Iscsicpl

Откроется оснастка управления iSCSI Initiator .

Дальше стандартным образом подключаете источник и работаете с ним. Чтобы инициализировать подключенный диск, необходимо использовать оснастку управления дисками. Запускаете ее с того же компьютера, на котором стоят оснастки управления Hyper-V.

Онлайн курс "DevOps практики и инструменты"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по.

Всем привет сегодня хочу рассказать как подключить ISCSI диск из Windows Server 2008 R2 в Windows Server или в обычный десктопный Windows. Для реализации этой задачи вы должны были установить ISCSI сервер в Windows Server 2008 R2 . Давайте приступим к поставленной задаче. В роли компьютера куда мы будем подключать iscsi диск, выступает сервер с W2012 R2. Первое что нужно выяснить, это iqn значение нашего сервера. Для этого вам нужно зайти в iscsi инициатор и посмотреть его.

Щелкаем по пуску правым кликом и выбираем панель управления

Переходим в Администрирование

Вас предупредят что служба ISCSI не запущена, хотите ли вы ее запускать автоматом жмем Да.

Переходим на вкладку конфигурация, где мы видим iscsi iqn в поле имя инициатора

Задаем имя и описание

Видим, что нужно заполнить идентификатор IQN

Вводим полученный ранее iqn с сервера куда будет подключаться диск.

Теперь вам нужно создать iscsi диск , после чего подключим его к созданному ранее инициатор iscsi, щелкаем по нему правым кликом и выбираем Добавить существующий виртуальный диск

Выбираем ваш виртуальный диск, у меня это 10 гигабайтный диск.

Все мы соединили все составляющие, перейдем на сервер где будем производить подключение iscsi диска и перейдем инициатор на вкладку Обнаружение, жмем кнопку Обнаружить портал

Вводим ip адрес или dns имя вашего сервера хранилища и порт, по умолчанию iscsi порт 3260.

Все сервер добавлен.

Теперь переходим на вкладку конечные объекты, видим, что определился диск и он в состоянии неактивно, жмем подключить.

Жмем ок для подключения, но я советую еще посмотреть более тонкие настройки

Если у вас до iscsi windows server 2008 r2, несколько путей, то советую включить поддержку многопутевых накопителей

Посмотрим дополнительные настройки, вы можете указать точный ip-адрес инициатора, это если их несколько, по сути это нужно если надо пустить трафик через него. И полезным будет явное указание ip-адреса конечного портала (сервера). Про защиту iscsi почитайте тут.

Теперь нам нужно инициализировать диск в Windows, для этого идем в оснастку Управление дисками.

видим, что диск в offline

Делаем его в сети

Инициализируем диск

Создаем простой том

Задаем размер

Задаем букву

Форматируем в нужную файловую систему

Abstract: как работает open-iscsi (ISCSI initiator в linux), как его настраивать и чуть-чуть про сам протокол ISCSI.

Лирика: В интернете есть множество статей довольно хорошо объясняющих, как настроить ISCSI target, однако, почему-то, практически нет статей про работу с инициатором. Не смотря на то, что target технически сложнее, административной возни с initiator больше - тут больше запутанных концепций и не очень очевидные принципы работы.

ISCSI

Перед тем, как рассказать про ISCSI - несколько слов о разных типах удалённого доступа к информации в современных сетях.

NAS vs SAN

Существует два метода доступа к данным, находящимся на другом компьютере: файловый (когда у удалённого компьютера запрашивают файл, а какими файловыми системами это сделано - никого не волнует), характерные представители NFS, CIFS (SMB); и блочный - когда у удалённого компьютера запрашивают блоки с дискового носителя (аналогично тому, как их читают с жёсткого диска). В этом случае запрашивающая сторона сама себе делает на блочном устройстве файловую систему, а сервер, отдающий блочное устройство, знать не знает про файловые системы на нём. Первый метод называют NAS (network attached storage), а второй - SAN (storage area network). Названия вообще указывают на другие признаки (SAN подразумевает выделенную сеть до хранилищ), но так сложилось, что NAS - это файлы, а SAN - это блочные устройства по сети. И хотя все (?) понимают, что это неправильные названия, чем дальше, тем больше они закрепляются.

scsi over tcp

Одним из протоколов доступа к блочным устройствам является iscsi. Буква "i" в названии относится не к продукции эппл, а к Internet Explorer . По своей сути это "scsi over tcp". Сам протокол SCSI (без буквы "i") - это весьма сложная конструкция, поскольку он может работать через разные физические среды (например, UWSCSI - параллельная шина, SAS - последовательная - но протокол у них один и тот же). Этот протокол позволяет делать куда больше, чем просто «подтыкать диски к компьютеру» (как это придумано в SATA), например, он поддерживает имена устройств, наличие нескольких линков между блочным устройством и потребителем, поддержку коммутации (ага, SAS-коммутатор, такие даже есть в природе), подключение нескольких потребителей к одному блочному устройству и т.д. Другими словами, этот протокол просто просился в качестве основы для сетевого блочного устройства.

Терминология

В мире SCSI приняты следующие термины:
target - тот, кто предоставляет блочное устройство. Ближайший аналог из обычного компьютерного мира - сервер.
initiator - клиент, тот, кто пользуется блочным устройством. Аналог клиента.
WWID - уникальный идентификатор устройства, его имя. Аналог DNS-имени.
LUN - номер «кусочка» диска, к которому идёт обращение. Ближайший аналог - раздел на жёстком диске.

ISCSI приносит следующие изменения: WWID исчезает, на его место приходит понятие IQN (iSCSI Qualified Name) - то есть чистой воды имя, сходное до степени смешения с DNS (с небольшими отличиями). Вот пример IQN: iqn.2011-09.test:name.

IETD и open-iscsi (сервер и клиент под линукс) приносят ещё одну очень важную концепцию, о которой чаще всего не пишут в руководствах по iscsi - portal. Portal - это, если грубо говорить, несколько target"ов, которые анонсируются одним сервером. Аналогии с www нет, но если бы веб-сервер можно было попросить перечислить все свои virtualhosts, то это было бы оно. portal указывает список target"ов и доступные IP, по которым можно обращаться (да-да, iscsi поддерживает несколько маршрутов от initiator к target).

target

Статья не про target, так что даю очень краткое описание того, что делает target. Он берёт блочное устройство, пришлёпывает к нему имя и LUN и публикет его у себя на портале, после чего позволяет всем желающим (авторизация по вкусу) обращаться к нему.

Вот пример простенького файла конфигурации, думаю, из него будет понятно что делает target (файл конфигурации на примере IET):

Target iqn.2011-09.example:data IncomingUser username Pa$$w0rd Lun 0 Path=/dev/md1

(сложный от простого отличается только опциями экспорта). Таким образом, если у нас есть target, то мы хотим его подключить. И тут начинается сложное, потому что у initiator"а своя логика, он совсем не похож на тривиальное mount для nfs.

Initiator

В качестве инициатора используется open-iscsi. Итак, самое важное - у него есть режимы работы и состояние . Если мы дадим команду не в том режиме или не учтём состояние, результат будет крайне обескураживающий.

Итак, режимы работы:

  • Поиск target"ов (discovery)
  • Подключение к target"у
  • Работа с подключенным target"ом
Из этого списка вполне понятен жизненный цикл - сначала найти, потом подключиться, потом отключиться, потом снова подключиться. Open-iscsi держит сессию открытой, даже если блочное устройство не используется. Более того, он держит сессию открытой (до определённых пределов, конечно), даже если сервер ушёл в перезагрузку. Сессия iscsi - это не то же самое, что открытое TCP-соединение, iscsi может прозрачно переподключаться к target"у. Отключение/подключение - операции, которыми управляют «снаружи» (либо из другого ПО, либо руками).

Немного о состоянии. После discovery open-iscsi запоминает все найденные target"ы (они хранятся в /etc/iscsi/), другими словами, discovery - операция постоянная, совсем НЕ соответствующая, например, dns resolving). Найденные target можно удалить руками (кстати, частая ошибка - когда у open-iscsi, в результате экспериментов и настройки, пачка найденных target"ов, при попытке логина в которые выползает множество ошибок из-за того, что половина target"ов - старые строчки конфига, которые уже давно не существуют на сервере, но помнятся open-iscsi). Более того, open-iscsi позволяет менять настройки запомненного target"а - и эта «память» влияет на дальнейшую работу с target"ами даже после перезагрузки/перезапуска демона.

Блочное устройство

Второй вопрос, который многих мучает по-началу - куда оно попадает после подключения? open-iscsi создаёт хоть и сетевое, но БЛОЧНОЕ устройство класса SCSI (не зря же оно «я сказя»), то есть получает букву в семействе /dev/sd, например, /dev/sdc. Используется первая свободная буква, т.к. для всей остальной системы это блочное устройство - типичный жёсткий диск, ничем не отличающийся от подключенного через usb-sata или просто напрямую к sata.

Это часто вызывает панику «как я могу узнать имя блочного устройства?». Оно выводится в подробном выводе iscsiadm (# iscsiadm -m session -P 3).

Авторизация

В отличие от SAS/UWSCSI, ISCSI доступно для подключения кому попало. Для защиты от таких, есть логин и пароль (chap), и их передача iscsiadm"у - ещё одна головная боль для начинающих пользователей. Она может осуществляться двумя путями - изменением свойств уже найденного ранее target"а и прописываем логина/пароля в файле конфигурации open-iscsi.
Причина подобных сложностей - в том, что пароль и процесс логина - это атрибуты не пользователя, а системы. ISCSI - это дешёвая версия FC-инфраструктуры, и понятие «пользователь» в контексте человека за клавиатурой тут неприменимо. Если у вас sql-база лежит на блочном устройстве iscsi, то разумеется, вам будет хотеться, чтобы sql-сервер запускался сам, а не после минутки персонального внимания оператора.

Файл конфигурации

Это очень важный файл, потому что помимо логина/пароля он описывает ещё поведение open-iscsi при нахождении ошибок. Он может отдавать ошибку «назад» не сразу, а с некоторой паузой (например, минут в пять, чего достаточно для перезагрузки сервера с данными). Так же там контролируется процесс логина (сколько раз пробовать, сколько ждать между попытками) и всякий тонкий тюнинг самого процесса работы. Заметим, эти параметры довольно важны для работы и вам нужно обязательно понимать, как поведёт ваш iscsi если вынуть сетевой шнурок на 10-20с, например.

Краткий справочник

Я не очень люблю цитировать легконаходимые маны и строчки, так что приведу типовой сценарий употребения iscsi:

Сначала мы находим нужные нам target, для этого мы должны знать IP/dns-имя инициатора: iscsiadm -m discovery -t st -p 192.168.0.1 -t st - это команда send targets.

Iscsiadm -m node (список найденного для логина)
iscsiadm -m node -l -T iqn.2011-09.example:data (залогиниться, то есть подключиться и создать блочное устройство).
iscsiadm -m session (вывести список того, к чему подключились)
iscsiadm -m session -P3 (вывести его же, но подробнее - в самом конце вывода будет указание на то, какое блочное устройство какому target"у принадлежит).
iscsiadm - m session -u -T iqn.2011-09.example:data (вылогиниться из конкретной)
iscsiadm -m node -l (залогиниться во все обнаруженные target"ы)
iscsiadm -m node -u (вылогиниться из всех target"ов)
iscsiadm -m node --op delete -T iqn.2011-09.example:data (удалить target из обнаруженных).

mulitpath

Ещё один вопрос, важный в серьёзных решениях - поддержка нескольких маршрутов к источнику. Прелесть iscsi - в использовании обычного ip, который может быть обычным образом обработан, как и любой другой трафик (хотя на практике обычно его не маршрутизируют, а только коммутируют - слишком уж великая там нагрузка). Так вот, iscsi поддерживает multipath в режиме «не сопротивляться». Сам по себе open-iscsi не умеет подключаться к нескольким IP одного target"а. Если его подключить к нескольким IP одного target"а, то это приведёт к появлению нескольких блочных устройств.

Однако, решение есть - это multipathd, который находит диски с одинаковым идентифиатором и обрабатывает их как положено в multipath, с настраиваемыми политиками. Эта статья не про multipath, так что подробно объяснять таинство процесса я не буду, однако, вот некоторые важные моменты:

  1. При использовании multipath следует ставить маленькие таймауты - переключение между сбойными путями должно происходить достаточно быстро
  2. В условиях более-менее быстрого канала (10G и выше, во многих случаях гигабит) следует избегать параллелизма нагрузки, так как теряется возможность использовать bio coalesing, что в некоторых типах нагрузки может неприятно ударить по target"у.

Продолжаем разбирать операционную систему Windows 10. Сегодня речь пойдёт о функции инициатор iSCSI на компьютере Windows 10. iSCSI – это протокол передачи данных, который разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами. Чтобы запустить инициатор iSCSI на своём компьютере, в нижнем левом углу экрана нажмите на кнопку Пуск. В открывшемся окне нажмите на вкладку – Все приложения .

В списке всех приложений, в самом низу, нажмите на вкладку – Средства администрирования. В открывшемся списке нажмите на вкладку – Инициатор iSCSI .

Далее, во всплывающем окне нажмите на кнопку ДА, после чего у вас откроется окно, где вы сможете создать быстрое подключение. В поле Объект введите IP-адрес или DNS-имя конечного объекта, с которым нужно установить связь и нажмите на кнопку – Быстрое подключение . Чуть ниже в поле должно отобразиться имя объекта и его состояние.

Возможно подключение с использованием дополнительных параметров. Если вы хотите полностью отключить Объект, то выделите имя объекта и нажмите на кнопку – Прервать или Отключить. Возможна работа со свойствами объекта и конфигурацией сеансов. Чтобы настроить устройства связанные с конечным объектом, выделите объект и нажмите на кнопку – Устройства .

Всем привет сегодня расскажу как установить ISCSI сервер в Windows Server 2008 R2. По умолчанию данная служба не идет в комплекте Windows Server 2008 R2 и скачивается отдельно как компонент. Сам ISCSI сервер, состоит из iscsi target windows, который будет выступать в роли цели к кому будет подключаться встроенный компонент Windows инициатор iscsi, и с помощью них будет производиться настройка iSCSI-хранилища.

Напомню что такое ISCSI протокол (англ. Internet Small Computer System Interface) - протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами. iSCSI описывает: Транспортный протоколдля SCSI, который работает поверх TCP. Благодаря ему вы можете создать дисковое хранилище средствами Windows и подключить его через вашу локальную сеть ethernet, скорость конечно будет зависеть больше от вашего сетевого парка, но вам не придется тратиться на дорогостоящие FC свитчи, а если у вас есть 10 и более гигабитные ISCSI свитчи то вообще все будет шикарно, так как они уже мало чем проигрывают FC, плюс их проще внедрять в существующую инфраструктуру.

Для того чтобы наш iscsi сервер работал скачаем Microsoft iSCSI Software Target 3.3 . Запускаем скачанный дистрибутив

Через browse указываем куда хотим выгрузить установочный файл

видим Microsoft iSCSI Software Target 3.3 успешно извлечен.

Переходим в директорию в которую извлекались файлы, нас будет интересовать папка x64, запускаем iscsitaget_public

откроется мастер установки жмем сразу next.

Соглашаемся с лицензионным соглашением

при желании можно изменить каталог установки

начнется установка


Close