Если вы когда-нибудь управляли серверами или корпоративной компьютерной сетью, то наверняка сталкивались с проблемой прозрачного увеличения ёмкости существующей инфраструктуры. И хотя подобные решения, в принципе, существуют, они обычно отличаются большой ценой и низкой гибкостью.
19″ системы обычно не обладают достаточным пространством, чтобы вместить дополнительные жёсткие диски. В результате появляется единственная альтернатива: подключение к серверу отдельных 19″ хранилищ по интерфейсу SCSI или Fiber Channel. Однако при этом мы всё равно смешиваем серверные задачи и функции хранения данных.
И большие серверные корпуса с дополнительными отсеками для жёстких дисков тоже не назовёшь идеальным выходом — опять же, получаем смесь задач.
Согласитесь, что идеальное хранилище должно быть очень гибким. Таким, чтобы его можно было легко развернуть, использовать из многих участков сети, из разных операционных систем и, конечно, можно было легко расширять. Да и производительность не стоит упускать из внимания. Ответом на все поставленные вопросы можно назвать iSCSI — Internet SCSI. Это решение «упаковывает» протокол SCSI в пакеты TCP/IP, в результате чего вы получаете универсальный интерфейс хранилища для всей сетевой инфрастуктуры. Кроме того, iSCSI позволяет консолидировать текущие системы хранения.
Как работает iSCSI?
На диаграмме показан принцип работы iSCSI. Подсистемы хранения должны использовать существующую сетевую инфрастуктуру, независимо от серверов. Консолидация систем хранения, которую мы упоминали выше, означает лишь то, что хранилище должно быть доступно с любого сервера, обеспечивая минимизацию затрат на управление. Кроме того, можно добавлять дополнительную ёмкость и к существующим системам.
Преимуществ у такого подхода много, и они довольно очевидны. Во многих корпорациях уже развёрнута эффективная сетевая инфраструктура, часто использующая проверенные временем технологии типа Ethernet. Никаких новых технологий для использования iSCSI или других систем типа SAN (Storage Area Networks) внедрять и тестировать не нужно. Конечно, здесь можно сэкономить и на дорогих специалистах по внедрению.
В целом, управлять клиентами и серверам iSCSI после небольшого обучения сможет любой сетевой администратор. Ведь iSCSI развёртывается на существующей инфраструктуре. Кроме того, iSCSI отличается высокой доступностью, так как серверы iSCSI можно подключать к нескольким коммутаторам или сетевым сегментам. Наконец, архитектура изначально отличается высокой масштабируемостью благодаря технологиям коммутации Ethernet.
В принципе, сервер iSCSI может быть реализован как программно, так и аппаратно. Но из-за высокой нагрузки программного решения на процессор лучше всё же придерживаться последнего варианта. Основная нагрузка на сервер iSCSI заключается в инкапсуляции пакетов SCSI в пакеты TCP/IP, причём всё должно выполняться в реальном времени. Понятно, что в программном сервере все эти задачи будет выполнять центральный процессор, а в аппаратном решении — специальные движки TCP/IP и SCSI.
Благодаря клиенту iSCSI, ресурсы хранилища iSCSI-сервера могут быть интегрированы в клиентскую систему в виде устройства, которое по смыслу близко к локальному жёсткому диску. Здесь большим преимуществом по сравнению с привычными общими сетевыми папками (share) будет высокая безопасность. Ведь iSCSI особо подчёркивает правильную аутентификацию пакетов iSCSI, а по сети они передаются в шифрованном виде.
Конечно, вы получите производительность несколько меньше, чем у локальных систем SCSI — ведь сеть вносит свои задержки. Впрочем, современные сети с пропускной способностью до 1 Гбит/с (128 Мбайт/с) уже обеспечивают достаточную скорость, но большая часть её так и не используется.
Каждому узлу iSCSI присваивается своё имя (длиной, максимум, до 255 байт) и псевдоним (короткое имя), которые не зависят от IP-адреса. Таким образом, доступ к хранилищу будет обеспечен даже после его переноса в другую подсеть.
iSCSI в деле
Конечно, не считая сеть, основным требованием для внедрения iSCSI является организация iSCSI-сервера. Мы протестировали несколько решений как программных так и аппаратных.
Оба типа решений удовлетворяют всем требованиям iSCSI, обеспечивая доступ к хранилищу клиентским компьютерам. Клиентская система может быть оснащена адаптером iSCSI, который уменьшит нагрузку на центральный процессор (очень удобно для рабочих станций).
В принципе, iSCSI можно использовать и на 100-Мбит/с сети, но тогда, по сравнению с локальными приводами, вы получите существенное замедление. Естественно, гигабитный Ethernet является куда более эффективным решением — вряд ли пропуская способность станет «узким местом» даже при использовании нескольких массивов RAID 5. В то же время, это нельзя сказать про массивы RAID 0, но подобное хранилище редко подключается по сети.
Если обратиться к клиенту, то здесь необходим инициатор iSCSI. Они выпущены практически для всех операционных систем. Поиск в Google комбинации слов «Microsoft», «iSCSI» и «Initiator» является наглядным тому примером.
Затем в программе-инициаторе нужно настроить подключение к серверу. Подключённые приводы сервера появятся на компьютере в виде жёстких дисков, и их можно использовать как самые обычные приводы.
Протокол iSCSI обеспечивает шифрование пакетов на основе IPsec, хотя оно не является обязательным. К примеру, внутри сети корпорации не всегда имеет смысл шифровать пакеты. Подобная опция будет наиболее интересна для WAN.
Дополнительные применения
iSCSI также является прекрасным средством резервирования данных, ведь информацию можно легко скопировать на другой жёсткий диск. В том числе, даже в онлайне, используя функцию теневого копирования Windows. iSCSI можно даже подключать по DSL-соединению, но здесь ограничивающим фактором уже будет скорость линии. Впрочем, всё зависит от характера применения.
Большим преимуществом iSCSI можно считать то, что классическое резервирование больше не ограничено одним местоположением — и не стоит это недооценивать. К примеру, устройства типа кассетных стримеров теперь можно устанавливать в любом месте сети. Даже если случится самое худшее, данные по iSCSI можно будет восстановить за минимальное время.
Если решение iSCSI реализовано программно, то сетевому адаптеру придётся передавать немалые данные. Поскольку обычные сетевые адаптеры не всегда используют различные технологии аппаратного ускорения, часть нагрузки может перелагаться на центральный процессор. SCSI — это блочный протокол, а Ethernet — пакетный. То есть немало нагрузки будет относиться к инкапсулированию и извлечению информации SCSI из пакетов TCP/IP. Подобная задача способна «под завязку» загрузить даже современный процессор.
Для решения проблемы были разработаны специальные движки TOE (TCP/IP Offload Engines), которые берут на себя все сложные операции iSCSI сразу же после сетевого адаптера. В результате снижается нагрузка на системный процессор, и пользователи и система могут продолжать нормально работать.
Надеюсь теперь стало чуть более понятно что такое сетевые хранилища на iSCSI и как они устроены.
По прошествии пяти лет работы с сетями хранения данных Fibre Channel (SAN), я был сильно озадачен появлением iSCSI: тем, что делает этот протокол и, что более важно, как он работает и как можно использовать iSCSI для решения реальных проблем пользователей. Итак, после нескольких напряженных месяцев общения со многими специалистами по этой теме, я представляю в этой статье несколько собственных взглядов на iSCSI.
Иные протоколы: FCIP - посылает блоки Fibre Channel через IP, по существу расширяя соединения Fibre Channel; на самом деле не имеет никакого отношения к SCSI. С другой стороны iFCP - обеспечивает преобразование (mapping) FCP (последовательный SCSI через Fibre Channel) в и из IP. Другими словами, он предлагает протокол маршрутизации между сетями Fibre Channel (fabric), позволяющий осуществлять соединение через IP.
Иначе говоря, iSCSI - это протокол SCSI через IP, связывающий сервер с хранилищем данных. Другие протоколы обеспечивают соединение Fibre Channel - Fibre Channel с различной степенью интеллектуальности.
В настоящее время в мире IP используется два механизма обнаружения устройств iSCSI. Первый - SLP (service locator protocol) - протокол семейства TCP/IP, позволяющий осуществлять автоматическую настройку различных ресурсов. Этот протокол обнаружения сервисов уже существует в мире IP некоторое время. Однако недавно многие производители, включая Microsoft, стали разрабатывать новый протокол -- Internet Simple Name Server. Попросту говоря, за основу были приняты принципы сервера простых доменных имен для Fibre Channel и затем увеличены до той степени, которая позволяет справляться с размерами IP сетей, в то же время не теряя особенностей работы с хранилищами, в отличие от SLP.
Итак, что наиболее вероятно и/или практично для использования? Для ответа на этот вопрос, нужно немного отступить назад и вспомнить, что сетевое хранение данных требует гибкости, использования продуктов различным образом. Сегодня, использование iSCSI в серверах - сравнительно ново, но просто, с учетом поддержки Microsoft для Windows Server 2000 и 2003.
По этой причине, одним из способов использования iSCSI является использование iSCSI серверов, присоединенных к существующему хранилищу Fibre Channel через маршрутизатор iSCSI-to-Fibre Channel, вероятнее всего в Fibre Channel SAN. Это означает, что те же порты тех же массивов хранения могут обеспечивать сервис по хранению данных как для серверов Fibre Channel, так и для серверов iSCSI. Посему это позволяет вам получить больше преимуществ от использования хранилищ SAN и Fibre Channel, чем вы имеете, и вы можете сделать это прямой сейчас - рынок предлагает все необходимые продукты.
По моим предположениям подобные события произойдут и на рынке NAS, на самом деле они уже происходят. Поскольку NAS устройства уже подключают диски к IP-сетям, разделяя сервисы через сетевую файловую систему (NFS) и/или общий протокол доступа к файлам интернет (CIFS), то для NAS достаточно просто передавать данные на уровне блока через те же порты с помощью iSCSI, что опять позволяет вам использовать существующие решения хранения данных по-новому.
Есть еще несколько иных - интересных и нестандартных решений, дожидающихся появления специализированного исключительно на iSCSI хранилища, которые могут отлично работать на новом месте, где еще не проводилась консолидация хранилищ, и существуют только продукты одного решения.
Итак, iSCSI может работать на каждого, но, возможно, наиболее большой потенциальный рынок представляют собой серверы Intel, а также высокоплотные и сверхтонкие серверы (Intel или иные). Кроме того, iSCSI иногда может быть использован для высокопроизводительных серверов, в случае удаленых офисов для обращения к центральному центру данных через SAN и в иных случаях, где пока еще рано использовать Fibre Channel, в конце концов, существует еще много неподключенных к сети серверов и хранилищ данных.
Ключевой момент здесь состоит в том, что в отличие от Fibre Channel адаптеров, ценовые рамки iSCSI варьируются от низкой (бесплатно) до высокой производительности (акселераторы) и таким образом могут быть подобраны в соответствие с требованиями приложений. Также нагрузочная способность по выходу (fan-out или oversubscription) позволяет использовать более экономичные порты Ethernet (как быстрые, так и GE) вместо портов специализированных FC коммутаторов, что еще более снижает издержки. С картами iSCSI TOE, стоимостью 300 долларов или меньше, издержки присоединения к хосту значительно ниже, чем с FC, даже для производительности TOE.
Поскольку FC может работать на 2Gbps, использование Fibre Channel более предпочтительно для высокопроизводительных серверов (2 Гб Ethernet не существует), хотя, честно говоря, не много существует серверов, использующих такую пропускную способность, даже на Fibre Channel. Безусловно, с точки зрения хранилищ использование 2Gbps более вероятно до тех пор, пока мы не увидели 10 Гб FC или даже 10 Гб Ethernet/iSCSI портов. iSCSI открывает двери для сотен и тысяч серверов, особенно систем Intel, многие из которых могут быть менее требовательными, и огромное количество которых еще только будет приносить выгоды от использования сетевого хранения.
Только время покажет, что именно случится, хотя в одном можно быть уверенным - это будет очень интересный год для сетевого хранения и для 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 представляют из себя обычные виртуальные диски формата VHD\VHDX. Кстати, в 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.
Для начала проверим состояние службы инициатора на 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
Теперь перейдем на SRV2 и приступим к настройке серверной части. Первое, что нам надо сделать - это установить на сервер роль iSCSI Target. Открываем Server Manager, переходим по ссылке «Add roles and features»
И выбираем роль «iSCSI Target Server», которая находится в разделе File and Storage Services\File 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. Находим нужный диск:
Get-Disk | where {$_.OperationalStatus -eq ″Offline″}
Переводим его в 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 и кликаем по ссылке, запуская очередной мастер.
Выбираем том, на котором будет храниться виртуальный диск.
Даем диску имя и описание.
Указываем размер виртуального диска и его тип. Выбирать можно из трех вариантов:
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:\iSCSIVirtualDisks\iSCSI2.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
Возвращаемся на SRV2, открываем окно свойств инициатора, переходим на вкладку 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. Выводим список доступных таргетов:
Get-IscsiTarget | fl
И подключаемся к нужному:
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).
Abstract: как работает open-iscsi (ISCSI initiator в linux), как его настраивать и чуть-чуть про сам протокол ISCSI.
Лирика: В интернете есть множество статей довольно хорошо объясняющих, как настроить ISCSI target, однако, почему-то, практически нет статей про работу с инициатором. Не смотря на то, что target технически сложнее, административной возни с initiator больше - тут больше запутанных концепций и не очень очевидные принципы работы.
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 (файл конфигурации на примере IET):
Target iqn.2011-09.example:data IncomingUser username Pa$$w0rd Lun 0 Path=/dev/md1
(сложный от простого отличается только опциями экспорта). Таким образом, если у нас есть target, то мы хотим его подключить. И тут начинается сложное, потому что у initiator"а своя логика, он совсем не похож на тривиальное mount для nfs.
Итак, режимы работы:
Немного о состоянии. После discovery open-iscsi запоминает все найденные target"ы (они хранятся в /etc/iscsi/), другими словами, discovery - операция постоянная, совсем НЕ соответствующая, например, dns resolving). Найденные target можно удалить руками (кстати, частая ошибка - когда у open-iscsi, в результате экспериментов и настройки, пачка найденных target"ов, при попытке логина в которые выползает множество ошибок из-за того, что половина target"ов - старые строчки конфига, которые уже давно не существуют на сервере, но помнятся open-iscsi). Более того, open-iscsi позволяет менять настройки запомненного target"а - и эта «память» влияет на дальнейшую работу с target"ами даже после перезагрузки/перезапуска демона.
Это часто вызывает панику «как я могу узнать имя блочного устройства?». Оно выводится в подробном выводе iscsiadm (# iscsiadm -m session -P 3).
Сначала мы находим нужные нам 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 из обнаруженных).
Однако, решение есть - это multipathd, который находит диски с одинаковым идентифиатором и обрабатывает их как положено в multipath, с настраиваемыми политиками. Эта статья не про multipath, так что подробно объяснять таинство процесса я не буду, однако, вот некоторые важные моменты:
Сетевым накопителем поддерживается встроенная служба iSCSI (Internet Small Computer System Interface) для использования в серверных кластерах и виртуализированных средах.
На этой странице пользователи могут включать/отключать службу iSCSI, изменять порт портала iSCSI, включать/отключать службу iSNS и перечислять и управлять всеми целями iSCSI и LUN. NAS поддерживает несколько целей iSCSI и несколько LUN для одной цели. Для определенной цели можно монтировать и размонтировать iSCSI LUN. В этой главе представлены следующие разделы.
В приведенной ниже таблице представлены функции, поддерживаемые блочными LUN и файловыми LUN.
Файловый LUN (старого типа) |
||
Полное копирование по VAAI |
Поддерживается |
Поддерживается |
Обнуление блоков по VAAI |
Поддерживается |
Поддерживается |
Блокировка на аппаратном уровне по VAAI |
Поддерживается |
Поддерживается |
Тонкое конфигурирование и высвобождение пространства по VAAI |
Поддерживается |
Не поддерживается |
Динамическое выделение емкости |
Поддерживается |
Поддерживается |
Высвобождение пространства |
Поддерживается (по VAAI или в Windows 2012/Windows 8) |
Не поддерживается |
Microsoft ODX |
Поддерживается |
Не поддерживается |
Резервное копирование LUN |
Поддерживается |
|
Моментальная копия LUN |
Поддерживается |
1 Моментальный снимок |
Учтите, что блочные LUN обычно обеспечивают более высокую производительность системы, и поэтому рекомендуется там, где это возможно, использовать блочные LUN.
Имеется два способа выделения LUN: «тонкое» конфигурирование и мгновенное выделение.
Можно создать до 256 целей iSCSI и LUN. Например, если на NAS создано 100 целей, то максимальное количество доступных для создания LUN составляет 156. Для каждой цели можно создать несколько LUN. Однако максимальное количество одновременных подключений к целям iSCSI, поддерживаемое NAS, отличается в зависимости от сетевой инфраструктуры и производительности приложения. Слишком большое количество одновременных подключений может оказать влияние на производительность NAS.
Мастер быстрой настройки iSCSI
Чтобы настроить службу цели iSCSI на сетевом накопителе, выполните следующие действия.
6. | Укажите параметры проверки подлинности и нажмите кнопку "Далее". При включении параметра "Использовать авторизацию CHAP" целью iSCSI будет выполняться проверка подлинности только для инициатора, и для доступа к цели пользователям инициаторов будет выдаваться запрос на ввод указанных здесь имени пользователя и пароля. При включении параметра "Совместный CHAP" активируется режим двусторонней проверки подлинности между целью и инициатором iSCSI. Цель осуществляет проверку подлинности инициатора с использованием первого набора имени пользователя и пароля. Инициатор осуществляет проверку подлинности цели с использованием параметров, указанных в разделе "Совместный CHAP". Для имени пользователя и пароля в обоих полях имеются описанные ниже ограничения. |
Создание целей iSCSI
Для создания цели iSCSI выполните следующие действия.
5. | Укажите имя пользователя и пароль для параметра "Использовать авторизацию CHAP" и (или) "Совместный CHAP" и нажмите кнопку "Далее". При включении параметра "Использовать авторизацию CHAP" целью iSCSI будет выполняться проверка подлинности только для инициатора, и для доступа к цели пользователям инициаторов будет выдаваться запрос на ввод указанных здесь имени пользователя и пароля. При включении параметра "Совместный CHAP" активируется режим двусторонней проверки подлинности между целью и инициатором iSCSI. Цель осуществляет проверку подлинности инициатора с использованием первого набора имени пользователя и пароля. Инициатор осуществляет проверку подлинности цели с использованием параметров, указанных в разделе "Совместный CHAP". |
Создание iSCSI LUN
Для создания LUN для цели iSCSI выполните следующие действия.
Для создания непривязанного iSCSI LUN выберите на шаге 4 параметр "Не привязывать к цели".
Будет создан непривязанный LUN, который будет отображен в списке непривязанных iSCSI LUN.
В приведенной ниже таблице представлено описание всех целей iSCSI и состояний LUN.
Позиция |
Состояние |
Описание |
Цель iSCSI |
Готово |
Цель iSCSI находится в состоянии готовности, однако ни одного инициатора к ней не подключено. |
Подключен |
К цели iSCSI подключен инициатор. |
|
Отключен |
Подключения к цели iSCSI были разорваны. |
|
Автономно |
Цель iSCSI отключена, подключения со стороны инициаторов невозможны. |
|
Включено |
LUN активирован для подключения и виден авторизованным инициаторам. |
|
Выключено |
LUN деактивирован и не виден инициаторам. |
В приведенной ниже таблице описаны действия, доступные для управления целями iSCSI и LUN (кнопка "Действие").
Действие |
Описание |
Отключить |
Отключение цели, находящейся в состоянии «Готов» или «Подключено». Учтите, что все подключения от инициаторов будут разорваны. |
Активировать |
Активация цели, находящейся в состоянии «Офлайн». |
Изменить |
Изменение настроек цели: псевдонима цели, информации CHAP и настроек контрольной суммы. Изменение настроек LUN: выделение LUN, имя, каталог дискового тома и т. д. |
Удалить |
Удаление цели iSCSI. Все подключения будут разорваны. |
Отключить |
Отключение LUN. Все подключения будут разорваны. |
Включить |
Включение LUN. |
Отвязать |
Отмена привязки LUN к цели. Учтите, что перед отвязкой LUN его сначала следует отключить. При нажатии этой кнопки LUN будет перемещен в список непривязанных виртуальных iSCSI LUN. |
Привязать |
Привязка LUN к цели iSCSI. Эта функция доступна только для списка непривязанных iSCSI LUN. |
Показать подключения |
Просмотр состояния подключения цели iSCSI. |
Переключение iSCSI LUN между целями
Для переключения iSCSI LUN между целями выполните следующие действия.
После создания целей iSCSI и LUN на NAS для подключения к цели iSCSI и LUN, а также использования дисковых томов в качестве виртуальных дисков на компьютере можно использовать инициатор iSCSI, установленный на компьютере (ПК с Windows, Mac или Linux).
Увеличение объема iSCSI LUN
NAS поддерживает функцию увеличения объема для iSCSI LUN. Для этого выполните следующие действия.