Разное

Iscsi инициатор что это: Настройка iSCSI-хранилища в Windows Server 2008 R2

Содержание

Преимущества iSCSI, соединения и сессии


Протокол iSCSI впервые был предложен компанией Cisco в 2001 г. В 2004 году протокол был стандартизован IETF в RFC 3720.


iSCSI создан для переноса протокола SCSI (Small Computer Systems Interface), который работал на сети Fibre Channel (FC), в сеть TCP/IP. То есть, iSCSI – это транспортный протокол SCSI для отображения блочного хранилища через сеть TCP/IP.

Методы организации сетевых распределенных хранилищ


Существует три основных метода организации сетевых распределенных хранилищ:

  • FC SAN со SCSI;
  • NAS;
  • iSCSI.


FC SAN очень популярен из-за своей высокой производительности, высокой дальности передачи, возможности работать с данными на уровне блоков, широкого диапазона масштабирования. Недостатки FC SCSI SAN: сложность, высокая стоимость оборудования и обслуживания.


NAS позволяет подключать накопители непосредственно к существующей сети Ethernet. NAS проще и дешевле, но медленнее FC SAN. Транспорт данных в NAS работает на файловом уровне, а не блочном, как в SAN, что существенно замедляет работу таких приложений, как серверы баз данных. По мере увеличения устройств хранения в NAS начинают возникать проблемы масштабирования и управления.


Сравнение методов организации распределенного хранения: FC SAN, NAS и iSCSI SAN (источник: SNIA)


iSCSI дает возможность получать универсальный доступ к накопителям и сетям SAN через Ethernet-сеть с протоколом TCP/IP. Эта сеть может быть как выделенной, так и с работающими на ней другими приложениями. Кроме того, могут быть также добавлены маршрутизаторы и/или коммутаторы сети WAN (wide-area LAN network, не путать с WLAN), чтобы расширить IP-сеть хранения данных для глобальной сети (wide area network) для таких приложений, как удаленное резервирование данных (синхронное или асинхронное) или архивирование на ленточные библиотеки.


Для переноса файлов по IP-сети используется файловая система NFS для распределенных систем хранения. Это дает возможность общего доступа к файлам по многим системам.


В сетях WAN протокол TCP обеспечивает надежность хранения данных, позволяет регулировать перегрузку каналов сети, а также использовать возможности TCP по повторной передачи пакетов, в случае потери пакетов или их задержке на больших дальностях передачи по сети WAN.

Преимущества iSCSI

  • IP-протокол и промежуточное ПО (middleware) для управления, безопасности и качества сервиса QoS (quality of service) могут быть использованы в сетях SAN.
  • Компетенции и опыт пользователя в IP-сетях LAN (local-area network) могут быть применены к сетям SAN на базе IP.
  • За счет использования стандартной IP-инфраструктуры, продуктов и сервисов может быть получена значительная экономия при создании сетей хранения SAN, основным недостатком которых являлась сложность проектирования, недостаточная совместимость и дороговизна развертывания, в то время как iSCSI может существенно сократить эти затраты.
  • Гигабитные Ethernet коммутаторы могут повысить быстродействие SAN, уменьшить число ошибок, могут контролировать параметры потоков. Таким образом, можно обеспечить оптимальные скорости передачи через локальные сети LAN, глобальные WAN, и городские MAN (metropolitan-area networks).
  • iSCSI совместим с существующей инфраструктурой Ethernet и IP WAN, а также с множеством других существующих и будущих IP-протоколов.
  • Единая транспортная технология для сетей хранения, серверов и клиентов в сетях LAN, WAN, SAN.
  • Возможность географического распределения систем хранения
  • Возможность использовать средства управления TCP/IP сетями.


iSCSI может обеспечить хорошие параметры работы блочного хранилища при низких затратах. Этот протокол поддерживается большинством операционных систем и гипервизоров и может работать через стандартные сетевые адаптеры или через специализированные адаптеры HBA (Host Bus Adapters). Кроме того, iSCSI поддерживается большинством корпоративных СХД, где работают приложения второго уровня (Tier 2), которые требуют хорошего, но не превосходного качества работы блочных СХД, а также в СХД, которые используют много хостов одновременно.


iSCSI также популярен среди крупных облачных провайдеров, там часто используются блочные хранилища, которые работают поверх Ethernet.


Стек протоколов iSCSI

Соединения в iSCSI


Для традиционного SCSI, работающего по сети Fibre Channel, существует сервис простых доменных имен (Simple Name Server), работающий с сотнями и тысячами устройств. Однако в сетях IP, устройств может быть гораздо больше.


В IP используется два механизма обнаружения устройств iSCSI.

  • SLP (service locator protocol), позволяющий осуществлять автоматическую настройку ресурсов.
  • Internet Simple Name Server, где принципы Simple Name Server для Fibre Channel были расширены для IP сетей.

Сессия iSCSI


iSCSI сессия состоит из фаз:

  • аутентификации (Login Phase)
  • обмена (Full Feature Phase).


Фаза аутентификации используется для подтверждения права доступа и согласования параметров между iSCSI-инициатором и iSCSI- получателем. Если фаза аутентификации iSCSI завершается успешно, получатель (target) подтверждает доступ инициатору, в противном случае, TCP-соединение прерывается.


После подтверждения доступа iSCSI сессия переходит к фазе обмена. Если было установлено несколько TCP-линков, протокол iSCSI требует, чтобы каждая пара «команда/ответ» проходила через одно и то же TCP-соединение, а не так, чтобы команда проходит через одно ТСР, а ответ – через другое. Такая процедура гарантирует, что каждая отдельная команда считывания или записи будет осуществляться без необходимости дополнительно отслеживать каждый запрос на предмет его прохождения по разным потокам. Однако, в рамках одной сессии несколько транзакций могут одновременно передаваться через несколько ТСР-линков.


Сессии и соединения в iSCSI (источник: SNIA)


Когда транзакция завершается, происходит последний обмен между инициатором и получателем, который подтверждает успешность передачи. Сессия закрывается командой iSCSI logout, передаваемой в конце фазы обмена. Эта команда также передает информацию о причинах завершения сессии. Она также может содержать информацию о том, какой ТСР-линк следует закрыть в случае возникновения ошибки.

Обработка ошибок


Поскольку при передаче по IP-сети (в особенности, WAN) возможны ошибки при передаче, протокол iSCSI содержит много средств по обработке ошибок.


Как инициатор, так и получатель (target) iSCSI должны иметь буфер команд, чтобы получать подтверждения их выполнения, а также они должны иметь возможность восстановления утраченного или испорченного блока данных IP-пакета (PDU) для восстановления сеанса передачи данных.


Средства обработки ошибок и восстановление в iSCSI включают:

  • На низком уровне — определение ошибки и восстановление данных на уровне сеанса связи, например, повторение передачи утраченного или поврежденного PDU.
  • На среднем уровне — при повреждении TCP-линка оба узла iSCSI пытаются восстановить соединение.
  • На высоком уровне – при повреждении сессии iSCSI. Если восстановление корректно отрабатывается на других уровнях, то прерывания сессии, как правило, не требуется. Но если сессию восстановить не удается, то требуется закрытие всех TCP-линков, прерывание всех задач, отмена невыполненных SCSI команд и перезапуска сессии через повторный login.

Особенности iSCSI


При создании iSCSI SAN в той же сети TCP/IP, по которой передаются данные между серверами и рабочими станциями пользователей, могут возникнуть задержки и зависания приложений. Поэтому сети СХД, в общем, должны быть логически изолированы от других систем в рамках LAN или WAN, или даже созданы в виде отдельной коммутируемой сети. Но если пользователей в сети iSCSI немного (небольшая рабочая группа, например), то этим правилом можно пренебречь.


Следует также учесть, что, в случае использования обычных сетевых адаптеров, iSCSI создает нагрузку на процессор сервера, поскольку предусматривает упаковку команд и данных SCSI в пакеты TCP/IP, а также распаковку этих пакетов. Чтобы снизить нагрузку на сервер, можно использовать плату TCP Off-load Engine (TOE) или хост-адаптер iSCSI. В отличие от обычных сетевых плат, эти устройства сами обрабатывают протокол TCP/IP-вычисления на своем процессоре.

Так Fibre Channel или iSCSI?


Подводя итог, можно провести сравнение двух наиболее популярных технологий для сетей хранения: FC или iSCSI.


Fibre Channel, благодаря высокой производительности и надежности, долгое время рассматривался как стандартная технология для корпоративных SAN. Но FC SAN довольно дороги и сложны в развертывании и управлении.


iSCSI SAN стали набирать популярность, поскольку производительность IP-сетей выросла, и стала достаточной для компаний с ограниченным бюджетом. Более того, iSCSI SAN позволяет переиспользовать традиционные сетевые компоненты Ethernet для коннективности между хостами и устройствами хранения, что значительно снижает стоимость развертывания.


Поэтому выбор между двумя этих технологиями зависит от требований компании. FC SAN дают выигрыш в производительности, задержках и IOPS, а iSCSI SAN – проще и дешевле.


Таблица 1. Сравнение FC SAN и iSCSI SAN








Fibre Channel или iSCSI


Сеть


FC SAN


iSCSI SAN


Стоимость


Оптика


Ethernet


Полоса


Высокая


Ниже, чем FC


Производительность


Высокая


Ниже, чем FC, но для небольших компаний достаточна


Накопители


SCSI и FC, производительность и надежность


SATA и SAS, высокая емкость и низкая стоимость

ISCSI — Википедия

Материал из Википедии — свободной энциклопедии

iSCSI (англ. Internet Small Computer System Interface) — протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами.

iSCSI описывает:

  • Транспортный протокол для SCSI, который работает поверх TCP.
  • Механизм инкапсуляции SCSI команд в IP сети.
  • Протокол для нового поколения систем хранения данных, которые будут использовать «родной» TCP/IP.

Протокол iSCSI является стандартизованным по RFC 3720. Существует много коммерческих и некоммерческих реализаций этого протокола.

Системы на основе iSCSI могут быть построены на любой достаточно быстрой физической основе, поддерживающей протокол IP, например Gigabit Ethernet или 10G Ethernet. Использование стандартного протокола позволяет применять стандартные средства контроля и управления потоком, а также существенно уменьшает стоимость оборудования по сравнению с сетями Fibre Channel.

Примеры реализаций

Инициаторы (клиенты)

Присутствует в стандартной сборке Linux с версии 2.6.16.

Также существует монолитный проект на основе BSD — OpenNAS,

На основе FreeBSD 7.2 сделан FreeNAS (может выступать как в качестве target, так и initiator).[1]

Аналог FreeNAS, но на основе Linux — проект Openfiler (также может выступать как в качестве target, так и initiator). Состояние проекта неясно, никто из разработчиков не объявил о его закрытии, но версия не обновлялась с 2008 года.[2]

Отколовшийся от FreeNAS (после покупки последнего компанией iXsystems) форк NAS4Free на FreeBSD обновленной до версии 9.1.[3]

Также реализация хранилищ данных с использованием iSCSI выполнена в продуктах:

  • Nexenta (доступна бесплатная версия Nexenta Community Edition)
  • Open-E DSS.

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

Терминология iSCSI во многом основывается на терминологии, использующейся в SCSI:

  • initiator — тот, кто устанавливает соединение с целью(target). Чаще всего это узел (в общем случае) осуществляет ввод/вывод на блочные устройства.
  • target — экспортируемый объект. В зависимости от контекста цель(target) называют или целиком экспортирующий узел, или только экспортируемый объект. Сам объект может делиться на lun’ы.
  • Портал — группа целей(targets), которые анонсируются вместе. Чаще всего один узел хранения — один портал.
  • IQN — полное имя участника взаимодействия. На практике существует iqn у инициатора и у цели(target).
  • endpoint — уточнённое имя ресурса, чаще всего включает в себя iqn, номер LUN’а и указание на конкретный метод доступа к нему (например, номер соединения, LUN и IP-адрес, с которого следует получать доступ к устройству).
  • LUN (Logical Unit Number) — номер объекта внутри цели(target). Ближайшим аналогом является раздел диска или отдельный том.

Сравнение iSCSI таргетов

Преимущества

  • Консолидация систем хранения данных
  • Резервирование данных
  • Кластеризация серверов
  • Репликация
  • Восстановление в аварийных ситуациях
  • Географическое распределение SAN
  • QoS
  • Безопасность

Примечания

Ссылки

Источники

Linux iSCSI HOWTO

Ceph через iSCSI — или на лыжах стоя в гамаке / Хабр

Есть ли среди нас (цефоводов) те, кто не любит «профессиональный экстрим»?

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

Многие из тех, кто занимались эксплуатацией Ceph, встречали один не слишком частый (а скорее даже очень нечастый) но иногда востребованный кейс — подключить Ceph по iSCSI или FC. Зачем? Ну, например, подать образ с Ceph на почему-то еще не виртуализированный сервер Windows или Solaris. Или на виртуализированный, но посредством гипервизора, который не умеет Ceph — а их, как мы знаем, хватает. Например? Ну, например, HyperV или ESXi, которые активно используются. И если возникает задача подать образ с Ceph в гостевую машину, это превращается в весьма увлекательную задачу.


Итак, дано:

  1. уже работающий кластер Ceph
  2. уже существующий образ который надо подать через iSCSI
  3. Имя пула mypool, имя образа myimage

Начинаем?

Прежде всего, когда мы говорим о FC или iSCSI, у нас появляются такие сущности как инциатор (initiator) и цель (target). Target это фактически сервер, initiator — клиент. Наша задача — с минимальными трудозатратами подать образ Ceph на инициатор. А значит, мы должны развернуть target. Но где, на каком компьютере?

К счастью, в кластере Ceph у нас есть как минимум один компонент, чей IP-адрес фиксирован и на котором сконфигурирован один из самых важных компонентов Ceph, и этот компонент — монитор. Соответственно, на мониторе устанавливаем iSCSI target (и initator заодно, как минимум для тестов). Я делал это на CentOS, но для любого другого дистрибутива решение также подойдет — достаточно просто ставить пакеты тем способом который приемлем в вашем дистрибутиве.

# yum -y install iscsi-initiator-utils targetcli

Каково назначение устанавливаемых пакетов?

  • targetcli — утилита управления встроенным в ядро Linux SCSI-таргетом
  • iscsi-initiator-utils — пакет с утилитами используемыми для управления опять же встроенным в ядро Linux iSCSI initiator’ом

Для того, чтобы подать образ через iSCSI на инициатор, есть два варианта развития событий — использовать userspace’ный бакэнд таргета или подключать образ как блочное устройство видимое для операционной системы и экспортировать его по iSCSI. Мы пойдем вторым путем — userspace’ный бакэнд пока находится в «экспериментальном» состоянии и для продуктивного использования слегка не готов. Кроме того, с ним есть подводные камни, о которых можно много разговаривать и (о ужас!) спорить.

Если мы используем хоть сколь-нибудь стабильный дистрибутив с дооолгим циклом поддержки, то ядро у нас какой-нибудь древней-древней версии. Например в CentOS7 это 3.10.*, в CentOS8 это 4.19. А нам интересно ядро как минимум 5.3 (а скорее 5.4) и более новое. Почему? Потому, что по умолчанию образы в Ceph имеют подключенный набор опций, который не совместим со старыми ядрами. А значит, мы подключаем репозиторий с новым ядром для нашего дистрибутива (например, для CentOS это elrepo), устанавливаем новое ядро и перезагружаем систему чтобы работать с новым ядром:

  • Подключаемся к выбранному для эксперимента монитору
  • Подключаем репозитории elrepo по инструкции — elrepo.org/tiki/tiki-index.php
  • Устанавливаем ядро: yum -y —enablerepo=elrepo-kernel install kernel-ml
  • Перезагружаем сервер с монитором (у нас ведь три монитора, верно?)

Подключаем образ как блочное устройство

# rbd map mypool/myimage

/dev/rbd0

Осталось только сконфигурировать таргет. В этом примере я сконфигурирую таргет в т.н. demo-режиме — без аутентификации, видимым и доступным для всех. В продуктивной среде Вы, скорее всего, захотите сконфигурировать аутентификацию — но это немного out-of-scope сегодняшнего just-for-fun упражнения.

Создаем бакэнд с именем disk1 сопоставленый файлу /dev/rbd/mypool/myimage. Указанный файл это автоматически созданная демоном udev символьная ссылка на /dev/rbd0. Мы используем именно символьную ссылку, поскольку имя устройства rbd может меняться из за порядка подключения образов Ceph к хосту.

Создаем бакэнд:

# targetcli /backstores/block create disk1 /dev/rbd/mypool/myimage

Создаем iSCSI таргет:

# targetcli /iscsi create iqn.2020-01.demo.ceph:mypool

Подключаем бакэнд как LUN к таргету:

# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/luns create /backstores/block/disk1

Донастраиваем таргет для demo-режима:

# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set \

> attribute demo_mode_write_protect=0

# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set \

> attribute generate_node_acls=1

# targetcli /iscsi/iqn.2020-01.demo.ceph:mypool/tpg1/ set \

> attribute cache_dynamic_acls=1

Сохраняем конфигурацию:

# targetcli saveconfig

Проверяем наличие таргета:

# iscsiadm -m discovery -t st -p 127.0.0.1:3260

127.0.0.1:3260,1 iqn.2020-01.demo.ceph:mypool

Подключаем таргет:

# iscsiadm -m node --login

Logging in to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] (multiple)

Login to [iface: default, target: iqn.2020-01.demo.ceph:mypool, portal: 127.0.0.1,3260] successful.

Если Вы всё сделали правильно, то на сервере появится новый диск, который выглядит как SCSI-устройство, но на самом деле являетс образом из Ceph, доступ к которому идет через iSCSI таргет. Во избежание проблем при загрузке, лучше удалить подключенный диск и обнаруженный таргет с локального инициатора:

# iscsiadm -m node --logout

# iscsiadm -m discoverydb -o delete -t st -p 127.0.0.1:3260

Всё что осталось — персистировать конфигурацию, чтобы образ подключался автоматически и после подключения стратовал таргет. Запуск таргета состоит из двху шагов — подключения RBD и собственно запуска таргета.

Cначала сконфигурируем автоматическое подключение RBD образов к хосту. Делается это добавлением строк в файл /etc/ceph/rbdmap:

# cat /etc/ceph/rbdmap

# RbdDevice Parameters

mypool/myimage id=admin

# systemctl enable rbdmap

С восстановлением конфигурации таргета чуть сложнее — нам надо написать unit для systemd, который будет восстанвливать конфигурацию:

# cat /usr/lib/systemd/system/scsi-target.service

[Unit]

Description=Start iSCSI target

After=network-online.target rbdmap.service

Before=remote-fs-pre.target

Wants=network-online.target remote-fs-pre.target

[Service]

Type=oneshot

RemainAfterExit=yes

ExecStart=/bin/targetcli restoreconfig

[Install]

WantedBy=multi-user.target

# systemctl daemon-reload

# systemctl enable scsi-target

Финальный тест — еще раз перезагружаем наш монитор (он же теперь iSCSI-таргет). Надо заметить, что если бы мы не очистили базу инициатора командой iscsiadm -n discoverydb -o delete … то могли бы получить незагружающийся или долго загружающийся сервер.

Что осталось?

Cконфигурировать инициатор на том сервере куда хотим подать таргет.

Как обеспечить отказоустойчивость нашего таргета?

Можно аналогично сконфигурировать таргеты на других мониторах и устроить multipath (vmware это поймет и даже будет работать, Hyper-V не поймет — там требуются SCSI блокировки). Поскольку клиент Ceph из ядра не использует кэширования, это вполне себе работоспособно. Или другой вариант — создать кластерный ресурс из трех компонентов — выделенного IP-адреса таргета и сервисов rbdmap и scsi-target, и управлять этим ресурсом через инструменты кластеризации (кто сказал pacemaker?)

Вместо послесловия

Как понятно, эта статья немножко шутка — но в ней я попытался «быстро и на примерах» рассмотреть одновременно несколько достаточно популярных тем — iSCSI target, который может совсем не обязательно экспортировать образы Ceph — но например экспортировать тома LVM, азы работы с iSCSI инициатором (как просканировать таргет, как подключиться к таргету, отключиться, удалить запись о таргете из базы), написание собственного юнита для systemd и некоторые другие

Надеюсь, что даже если Вы не будете повторять весь этот эксперимент в полном объеме, то хоть что-нибудь из этой статьи окажется для Вас небесполезным.

Настройка iSCSI хранилища в Windows Server 2012

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.

Запуск службы 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 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 дисков. Для этого переходим в раздел 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).

Источник: http://windowsnotes.ru/windows-server-2012/nastrojka-iscsi-xranilishha-v…

iSCSI 2.0 с FAS2xxx или путь масштабирования маленького ЦОДа / Хабр

Сохранение инвестиций востребовано любой компанией. Важно иметь такой концепт инфраструктуры ЦОД, который бы позволил в случае необходимости легкого масштабироваться, при этом максимально утилизировать существующее оборудование для новых потребностей бизнеса. Переход от iSCSI к iSCSI 2.0 может стать базой для такого концепта. iSCSI over DCB часто называют iSCSI 2.0 благодаря дополнительным расширениям DCB для Ethernet.


В продолжение статьи «FC & Ethernet».

DCB, состоит из

  • PFC (802.1Qbb) — Обеспечивает работу Ethernet без потерь фреймов (Lossless Ethernet)
  • ETS (802.1Qaz) — Назначает пропускную способность фреймам, позволяет низкоприоритетному трафику использовать пропускную способность если она не задейстована
  • CN (802.1Qau) — Ставит источник «на паузу»
  • DCBX — Определяет домен DCB

Свичи поддерживающие DCB часто также поддерживают Shortest Path Bridging IEEE 802.1AQ и/или IETF TRILL позволяющие выбрать наиболее короткий путь для Ethernet трафика, что позитивно сказывается на работе iSCSI.

iSCSI успел эволюционировать научившись работать с Thin Provisioning (SCSI SBC-3) и Space Reclamation (T10 UNMAP), у него есть возможности балансировки нагрузки и обеспечения отказоустойчивости путей (при помощи MPIO и/или MCS).
Важно отметить что все хранилища NetApp FAS поддерживают протокол iSCSI на всех своих Ethernet дата-портах. Начиная с версии Data ONTAP 8.1.3 поддерживаются SCSI SBC-3 и UNMAP, начиная с версии DATA Ontap 8.2.1 системы хранения FAS поддерживают DCB.
Таким образом iSCSI может стать идеальным кандидатом для роста маленького ЦОД, если обеспечит:

  • Высокую производительность (можно достичь при помощи не большего тюнинга, а также благодаря DCB).
  • Единый концепт подключения СХД в случае роста от «маленького» до «большого ЦОД», для сохранения инвестиций.
  • Относительно простой переход от дизайна «маленького ЦОД» direct-attached или Switched (с дешевыми свичами) подключений СХД к дизайну «большого ЦОД», для будущего роста.

Для этого предлагаю рассмотреть преимущества и недостатки нескольких дизайнов соблюдая единый концепт — подключение СХД NetApp FAS по iSCSI. Эти дизайны должны быть относительно просты для преобразования маленького ЦОД в большой.

Схематическое обозначение предлагаемых путей перехода между конфигурациями при росте ЦОД, а-ля квадрат Гартнера:

iSCSI тюнинг

По-скольку iSCSI живет поверх Ethernet, необходимо настроить Flow Control (не путать «обычный» FlowControl с PFC IEEE 802.1Qbb для DCB Losless Ethernet) и настроить Jumbo Frames на сетевых адаптерах хостов, на СХД и на свичах (если они есть). Использование MPIO/MCS внутри одного линка может увеличить его суммарную пропускную способность по сравнению с использованием одного соединения в линке. Рекомендуется выделить отдельный VLAN для iSCSI трафика если свич используется для смешанного типа трафика.

Directly-Attached iSCSI

Дизайн такого «маленького ЦОД» состоит из одного-двух серверов напрямую подключённых в СХД каждый минимум двумя линками для отказоустойчивости: один к одному контроллеру СХД, другой к другому. На этом этапе вполне логично использовать бесплатный Software iSCSI Initiator. В случае увеличения хоcтов необходимо или добавить порты на хранилище или установить свичи. В зависимости от модели хранилища может быть разное количество Ethernet портов. Важно отметить что все Ethernet порты на хранилищах NetApp FAS (нет «выделенных» iSCSI портов) могут быть использованы для таких типов трафика: iSCSI, NFS, CIFS (SMB), в том числе и одновременно.

  • Положительной стороной является относительная дешевизна (не нужны специализированные адаптеры для хостов, не нужны свичи) и простота.
  • Отрицательной стороной такого решения будет низкая масштабируемость и дополнительная нагрузка на CPU хоста выполняющего функцию Software iSCSI Initiator.







AttributeValue
Fully redundantYes
Type of networkNone, direct-attached
Different host operating systemsYes, with multiple-host configurations
Multipathing requiredYes
Type of Storage configurationHA pair
Switched iSCSI

В такой схеме необходимо иметь как минимум два линка от каждого узла, каждый линк подключённый через разные коммутаторы. Это обеспечит полную отказоустойчивость при выходе контроллера, свича или пути. На этом этапе всё еще можно использовать Software iSCSI Initiator или комбинацию с выделенным iSCSI HBA (который офлоадил бы нагрузку с CPU хоста).

  • Обновление с Direct-Attached конфигурации относительно простое и может быть выполнено без отключения сервиса, возможно понадобится добавить пару дополнительных путей после подключения свичей. В случае необходимости установки iSCSI HBA адаптера, остановка хоста неизбежна.
  • К положительной стороне такого дизайна можно отнести относительно высокую масштабируемость, простоту настройки и дешевизну сети.
  • К отрицательной стороне такого решения можно отнести потерю фреймов в сети ведущую к увеличению отклика между хранилищем и хостом. Для небольших конфигураций обеспечит более чем приемлемый уровень отклика.







AttributeValue
Fully redundantYes
Type of networkMulti-network
Different host operating systemsYes, with multiple-host configurations
Multipathing requiredYes
Type of Storage configurationHA pair
iSCSI 2.0

Так же как и Switched iSCSI, в случае iSCSI 2.0 используются свичи, но они должны поддерживать DCB. В этом дизайне также понадобятся сетевые адаптеры поддерживающие DCB как на хосте так и на хранилище. Таким образом DCB должен поддерживаться на всем пути следования iSCSI трафика. DCB известен также как Lossless Ethernet, он обеспечивает гарантированную доставку фреймов повышая надежность, производительность и скорость отклика до уровня FC. Важно отметить, что DCB поддерживают все конвергентные Ethernet порты на хранилищах NetApp FAS (нет «выделенных» iSCSI или FCoE портов) и могут быть использованы для всех типов трафика: iSCSI (2.0), FCoE, NFS, CIFS (SMB), в том числе и одновременно. На хосте поддерживаются CNA (HBA) адаптеры QLogic 8300 для работы с DCB, этот адаптер позволяет оффлоадить нагрузку с CPU хоста обеспечивая низкую скорость отклика хранилища. Некоторые дополнительные фичи свичей могут улучшить и без того низкий уровень отклика для iSCSI, к примеру CLEAR-Flow.

  • Таким образом для перехода от Switched iSCSI к iSCSI 2.0 необходимо заменить сетевые карты и свичи на DCB совместимые, полостью оставляя топологию сети и схему мультипасинга, как она была. DCB настраивается на сетевых картах и свичах. Оставшиеся после замены старые «обычные» свичи можно задействовать для подключения клиентов к серверам. Обновление с Switched iSCSI конфигурации без приостановки в обслуживании возможно при условии что iSCSI HBA адаптер уже установлен в хост. В случае необходимости установки iSCSI HBA адаптера, остановка хоста неизбежна.

К преимуществам iSCSI over DCB можно отнести:

  • Относительная простота настройки коммутаторов
  • Низкий отклик от хранилища до приложения
  • Возможность использования QoS в средах со смешанным трафиком
  • Предотвращает потерю фреймов и увеличивает жизнеспособность фреймов Ethernet
  • Увеличенная производительность IP протоколов включая iSCSI.

К недостатки iSCSI over DCB:

  • Архитектура предусматривает не большое число хопов от хоста к хранилищу, в идеале хоп должен быть один.
  • Необходимость расчёта уровня переподписки и соблюдения коэффициента Fan-In в случае увеличения чила хопов.







AttributeValue
Fully redundantYes
Type of networkDCB, Dual fabric
Different host operating systemsYes, with multiple-host configurations
Multipathing requiredYes
Type of Storage configurationHA pair
  • Запасной вариант: Все конвергентные порты NetApp FAS лекго могут быть модифицированы простой заменой SFP+ модулей, вместо Ethernet свичей с DCB для iSCSI всегда можно купить FC свичи или задействовать те же Ethernet свичи с DCB для подключения по FCoE, а так как NetApp FAS поддерживает доступ к одному и тому же луну по всем этим протоколам, переключение между протоколами FC/FCoE/iSCSI происходит без потери данных или конвертаций. К отрицательной стороне FC и FCoE можно отнести относительно высокую сложность в настройке коммутаторов. Выбирая между FC и FCoE обратите внимание на статью «FCoE: Будущее Fibre Channel» и статью «Консолидация LAN и SAN сетей ЦОД на базе протоколов DCB и FCoE»
Масштабирование FAS

Есть несколько путей роста систем NetApp FAS:

  1. Добавить полки с дисками (без останова)
  2. Объединить систему в кластер с такой же или старшей маделью (без останова)
  3. Конвертировать контроллер FAS255x в полку, докупить новые контроллеры, переключить конвертированную и все остальные полки на новые контроллеры (простой не избежен)
  4. Объединить в кластер, мигрировать данные в онлайне, вывести старую систему из кластера, конвертировать FAS255x в полку и переключить старые полки в новую систему (без останова)
Выводы

Таким образом протокол iSCSI с хранилищем NetApp FAS может быть базой для начала роста от «маленького ЦОД» до «большого», поэтапно и просто обновляя дизайн сети, соблюдая единый концепт адресации и мультипасинга. При обновлении максимально утилизируется уже приобретённое оборудование. Каждый шаг обновления повышает масштабируемость инфраструктуры ЦОД, её скорость и уменьшает отклик для приложений, при этом выполняя затраты по мере необходимости. Благодаря универсальности СХД FAS, поддержке передовых тенденций развития ЦОД и возможности взаимно заменять протоколы (или использовать их все одновременно в том числе и по тем же портам), легкой масштабируемостью, она является хорошим инвестиционным вложением как для малых так и «больших ЦОД».

Лучшие практики

Подробнее о рекомендациях топологии сети и зонирования для NetApp в картинках.
Очень важно соблюдать лучшие практики при конфигурировании инфраструктуры и проверять матрицу совместимости для достижения максимальной производительности и отказоустойчивости:
TR-3441 Windows Multipathing Options with Data ONTAP: Fibre Channel and iSCSI
WP-7071: «How Do I Get to Ethernet from Here?»
TR-3519: «The Road to 10-Gigabit Ethernet»
WP-7046: «Ethernet Storage»
TR-3441: «iSCSI Multipathing Possibilities on Windows with Data ONTAP»
TR-3163: «Data Protection and Recovery for Network-Attached Storage over IP/Ethernet Networks»
WP-7052: «Converged Enhanced Ethernet—Good for iSCSI SANs»
TR-3519: «The Road to 10-Gigabit Ethernet»
iSCSI 10Gig Performance Tuning With Windows Server
iSCSI Configuration and Provisioning for Windows
TR-3802 Ethernet Storage Best Practices
TR-4182 Ethernet Storage Design Considerations and Best Practices
Best Practices for Network Configuration with NetApp Storage Systems
NetApp Verifying that DCB is configured correctly
Доступны для прохождения курсы «NetApp SAN Design» и «SAN Fundamentals on Data ONTAP» в академии NetApp.

Источники:
sniaesfblog.org/?p=210&cpage=1#comment-82839
blogs.cisco.com/datacenter/the-napkin-dialogues-lossless-iscsi
www.storage-switzerland.com/Articles/Entries/2012/1/17_iSCSI_2.0_-_Using_Data_Center_Bridging_To_Enhance_iSCSI.html
www.snia.org/sites/default/education/tutorials/2010/spring/networking/GaryGumanow-JasonBlosil_iSCSI_Lossless_Ethernet_DCB.pdf
www.slideshare.net/extreme-muk/i-scsi-extremeintelnetappclearflow

Замечания по ошибкам и предложения правок в тексте прошу направлять в ЛС.

ISCSI — это… Что такое ISCSI?

iSCSI

Протокол iSCSI (Internet Small Computer System Interface) — это протокол, который базируется на TCP/IP и разработан для установления взаимодействия и управления системами хранения данных, серверами и клиентами.

iSCSI описывает:

  • Транспортный протокол для SCSI, который работает поверх TCP.
  • Новый механизм инкапсуляции SCSI команд в IP сети.
  • Протокол для нового поколения систем хранения данных, которые будут использовать «родной» TCP/IP.

Протокол iSCSI является стандартизованным по RFC 3720. Существует много коммерческих и некоммерческих реализаций этого протокола.

Системы на основе iSCSI могут быть построены на любой достаточно быстрой физической основе, поддерживающей протокол IP, например Gigabit Ethernet или 10G Ethernet. Использование стандартного протокола позволяет применять стандартные средства контроля и управления потоком, а также существенно уменьшает стоимость оборудования по сравнению с сетями Fibre Channel.

Архитектура

ISCSI — клиент-серверная архитектура. Сервер (принимающий запросы) называется iSCSI target, клиент — iSCSI initiator.

Сервер (target) может быть реализован как программно, так и аппаратно. Программная реализация принимает запросы по сети, обрабатывает их, читает (записывает) нужные данные на носитель, отдаёт информацию (результат) обратно по сети. Так как эти операции при высокой интенсивности запросов занимают существенное время процессора, были созданы аппаратные iSCSI HBA (адаптеры), которые совмещают в себе сетевую карту Ethernet и SCSI-контроллер.

iSCSI работает на блочном уровне. Объектом, к которому предоставляется доступ, является область данных, интерпретируемая инициатором как блочное устройство (диск). Доступ является монопольным (за исключением специально рассчитанных на это файловых систем и файловых систем в режиме «только для чтения»). Обязанность создавать и обслуживать файловую систему возлагается на инициатора; сервер (цель, target) лишь обслуживает низкоуровневые запросы, аналогичные запросам, которые обслуживает драйвер диска при работе с локальными дисками.

Для адресации по сети и клиент и сервер имеют свои адреса, которые должны быть уникальными.

Адрес может иметь один из двух видов: iqn и eui.

  • iqn-адрес (англ. iSCSI Qualified Name, квалифицированное iSCSI-имя) — …
  • eui (IEEE EUI-64 format)…

Для iqn используется (в теории, см ниже) следующий формат адреса имени:

iqn.2001-04.com.example:storage.tape1.sys1.xyz
 ~ ~~ ~
 1      2        3               4 
  1. iqn — указание на тип
  2. Дата регистрации доменного имени в формате год-месяц (ГГГГ-ММ)
  3. Доменное имя в реверсивной форме (org.wikimedia.commons для commons.wikimedia.org)
  4. Заданное (в пределах домена) имя ресурса в произвольной форме. Отделяется от первых трёх частей двоеточием.

Ben Rockwood в руководстве «A Quick Guide to iSCSI on Linux» пишет, что он не знает инициаторов, которые бы действительно использовали бы DNS для разрешения имени цели (target) из iqn; в большинстве случаев IP-адрес (доменное имя) сервера запрашивается отдельно, а весь iqn используется как единая строка идентификации ресурса[1].

Для обнаружения списка доступных устройств на iSCSI цели (сервере) используется технология обнаружения (discovery, auto-discovery). Это сервис, слушающий на порте tcp (обычно, 3260) запросы клиентов и отдающий им список доступных целей. Такой сервис называют порталом (англ. portal).

Помимо порталов, для поиска доступных целей может так же использоваться iSNS (Internet storage name service).

Дополнительно, iSCSI поддерживает multipath.

Примеры реализаций

Инициаторы (клиенты)

Присутствует в стандартной сборке Linux с версии 2.6.16.

Программный сервер (target)

Также существует монолитный проект на основе BSD — OpenNAS,

На основе FreeBSD 7.2 сделан FreeNAS (может выступать как в качестве target, так и initiator). Сайт проекта FreeNAS

Аналог FreeNAS, но на основе Linux — проект Openfiler (также может выступать как в качестве target, так и initiator)

Преимущества

  • Консолидация систем хранения данных
  • Резервирование данных
  • Кластеризация серверов
  • Репликация
  • Восстановление в аварийных ситуациях
  • Географическое распределение SAN
  • QoS
  • Безопасность

Недостатки

…основным препятствием для распространения Ethernet как базовой технологии построения сетей хранения данных является относительно большое время задержки (близкое к 75 микросекундам), которое возникает из-за особенностей стека TCP/ІР. В High-End системах при одновременном обращении к тысячам файлов это может стать серьёзной проблемой.

Ссылки

Источники

Linux iSCSI HOWTO

Ошибка цитирования Для существующего тега <ref> не найдено соответствующего тега <references/>

Бездисковая загрузка с использованием PXE и iSCSI на примере Ubuntu / Хабр

Здравствуйте.

В этой статье будет рассказано, как запилить сервер, который будет при включении грузиться по PXE, потом монтировать корневую файловую систему по iSCSI и спокойно жить дальше.

Что необходимо?

Для загрузки системы нужны три компонента: ядро, initramfs и корневая файловая система.
Ядро и initramfs мы передадим по TFTP, а корневую файловую систему — по iSCSI.

iSCSI-таргеты

Небольшой ликбез по iSCSI

iSCSI — реализация протокола SCSI поверх TCP. Сам протокол SCSI весьма универсален, теоретически с его помощью можно подключить устройство любого типа. Тем не менее, в большинстве случаев SCSI используется для доступа к тем или иным устройствам хранения данных (жёсткие диски, приводы CD и DVD и т. п.). Для примера Mass Storage Device, использующийся в USB-устройствах, является реализацией SCSI поверх USB. Поэтому, кстати, флешки в Linux опознаются как /dev/sdX-устройства. Использующаяся на серверах шина SAS также является реализацией SCSI (собственно, это видно из названия — Serial Attached SCSI).

В iSCSI различаются понятия таргета (target, целевое устройство, осуществляет приём и выполнение запросов) и инициатора (initiator, порождает запросы). В более привычных терминах таргет — это сервер, а инициатор — клиент.

Таргеты и инициаторы бывают разных видов. iSCSI-таргетом может выступать обычный компьютер, сервер или система хранения данных. Инициаторами обычно выступают сетевые карты (в их ROM бывает прошит необходимый код) или software-реализации.

Для Ubuntu возможно использовать различные iSCSI-таргеты. Вот неполный их список:

  • ISCSI Enterprise Target — одна из самых старых реализаций iSCSI-таргета на Linux. Насколько мне известно, жива и здравствует, однако требует установки (в Ubuntu) через DKMS и совсем лёгкого дребезга бубнов. На opennet.ru есть рабочий HOWTO, применимый и к более поздним версиям ОС (Precise)
  • SCSI Target Framework (STGT/TGT) — реализация iSCSI-таргета, портированная из BSD-систем. В отличии от IET, позволяет использовать не только iSCSI, но и другие родственные технологии (такие, как, например, SRP). К сожалению, код STGT в части iSCSI в линуксе работает в userspace. Как следствие, производительность получается где-то в районе плинтуса.
  • SCST — новая реализация универсального таргета для Linux. По заявлениям разработчиков обладает массой преимуществ и фишек. В ядро не включена, для установки требует патчей исходников ядра и продолжительного зубодробительного секса. По слухам, мила, прекрасна и похожа на сакуру. Когда-то давно ее использовали, например, в Оверсан-Скалакси (их опыт вкратце описан на хабре). Пакеты для Ubuntu перестали поддерживаться около полутора лет назад, в SVN есть некоторая активность, то есть проект жив и здравствует. Кстати, разработчики — русские парни 🙂
  • LIO — Linux Unified Target, универсальная система, реализующая iSCSI, SRP, FCoE и несколько других вариантов экспорта устройств в сеть. Официально включена в ядро и является стандартным таргетом, начиная с версии 2.6.38. К ней есть определенные претензии в плане того, что на официальном сайте активно продвигается проприетарная сборка, обладающая большим функционалом, но оставим вопли RMS.

Я буду пользоваться LIO, но ничто не мешает реализовать аналогичный функционал на другом таргете или на проприетарной промышленной СХД, вроде NetApp или EMC.

Вариант, предлагаемый ниже, состоит из двух серверов: таргета, который дополнительно к iSCSI-таргету содержит на себе DHCP и tftp-сервер, необходимые для начальной загрузки и инициатора, у которого дисков нет, а есть только сетевая карта.

На таргете желательно использовать LVM для нарезания томов, но можно использовать и обычные файлы.

1. Образ целевой системы

Создадим том размером 16 ГиБ, который будет отдаваться по iSCSI (моя VolumeGroup называется vg00, том будет называться client):

root@target:~# lvcreate -L 16G -n client vg00
  Logical volume "client" created
1.1. Разделы и файловые системы

Я люблю и уважаю LVM за его гибкость и удобство в работе, поэтому использую сетап, не требующий таблицы разделов на образе client. Вместо этого сразу на client создаётся еще одна VolumeGroup, которая потом режется на lv-тома.

root@target:~# pvcreate /dev/mapper/vg00-client
  Physical volume "/dev/mapper/vg00-client" successfully created
root@target:~# vgcreate client /dev/mapper/vg00-client
  Volume group "client" successfully created
root@target:~# lvcreate -L 12G -n rootfs client
  Logical volume "rootfs" created
root@target:~# lvcreate -l 100%FREE swap client
  Logical volume "swap" created

Создадим файловую систему и разметим раздел под swap:

root@target:~# mkfs.ext4 /dev/mapper/client-rootfs
root@target:~# mkswap /dev/mapper/client-swap
1.2 Сам образ системы

Примонтируем файловую систему и развернем туда с помощью debootstrap минимальный образ:

root@target:~# mount /dev/mapper/client-rootfs /mnt
root@target:~# debootstrap --include=openssh-server,language-pack-ru,aptitude,nano,vim,bash-completion,wget,curl,open-iscsi,initramfs-tools precise /mnt/ http://mirror.yandex.ru/ubuntu/

Стоит слегка подправить получившуюся систему:

root@target:~# echo "client" > /mnt/etc/hostname
root@target:~# echo -e "\nauto eth0\niface eth0 inet manual" >> /mnt/etc/network/interfaces
root@target:~# echo "InitiatorName=iqn.2013-02.org.example.client:default" > /mnt/etc/iscsi/initiatorname.iscsi

Обратите внимание, мы заменили initiatorname.iscsi. IQN — это iSCSI Qualified Name, он обязательно должен быть уникальным. IQN нашего инициатора — iqn.2013-02.org.example.client:default.

Приведем fstab к нужному виду:

root@target:~# editor /mnt/etc/fstab
proc                     /proc  proc  nodev,noexec,nosuid  0  0
/dev/mapper/client-rootfs  /      ext4  errors=remount-ro    0  1
/dev/mapper/client-swap    none   swap  sw                   0  0

Чтобы не оказаться в глупом положении, нужно изменить пароль в новой системе.

root@target:~# chroot /mnt/ /bin/bash
root@target:~# passwd
root@target:~# exit

Отмонтируем rootfs и деактивируем группу томов, чтобы случайно ее не задеть:

root@target:~# umount /mnt/
root@target:~# vgchange -an client

Образ системы готов! Загрузчик ему не нужен, ядро будет запускаться с помощью pxelinux.

2. iSCSI-таргет

Установим userspace-утилиты для управления таргетом:

root@target:~# aptitude install -y targetcli python-urwid

И запустим утилиту управления таргетом — targetcli:

root@target:~# targetcli
2.1. Backstore

Находясь в консоли targetcli необходимо выполнить следующие команды:

set global auto_cd_after_create=false
cd /backstores/iblock/
create dev=/dev/mapper/vg00-client name=client

Таким образом будет создан backstore для нашего тома vg00-client.

2.2. iSCSI

Создадим таргет:

cd /iscsi
create wwn=iqn.2013-02.org.example.target:client
cd iqn.2013-02.org.example.target:client/tpgt1/

Назначим предварительно созданный backstore этому таргету:

luns/ create /backstores/iblock/client

Назначим таргету интерфейс для работы (без указания параметров назначатся все активные интерфейсы):

portals/ create

Настроим права доступа (документация по правам доступа доступна на официальном сайте:

cd acls
create iqn.2013-02.org.example.client:default
cd iqn.2013-02.org.example.client:default
set auth userid=client password=secret
2.3. Сохранение настроек

Несмотря на то, что действия в targetcli выполняются немедленно, они не сохраняются и после перезагрузки все таргеты не вернутся. В этом поведение LIO похоже на поведение любых других ядерных служб (iptables, ebtables, ipvsadm и т. п.). При сохранении настроек targetcli компилирует всю конфигурацию в shell-скрипт, который просто скармливает нужные данные в configFS.

Сохраним все настройки:

cd /
saveconfig

Таргет готов! Перейдем к настройке DHCP + TFTP.

3. DHCP-сервер

Предполагаем следующую конфигурацию:
Серверы живут в сети 10.0.0.0/24, таргет живет на 10.0.0.2, клиент получает по DHCP адрес 10.0.0.5.

Мануалов в сети море, поэтому коротко:

root@target:~# aptitude install -y isc-dhcp-server

dhcpd.conf:

allow booting;
allow bootp;

subnet 10.0.0.0 netmask 255.255.255.0 {
	range 10.0.0.10 10.0.0.254;
	option broadcast-address 10.0.0.255;
	option routers 10.0.0.1;
	option domain-name-servers 8.8.8.8;
	filename "/pxelinux.0";
}

host client {
	hardware ethernet XX:XX:XX:XX:XX:XX; # Тут должен быть MAC-адрес сетевой карты client'а
	fixed-address 10.0.0.5;
}

Стартуем демон:

root@target:~# /etc/init.d/isc-dhcp-server start
4. TFTP-сервер

Опять же, мануалов в сети море.

root@target:~# aptitude install -y tftpd-hpa
root@target:~# /etc/init.d/tftpd-hpa start
5. Syslinux

Устанавливаем пакет:

root@target:~# aptitude install -y syslinux syslinux-common

Копируем pxelinux.0 в /var/lib/tftpboot:

root@target:~# cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftboot

Также нам необходим образ ядра (можно взять с хост-системы). Сейчас у меня используется ядро от Ubuntu версии 3.2.0.37:

root@target:~# cp /vmlinuz /var/lib/tftboot/vmlinuz-3.2.0-37-generic

Дальше нужно собрать правильный initramfs. Для этого нам нужен модуль iSCSI:

root@target:~# echo "iscsi" >> /etc/initramfs-tools/modules
root@target:~# touch /etc/iscsi/iscsi.initramfs
root@target:~# mkinitramfs -o /var/lib/tftpboot/initrd.img-3.2.0-37-generic

Pxelinux будет искать файл с конфигурацией в директории pxelinux.cfg относительно корня tftp-сервера. Создадим ему конфигурацию:

root@target:~# mkdir /var/lib/tftpboot/pxelinux.cfg
root@target:~# editor /var/lib/tftpboot/pxelinux.cfg/01-XX-XX-XX-XX-XX-XX

Вместо XX необходимо подставить MAC-адрес сетевой карты client’а, записанный в нижнем регистре через минусы, а не через двоеточия.

Содержимое файла:

DEFAULT linux

label linux
	kernel vmlinuz-3.2.0-37-generic
	append initrd=initrd.img-3.2.0-37-generic root=/dev/mapper/client-rootfs ip=dhcp iscsi_initiator=iqn.2013-02.org.example.client:default iscsi_target_name=iqn.2013-02.org.example.target:client iscsi_target_ip=10.0.0.2 iscsi_target_port=3260 console=tty0 iscsi_username=client iscsi_password=secret
	ipappend 2

Логин и пароль здесь необходимо использовать те же, что были указаны при настройке прав доступа к таргету.

Настройка Syslinux закончена. Теперь можно насладиться загрузкой 🙂

Мой лог загрузки выглядит примерно так:

Много букв

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.0-37-generic (buildd@allspice) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #58-Ubuntu SMP Thu Jan 24 15:28:10 UTC 2013 (Ubuntu 3.2.0-37.58-generic 3.2.35)
[    0.000000] Command line: initrd=initrd.img-3.2.0-37-generic root=/dev/mapper/client-rootfs ip=dhcp iscsi_initiator=iqn.2013-02.org.example.client:default iscsi_target_name=iqn.2013-02.org.example.target:client iscsi_target_ip=10.0.0.5 iscsi_target_port=3260 console=ttyS0 iscsi_username=client iscsi_password=secret BOOT_IMAGE=vmlinuz-3.2.0-37-generic BOOTIF=01-XX-XX-XX-XX-XX-XX 
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009f400 (usable)
[    0.000000]  BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000dfffd000 (usable)
[    0.000000]  BIOS-e820: 00000000dfffd000 - 00000000e0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000feffc000 - 00000000ff000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 0000000120000000 (usable)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI 2.4 present.
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x120000 max_arch_pfn = 0x400000000
[    0.000000] PAT not supported by CPU.
[    0.000000] last_pfn = 0xdfffd max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [ffff8800000fdaf0] fdaf0
[    0.000000] init_memory_mapping: 0000000000000000-00000000dfffd000
[    0.000000] init_memory_mapping: 0000000100000000-0000000120000000
[    0.000000] RAMDISK: 7f16e000 - 7ffff000
[    0.000000] ACPI: RSDP 00000000000fd970 00014 (v00 BOCHS )
[    0.000000] ACPI: RSDT 00000000dfffd7b0 00034 (v01 BOCHS  BXPCRSDT 00000001 BXPC 00000001)
[    0.000000] ACPI: FACP 00000000dfffff80 00074 (v01 BOCHS  BXPCFACP 00000001 BXPC 00000001)
[    0.000000] ACPI: DSDT 00000000dfffd9b0 02589 (v01   BXPC   BXDSDT 00000001 INTL 20100528)
[    0.000000] ACPI: FACS 00000000dfffff40 00040
[    0.000000] ACPI: SSDT 00000000dfffd910 0009E (v01 BOCHS  BXPCSSDT 00000001 BXPC 00000001)
[    0.000000] ACPI: APIC 00000000dfffd830 00072 (v01 BOCHS  BXPCAPIC 00000001 BXPC 00000001)
[    0.000000] ACPI: HPET 00000000dfffd7f0 00038 (v01 BOCHS  BXPCHPET 00000001 BXPC 00000001)
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at 0000000000000000-0000000120000000
[    0.000000] Initmem setup node 0 0000000000000000-0000000120000000
[    0.000000]   NODE_DATA [000000011fffb000 - 000000011fffffff]
[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000000] kvm-clock: cpu 0, msr 0:1cfa741, boot clock
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   0x00100000 -> 0x00120000
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[3] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x0000009f
[    0.000000]     0: 0x00000100 -> 0x000dfffd
[    0.000000]     0: 0x00100000 -> 0x00120000
[    0.000000] ACPI: PM-Timer IO Port: 0xb008
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level)
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.000000] SMP: Allowing 1 CPUs, 0 hotplug CPUs
[    0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000f0000
[    0.000000] PM: Registered nosave memory: 00000000000f0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 00000000dfffd000 - 00000000e0000000
[    0.000000] PM: Registered nosave memory: 00000000e0000000 - 00000000feffc000
[    0.000000] PM: Registered nosave memory: 00000000feffc000 - 00000000ff000000
[    0.000000] PM: Registered nosave memory: 00000000ff000000 - 00000000fffc0000
[    0.000000] PM: Registered nosave memory: 00000000fffc0000 - 0000000100000000
[    0.000000] Allocating PCI resources starting at e0000000 (gap: e0000000:1effc000)
[    0.000000] Booting paravirtualized kernel on KVM
[    0.000000] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:1 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88011fc00000 s83136 r8192 d23360 u2097152
[    0.000000] kvm-clock: cpu 0, msr 1:1fc13741, primary cpu clock
[    0.000000] KVM setup async PF for cpu 0
[    0.000000] kvm-stealtime: cpu 0, msr 11fc0ddc0
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1030023
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: initrd=initrd.img-3.2.0-37-generic root=/dev/mapper/client-rootfs ip=dhcp iscsi_initiator=iqn.2013-02.org.example.client:default iscsi_target_name=iqn.2013.org.example.target:client iscsi_target_ip=10.0.0.2 iscsi_target_port=3260 console=ttyS0 iscsi_username=client iscsi_password=secret BOOT_IMAGE=vmlinuz-3.2.0-37-generic BOOTIF=01-52-54-00-f9-94-84 
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 4031384k/4718592k available (6569k kernel code, 524752k absent, 162456k reserved, 6634k data, 924k init)
[    0.000000] SLUB: Genslabs=15, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] NR_IRQS:16640 nr_irqs:256 16
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [ttyS0] enabled
[    0.000000] allocated 33554432 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Detected 2266.734 MHz processor.
[    0.008000] Calibrating delay loop (skipped) preset value.. 4533.46 BogoMIPS (lpj=9066936)
[    0.008000] pid_max: default: 32768 minimum: 301
[    0.008000] Security Framework initialized
[    0.008000] AppArmor: AppArmor initialized
[    0.008006] Yama: becoming mindful.
[    0.008938] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.014373] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.017441] Mount-cache hash table entries: 256
[    0.018407] Initializing cgroup subsys cpuacct
[    0.019156] Initializing cgroup subsys memory
[    0.019862] Initializing cgroup subsys devices
[    0.020009] Initializing cgroup subsys freezer
[    0.020729] Initializing cgroup subsys blkio
[    0.021438] Initializing cgroup subsys perf_event
[    0.022310] mce: CPU supports 10 MCE banks
[    0.023163] SMP alternatives: switching to UP code
[    0.046402] Freeing SMP alternatives: 24k freed
[    0.047197] ACPI: Core revision 20110623
[    0.049052] ftrace: allocating 27033 entries in 107 pages
[    0.053445] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.056008] CPU0: Intel QEMU Virtual CPU version 1.0 stepping 03
[    0.060003] Performance Events: unsupported p6 CPU model 2 no PMU driver, software events only.
[    0.060003] NMI watchdog disabled (cpu0): hardware events not enabled
[    0.060003] Brought up 1 CPUs
[    0.060003] Total of 1 processors activated (4533.46 BogoMIPS).
[    0.060949] devtmpfs: initialized
[    0.062513] EVM: security.selinux
[    0.063081] EVM: security.SMACK64
[    0.064008] EVM: security.capability
[    0.065558] print_constraints: dummy: 
[    0.066254] RTC time:  8:35:28, date: 02/13/13
[    0.067076] NET: Registered protocol family 16
[    0.068142] ACPI: bus type pci registered
[    0.068984] PCI: Using configuration type 1 for base access
[    0.071152] bio: create slab <bio-0> at 0
[    0.072068] ACPI: Added _OSI(Module Device)
[    0.072749] ACPI: Added _OSI(Processor Device)
[    0.073440] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.074209] ACPI: Added _OSI(Processor Aggregator Device)
[    0.077515] ACPI: Interpreter enabled
[    0.078121] ACPI: (supports S0 S3 S4 S5)
[    0.078821] ACPI: Using IOAPIC for interrupt routing
[    0.084201] ACPI: No dock devices found.
[    0.084895] HEST: Table not found.
[    0.085425] PCI: Ignoring host bridge windows from ACPI; if necessary, use "pci=use_crs" and report a bug
[    0.086946] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.090705] pci 0000:00:01.3: quirk: [io  0xb000-0xb03f] claimed by PIIX4 ACPI
[    0.091834] pci 0000:00:01.3: quirk: [io  0xb100-0xb10f] claimed by PIIX4 SMB
[    0.106317]  pci0000:00: Unable to request _OSC control (_OSC support mask: 0x1e)
[    0.111437] ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11)
[    0.112353] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11)
[    0.113383] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11)
[    0.114405] ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11)
[    0.115445] ACPI: PCI Interrupt Link [LNKS] (IRQs 9) *0
[    0.116580] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.117820] vgaarb: loaded
[    0.118246] vgaarb: bridge control possible 0000:00:02.0
[    0.119255] i2c-core: driver [aat2870] using legacy suspend method
[    0.120010] i2c-core: driver [aat2870] using legacy resume method
[    0.121145] SCSI subsystem initialized
[    0.122065] usbcore: registered new interface driver usbfs
[    0.123105] usbcore: registered new interface driver hub
[    0.124097] usbcore: registered new device driver usb
[    0.125155] PCI: Using ACPI for IRQ routing
[    0.126210] NetLabel: Initializing
[    0.126763] NetLabel:  domain hash size = 128
[    0.127433] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.128032] NetLabel:  unlabeled traffic allowed by default
[    0.128990] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
[    0.130101] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[    0.130934] hpet0: 3 comparators, 64-bit 100.000000 MHz counter
[    0.136107] Switching to clocksource kvm-clock
[    0.148989] AppArmor: AppArmor Filesystem Enabled
[    0.149895] pnp: PnP ACPI init
[    0.150435] ACPI: bus type pnp registered
[    0.151988] pnp: PnP ACPI: found 7 devices
[    0.152654] ACPI: ACPI bus type pnp unregistered
[    0.160397] NET: Registered protocol family 2
[    0.161303] IP route cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.164047] TCP established hash table entries: 524288 (order: 11, 8388608 bytes)
[    0.172712] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.174734] TCP: Hash tables configured (established 524288 bind 65536)
[    0.175833] TCP reno registered
[    0.176352] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    0.177370] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    0.178544] NET: Registered protocol family 1
[    0.179266] pci 0000:00:00.0: Limiting direct PCI/PCI transfers
[    0.180202] pci 0000:00:01.0: PIIX3: Enabling Passive Release
[    0.181110] pci 0000:00:01.0: Activating ISA DMA hang workarounds
[    0.182264] ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11
[    0.183173] pci 0000:00:01.2: PCI INT D -> Link[LNKD] -> GSI 11 (level, high) -> IRQ 11
[    0.184481] pci 0000:00:01.2: PCI INT D disabled
[    0.185283] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.186279] Placing 64MB software IO TLB between ffff8800dbffb000 - ffff8800dfffb000
[    0.187449] software IO TLB at phys 0xdbffb000 - 0xdfffb000
[    0.188792] audit: initializing netlink socket (disabled)
[    0.189648] type=2000 audit(1360744529.188:1): initialized
[    0.214809] Trying to unpack rootfs image as initramfs...
[    0.252156] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    0.260222] VFS: Disk quotas dquot_6.5.2
[    0.260991] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.262670] fuse init (API version 7.17)
[    0.263431] msgmni has been set to 7873
[    0.276232] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    0.284047] io scheduler noop registered
[    0.284669] io scheduler deadline registered
[    0.285369] io scheduler cfq registered (default)
[    0.286292] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    0.287194] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    0.288463] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[    0.289622] ACPI: Power Button [PWRF]
[    0.291210] ERST: Table is not found!
[    0.291840] GHES: HEST is not enabled!
[    0.292657] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
[    0.293566] virtio-pci 0000:00:03.0: PCI INT A -> Link[LNKC] -> GSI 10 (level, high) -> IRQ 10
[    0.294992] virtio-pci 0000:00:04.0: PCI INT A -> Link[LNKD] -> GSI 11 (level, high) -> IRQ 11
[    0.300282] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    0.322807] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.370917] 00:05: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.396364] Linux agpgart interface v0.103
[    0.404625] brd: module loaded
[    0.406062] loop: module loaded
[    0.407646] scsi0 : ata_piix
[    0.412224] scsi1 : ata_piix
[    0.412760] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc060 irq 14
[    0.413870] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc068 irq 15
[    0.415327] Fixed MDIO Bus: probed
[    0.415894] tun: Universal TUN/TAP device driver, 1.6
[    0.416711] tun: (C) 1999-2004 Max Krasnyansky <[email protected]>
[    0.572940] ata2.00: ATAPI: QEMU DVD-ROM, 1.0, max UDMA/100
[    0.574318] ata2.00: configured for MWDMA2
[    0.575529] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     1.0  PQ: 0 ANSI: 5
[    0.577384] sr0: scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray
[    0.578271] cdrom: Uniform CD-ROM driver Revision: 3.20
[    0.584399] sr 1:0:0:0: Attached scsi generic sg0 type 5
[    0.764882] PPP generic driver version 2.4.2
[    0.765884] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.767044] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.768872] uhci_hcd: USB Universal Host Controller Interface driver
[    0.770469] uhci_hcd 0000:00:01.2: PCI INT D -> Link[LNKD] -> GSI 11 (level, high) -> IRQ 11
[    0.771983] uhci_hcd 0000:00:01.2: UHCI Host Controller
[    0.780181] uhci_hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
[    0.781627] uhci_hcd 0000:00:01.2: irq 11, io base 0x0000c000
[    0.788310] hub 1-0:1.0: USB hub found
[    0.788988] hub 1-0:1.0: 2 ports detected
[    0.789892] usbcore: registered new interface driver libusual
[    0.796086] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
[    0.798327] serio: i8042 KBD port at 0x60,0x64 irq 1
[    0.799173] serio: i8042 AUX port at 0x60,0x64 irq 12
[    0.800181] mousedev: PS/2 mouse device common for all mice
[    0.808438] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
[    0.810127] rtc_cmos 00:01: RTC can wake from S4
[    0.811082] rtc_cmos 00:01: rtc core: registered rtc_cmos as rtc0
[    0.812269] rtc0: alarms up to one day, 114 bytes nvram, hpet irqs
[    0.852166] device-mapper: uevent: version 1.0.3
[    0.853068] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: [email protected]
[    0.854488] cpuidle: using governor ladder
[    0.855317] cpuidle: using governor menu
[    0.856009] EFI Variables Facility v0.08 2004-May-17
[    0.860271] TCP cubic registered
[    0.861037] NET: Registered protocol family 10
[    0.862519] NET: Registered protocol family 17
[    0.863370] Registering the dns_resolver key type
[    0.868387] registered taskstats version 1
[    0.884234] Freeing initrd memory: 14916k freed
[    0.893880]   Magic number: 1:826:573
[    0.894711] rtc_cmos 00:01: setting system clock to 2013-02-13 08:35:29 UTC (1360744529)
[    0.896231] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
[    0.897221] EDD information not available.
[    0.899804] Freeing unused kernel memory: 924k freed
[    0.901119] Write protecting the kernel read-only data: 12288k
[    0.907811] Freeing unused kernel memory: 1604k freed
[    0.913511] Freeing unused kernel memory: 1196k freed
Loading, please wait...
Begin: Loading essential drivers ... [    0.934990] udevd[83]: starting version 175
done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... [    1.068409] FDC 0 is a S82078B
IP-Config: eth0 hardware address XX:XX:XX:XX:XX:XX mtu 1500 DHCP
IP-Config: eth0 complete (from 10.0.0.2):
 address: 10.0.0.5  broadcast: 10.0.0.255  netmask: 255.255.255.0
 gateway: 10.0.0.1  dns0     : 8.8.8.8          dns1   : 0.0.0.0         
 rootserver: 10.0.0.2 rootpath: 
 filename  : /pxelinux.0
[    1.129942] Loading iSCSI transport class v2.0-870.
[    1.133710] iscsi: registered transport (tcp)
iscsistart: transport class version 2.0-870. iscsid version 2.0-871
iscsistart: Logging into iqn.2013.org.example.target:client 10.0.0.2:3260,1
iscsistart: can not connect to iSCSI daemon (111)!
iscsistart: version 2.0-871
[    1.139165] iscsistart (197): /proc/197/oom_adj is deprecated, please use /proc/197/oom_score_adj instead.
[    1.188142] Refined TSC clocksource calibration: 2266.747 MHz.
[    2.389685] scsi2 : iSCSI Initiator over TCP/IP
iscsistart: connection1:0 is operational now
[    2.647364] scsi 2:0:0:0: Direct-Access     LIO-ORG  IBLOCK           4.0  PQ: 0 ANSI: 5
[    2.653118] sd 2:0:0:0: Attached scsi generic sg1 type 0
[    2.655615] sd 2:0:0:0: [sda] 33554432 512-byte logical blocks: (17.1 GB/16.0 GiB)
done.
[    2.660695] sd 2:0:0:0: [sda] Write Protect is off
[    2.662585] sd 2:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[    2.684956]  sda: unknown partition table
[    2.691252] sd 2:0:0:0: [sda] Attached SCSI disk
Begin: Running /scripts/local-premount ... done.
[    7.955458] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
Итоги:

Можно вполне использовать iSCSI для загрузки серверов, не имеющих своих дисков (актуально для виртуализации, самопильных систем хранения данных, серверов, которые не должны долго жить и т.п.).

Есть другой вариант, использовать инициатор, встроенный в сетевую карту. Такой подход иногда бывает невозможен по различным причинам (самая банальная — отсутствие необходимого функционала в самой карточке), а также обладает несколько меньшей гибкостью.

Присутствует security-hole, поскольку /proc/cmdline доступен любому желающему в системе и этот любой желающий может получить доступ к экспортированному тому. Поэтому можно на таргете закрыть фаерволом все адреса, кроме необходимого.

Описанная схема — по большей части драфт и основа для инфраструктуры сетевой загрузки.

Ссылки по теме:

ISCSI на Википедии
Официальный сайт LIO
Официальный сайт Syslinux

Что такое инициатор iSCSI для Mac и как с ним работать?

iSCSI стал чрезвычайно популярным в последние годы, и поэтому все больше и больше людей пользуются многочисленными преимуществами простого сетевого совместного использования. Клиентское программное обеспечение для этого стандарта даже встроено в Windows 7, однако до сих пор нет инициатора iSCSI по умолчанию для Mac . Я хотел бы ответить на несколько вопросов об iSCSI, которые вы стеснялись задать. Что такое инициатор iSCSI ? Зачем тебе это нужно? Где взять и как использовать iSCSI Initiator для Mac ? Давайте начнем!

1.Что такое инициатор iSCSI и цель iSCSI?

iSCSI — это протокол, который позволяет обмениваться данными через LAN, WAN и Интернет. Я не буду вдаваться в подробности и просто скажу, что это что-то вроде команд SCSI, используемых в IP-сети. Этот стандарт требует наличия как минимум двух компьютеров: первый играет роль сервера хранения, а второй — клиент вышеупомянутого сервера. Для обеих операционных систем — Windows и Mac — iSCSI Initiator представляет собой клиентский компьютер, а iSCSI Target — сервер.

2. Зачем мне нужен инициатор iSCSI для Mac или Windows?

Как я уже упоминал, сервер iSCSI — это огромное хранилище данных, которое можно использовать совместно с любым компьютером в сети. Благодаря инициатору iSCSI Mac или ОС Windows получают практически неограниченный доступ к удаленному серверу с большим объемом данных. Вы можете использовать удаленные образы или диски, работать с некоторыми ресурсами вместе с другими людьми и хранить много полезной информации на сервере, экономя ресурсы вашего компьютера.В самом деле, забудьте о гигабайтах данных на вашем Mac — iSCSI Initiator дает вам ключ к различным серверам хранения, диски на которых можно использовать так же, как и локальные. И они не требуют ни одного байта вашего жесткого диска!

3. Есть ли инициатор iSCSI по умолчанию для Mac?

Несмотря на то, что с iSCSI Initiator Mac OS получает большое преимущество, разработчики не встроили его в операционную систему. Итак, чтобы оценить преимущества iSCSI, машине Mac OS X требуется стороннее программное обеспечение.Хочу порекомендовать DAEMON Tools — программу, которая позволяет работать с iSCSI Target на вашем Mac. Этот простой в использовании инструмент также дает вам возможность монтировать различные типы образов и организовывать коллекцию ваших виртуальных дисков. Инициатор iSCSI — это отдельная функция программы, которую можно приобрести дополнительно.

4. Что такое инициатор iSCSI в DAEMON Tools и как его использовать?

DAEMON Tools — компактный инструмент для монтажа образов. Также он может включать iSCSI Initiator — дополнительную функцию, позволяющую работать с целями.С iSCSI Initiator Mac машина может монтировать не только локальные образы, но и удаленные виртуальные диски. Чтобы запустить и использовать iSCSI Initiator для Mac , выполните следующие действия:

  1. Загрузите и установите DAEMON Tools для Mac с официального сайта программы.
  2. 20-дневная пробная версия

  3. На вкладке iSCSI Targets щелкните параметр Добавить в контекстном меню вкладки или значок Добавить на панели инструментов:
  4. Введите IP-адрес сервера или имя, выберите Порт .Обратите внимание, что номер порта по умолчанию — 3260.
  5. Когда сервер будет готов к использованию, щелкните треугольник рядом с ним, чтобы развернуть список доступных целей:
  6. Выберите цель и выберите опцию Connect в ее контекстном меню или щелкните значок Connect на панели инструментов, или дважды щелкните цель:
  7. Вы успешно подключились к цели! Он отображается в программе как локальный образ, и вы можете использовать его как любой другой виртуальный диск:

Итак, чтобы использовать преимущества iSCSI, компьютеру Mac требуется DAEMON Tools.Советую вам попробовать функции программы бесплатно в течение пробного периода, чтобы решить, подойдет ли она вам. Кстати, приложение позволяет не только создавать iSCSI Initiator для Mac , но и работать с многочисленными типами образов, например, с виртуальными файлами ISO и образами APE.

.

Какой лучший инициатор iSCSI для macO…

Цена: globalSAN — 89 долларов, ATTO — 249 долларов

Полезность:

globalSAN

простой, но работает достаточно хорошо

Графический интерфейс пользователя автоматически выполняет обнаружение iscsi после определения сервера SAN / Target

Убедитесь, что вы выбрали только конкретную цель (и), которую предполагается / разрешено использовать, поскольку некоторые обнаруженные цели

могут использоваться / использоваться другими клиентами iSCSI (инициаторами)

Работает вне пределов предпочтений; можно выбрать «автоподключение», но это не обязательно; лучше извлекать перед выключением

Поддержка интерфейса командной строки в порядке, несколько ограничена по сравнению с реализациями служебных программ, связанных с Open-SCSI

, такими как «iscsiadm» (Linux V6, Solaris V1)

Инициатор в настоящее время не имеет никаких SMART-умов, если вы используйте «smartctl»

CLI («gsutil») расположен в «/ opt / local / bin», что может потребовать настройки PATH, если используется достаточно часто

CLI НЕ требуется для выполнения процедур подключения iSCSI, но позволяет (дополнительно) пользователи больше возможностей на

как использовать продукт

Псевдо-руководство «Как использовать iSCSI Target на компьютерах Mac» от Synology доступно (обратите внимание, что отображаемая версия OS X

несколько устарела)

Synology Target прилагается как том (который вы называете в настройках)

Первоначальное подключение к выбранной цели может автоматически вызвать «diskutil», чтобы «разрешить» вам отформатировать Target;

перед продолжением убедитесь, что у вас есть правильная / разрешенная цель!

Предлагает 14-дневную бесплатную пробную версию

ATTO

Не использовал его из-за стоимости; не нашел ни одной доступной «пробной версии»

Документация подразумевает более обширные параметры

Есть некоторые другие, которые, если вы посмотрите на сообщения в Интернете, несколько сомнительны в отношении использования / currenency.Один из GitHub, «iscsi-osx / iSCSIinitiator», (бесплатный), требует отключения защиты целостности системы, поскольку его приложение не подписано (Apple). Этот процесс требует загрузки из ОС восстановления. Перед использованием прочтите и поймите все требования и последствия.

.

RHEL7: Настройте систему как цель iSCSI или инициатор, который постоянно монтирует цель iSCSI.

Примечание. Это цель экзамена RHCE 7.

Презентация

В мире iSCSI у вас есть два типа агентов:

  • iSCSI target предоставляет некоторое хранилище (здесь называется сервером ),
  • , инициатор iSCSI использует это доступное хранилище (здесь называется клиент ).

Как вы уже догадались, мы собираемся использовать две виртуальные машины, которые называются server и client соответственно. При необходимости виртуальные машины server и client могут быть одной и только одной машиной.

Целевая конфигурация iSCSI

Большая часть настройки target выполняется в интерактивном режиме с помощью команды targetcli . Эта команда использует дерево каталогов для доступа к различным объектам.

Чтобы создать iSCSI target , вам необходимо выполнить несколько шагов на виртуальной машине server .

Установите следующие пакеты:

 #  yum install -y targetcli 
 

Активировать службу target при загрузке:

 #  systemctl включить цель  

Примечание: это обязательно, иначе ваша конфигурация не будет прочитана после перезагрузки!

Выполнить команду targetcli :

 #  targetcli 
Предупреждение: не удалось загрузить файл настроек / root /.targetcli / prefs.bin.
оболочка targetcli версии 2.1.fb34
Авторские права 2011-2013 принадлежат Datera, Inc и другим.
Чтобы получить справку по командам, введите «help».
/> 

У вас есть два варианта:

  • Вы можете создать архив архива fileio под названием shareddata из 100 МБ в каталоге / opt (не стесняйтесь использовать завершение табуляцией):
     />  бэксторес / fileio / создать общие данные /opt/shareddata.img 100M
      Создано fileio shareddata размером 104857600 

    Примечание. Если вы не укажете write_back = false в конце предыдущей команды, предполагается, что write_back = true .Для параметра write_back установлено значение true включает кэш локальной файловой системы. Это улучшает производительность, но увеличивает риск потери данных. В производственных средах рекомендуется использовать write_back = false .

Затем создайте IQN ( I scsi Q ualified N ame) с именем iqn.2014-08.com.example с целью с именем t1 и получите связанный TPG ​​ ( T arget P ortal G roup):

 />  iscsi / создать iqn.2014-08.com. Пример: t1 
Создана цель iqn.2014-08.com. Пример: t1.
Создал TPG 1.
Глобальная настройка auto_add_default_portal = true
Создан портал по умолчанию, прослушивающий все IP-адреса (0.0.0.0), порт 3260. 

Примечание. IQN следует соглашению RFC 3270 (см. Http://en.wikipedia.org/wiki/ISCSI для получения более подробной информации).

Теперь мы можем перейти во вновь созданный каталог:

 />  cd iscsi / iqn.2014-08.com. Пример: t1 / tpg1 
/iscsi/iqn.20 ... достаточно: t1 / tpg1>  ls 
o- tpg1................................................. [нет -gen-acls, no-auth]
  o-acls ............................................... ............. [ACL: 0]
  о-луны ............................................... ............. [LUN: 0]
  o- порталы ............................................... ....... [Порталы: 1]
о- 0.0.0.0:3260 ........................................... ............ [ОК] 

Ниже tpg1 определены три объекта:

  • acls ( a ccess c ontrol l ists: ограничить доступ к ресурсам),
  • lun ( l ogical u nit n umber: определить экспортируемые ресурсы),
  • порталы (определяют способы доступа к экспортируемым ресурсам; состоят из пар IP-адресов и портов).

Если вы используете версию до RHEL 7.1 (этот шаг теперь автоматически выполняется командой iscsi / create ), вам необходимо создать портал (пара IP-адреса и порта, через который можно связаться с инициаторами):

 /iscsi/iqn.20 ... ple: t1 / tpg1>  порталов / создать 
Использование IP-порта по умолчанию 3260
Привязка к INADDR_ANY (0.0.0.0)
Создан сетевой портал 0.0.0.0:3260. 

Независимо от версии , создайте lun в зависимости от типа backstore, который вы ранее выбрали:

Создайте acl с ранее созданным IQN (здесь iqn.2014-08.com.example ) и выбранный вами идентификатор (здесь клиент ), вместе создавая будущее имя инициатора :

 /iscsi/iqn.20 ... ample: t1 / tpg1>  acls / create iqn.2014-08.com. Пример: клиент 
Создан ACL узла для iqn.2014-08.com. Пример: клиент
Создан сопоставленный LUN 0 

Дополнительно , установите идентификатор пользователя и пароль :

 /iscsi/iqn.20 ... ample: t1 / tpg1>  cd acls / iqn.2014-08.com. Пример: client / 
/ iscsi / iqn.20 ... xample: client>  set auth userid = usr 
Параметр userid теперь "usr".
/iscsi/iqn.20 ... пример: клиент>  установить пароль аутентификации = pwd 
Пароль параметра теперь «pwd». 

Теперь, чтобы проверить конфигурацию, введите:

 /iscsi/iqn.20 ... ом. Пример: d1>  кд ../ .. 
/iscsi/iqn.20 ... ple: tgt1 / tpg1>  ls 
o- tpg1 ............................................... .. [no-gen-acls, no-auth]
o-acls ............................................................ [ACL: 1]
| o- iqn.2014-08.com.example: client ......................... [Подключенные LUN: 1]
| o- mapped_lun0 ............................. [lun0 fileio / shareddata (rw)]
о-луны ............................................... ............. [LUN: 1]
| o- lun0 .......................... [fileio / shareddata (/opt/shareddata.img)]
o- порталы ............................................... ....... [Порталы: 1]
о- 0.0.0.0:3260 ........................................... ............ [В ПОРЯДКЕ]
 

Наконец, вы можете выйти из команды targetcli :

 /iscsi/iqn.20 ... ple: tgt1 / tpg1>  выход
  Глобальная настройка auto_save_on_exit = true
Последние 10 конфигураций сохранены в / etc / target / backup.
Конфигурация сохранена в /etc/target/saveconfig.json 

Примечание. Конфигурация автоматически сохраняется в файле /etc/target/saveconfig.json .

Также может быть полезно проверить используемые в настоящее время порты:

 #  netstat -ant 
Активные интернет-соединения (серверы и установленные)
Proto Recv-Q Send-Q Локальный адрес Состояние внешнего адреса
tcp 0 0 0.0.0.0: 22 0.0.0.0:* СЛУШАТЬ
tcp 0 0 127.0.0.1:25 0.0.0.0:* СЛУШАТЬ
tcp 0 0 0.0.0.0:3260 0.0.0.0:* СЛУШАТЬ
tcp 0 0 192.168.1.81:22 192.168.1.81:33584 УСТАНОВЛЕНО
tcp6 0 0 ::: 22 ::: * СЛУШАТЬ
tcp6 0 0 :: 1: 25 ::: * СЛУШАТЬ
 

Наконец, откройте порт 3260 tcp в конфигурации брандмауэра:

 #  firewall-cmd --permanent --add-port = 3260 / tcp 
Успех 

Примечание 1: с RHEL 7.2 (RHBZ # 1150656), теперь существует файл конфигурации firewalld для службы iscsi-target . Таким образом, вы можете ввести: # firewall-cmd –permanent –add-service iscsi-target
Примечание 2: в новом файле конфигурации /usr/lib/firewalld/services/iscsi-target.xml указаны две строки для порты: TCP 3260 и UDP 3260 . Поскольку до сих пор все работало нормально с аргументом TCP 3260 , я полагаю, что вы можете запустить iSCSI поверх UDP , но это не вариант по умолчанию (я не нашел никаких подробностей в RFC7143 по этому поводу ).

Перезагрузите конфигурацию межсетевого экрана:

 #  firewall-cmd --reload
  Успех 

Конфигурация инициатора iSCSI

Чтобы создать инициатор iSCSI , вам необходимо выполнить несколько шагов на виртуальной машине client .

Установите следующий пакет:

 #  yum install -y iscsi-initiator-utils  

Отредактируйте /etc/iscsi/initiatorname.iscsi и замените содержимое на имя инициатора, которое вы ранее настроили как acl на целевой стороне:

  Имя инициатора = iqn.2014-08.com. Пример: client  

Если вы ранее настроили идентификатор пользователя и пароль на сервере , отредактируйте файл /etc/iscsi/iscsid.conf и вставьте следующие строки:

  node.session.auth.authmethod = CHAP 
  node.session.auth.username = usr 
  node.session.auth.password = pwd 
 

Запустить службу iscsi :

 #  systemctl start iscsi  

Внимание : Это действие является обязательным, чтобы иметь возможность отключить удаленный ресурс при перезагрузке.Не путайте сервисы iscsid и iscsi !

Выполните команду iscsiadm в режиме Discovery с IP-адресом сервера (здесь 192.168.1.81 ):

 #  iscsiadm --mode discovery --type sendtargets --portal 192.168.1.81 
192.168.1.81:3260,1 iqn.2014-08.com. Пример: t1 

Примечание 1. Если вы не укажете какой-либо порт, по умолчанию используется порт 3260 .
Примечание 2: не указывайте запись DNS в качестве адреса вашего портала (здесь 192.168.1.81 ), это плохая идея, которая доставит вам много неприятностей.

Выполните команду iscsiadm в режиме узла с IP-адресом сервера (здесь 192.168.1.81 ):

 #  iscsiadm --mode node --targetname iqn.2014-08.com. Пример: t1 --portal 192.168.1.81 --login 
Вход в [iface: default, target: iqn.2014-08.com.example: t1, portal: 192.168.1.81,3260] (несколько)
Войдите в [iface: default, target: iqn.2014-08.com.example: t1, portal: 192.168.1.81,3260] успешно. 

Примечание. Как и раньше, если вы не укажете порт, по умолчанию будет использоваться 3260 . Использование записи DNS в качестве адреса портала только создает проблемы.

Чтобы проверить конфигурацию, введите:

 #  lsblk --scsi 
ИМЯ HCTL ТИП МОДЕЛЬ ПОСТАВЩИКА REV TRAN
sda 2: 0: 0: 0 диск LIO-ORG shareddata 4.0 iscsi 

Чтобы убедиться, что ваш ресурс , а не в режиме только для чтения ( 1 = только для чтения, режим), введите:

 #  lsblk | egrep "NAME | sda" 
НАЗВАНИЕ ГЛАВНОЕ: МИН. РАЗМЕР RM ТИП RO ГОРКА
sda 8: 0 0 100M  0  диск 

Теперь вы можете создать файловую систему:

 #  мкфс.ext4 / dev / sda 
mke2fs 1.42.9 (28 декабря 2013 г.)
/ dev / sda - это все устройство, а не только один раздел!
Все равно продолжайте? (д, н)  г 
Метка файловой системы =
Тип ОС: Linux
Размер блока = 1024 (журнал = 0)
Размер фрагмента = 1024 (журнал = 0)
Шаг = 0 блоков, ширина полосы = 4096 блоков
25688 инодов, 102400 блоков
5120 блоков (5,00%) зарезервировано для суперпользователя
Первый блок данных = 1
Максимальное количество блоков файловой системы = 33685504
13 групп блоков
8192 блока на группу, 8192 фрагмента на группу
1976 инодов на группу
Резервные копии суперблоков, хранящиеся в блоках:
8193, 24577, 40961, 57345, 73729

Размещение групповых таблиц: выполнено
Написание таблиц inode: сделано
Создание журнала (4096 блоков): выполнено
Запись суперблоков и информации учета файловой системы: выполнено 

Получить UUID этого диска:

 #  blkid | grep "/ dev / sda" 
/ dev / sda: UUID = "4a184c70-20ad-4d91-a0b1-c2cf0eb1986f" TYPE = "ext4" 

Добавьте диск UUID в файл / etc / fstab :

 #  echo "UUID =... ">> / etc / fstab  

Примечание: будьте очень осторожно введите >> , а не > , иначе уничтожит всю вашу конфигурацию!
Сделайте копию файла / etc / fstab до того, как выполнит эту операцию, если вы не хотите рисковать.

Отредактируйте файл / etc / fstab и добавьте точку монтирования (здесь / mnt ), тип файловой системы (здесь ext4 ) и параметры монтирования ( _netdev ):

  UUID =... / mnt ext4 _netdev 0 0  

Примечание. Параметр монтирования _netdev является обязательным, чтобы отложить операцию монтирования после инициализации сети. Если вы этого не сделаете, процесс загрузки инициатора будет остановлен по истечении тайм-аута в режиме обслуживания (подробнее о параметре _netdev здесь).

Чтобы проверить свою конфигурацию, введите:

 #  крепление / мнт
  #  touch / mnt / testFile
  

Примечание. Лучше всего выполнять команду mount -a каждый раз, когда вы меняете что-то в файле / etc / fstab , чтобы обнаружить любую проблему с загрузкой до ее возникновения.

При желании вы можете выгрузить всю конфигурацию инициатора ( 3 = максимальный выход, 0 = минимальный выход):

 #  iscsiadm -m сеанс -P 3 
Транспортный класс iSCSI версии 2.0-870
версия 6.2.0.873-28
Цель: iqn.2014-08.com. Пример: t1 (без вспышки)
Текущий портал: 192.168.1.81:3260,1
Постоянный портал: 192.168.1.81:3260,1
**********
Интерфейс:
**********
Имя Iface: по умолчанию
Транспорт Iface: tcp
Iface Имя инициатора: iqn.2014-08.com. Пример: клиент
IP-адрес Iface: 192.168.1.10
Ифаце H Адрес:
Iface Netdev:
SID: 1
Состояние подключения iSCSI: ВХОД
Состояние сеанса iSCSI: LOGGED_IN
Состояние внутренней сессии iscsid: БЕЗ ИЗМЕНЕНИЙ
*********
Таймауты:
*********
Тайм-аут восстановления: 120
Таймаут сброса целевого значения: 30
Тайм-аут сброса LUN: 30
Тайм-аут прерывания: 15
*****
ГЛАВА:
*****
имя пользователя: usr
пароль: ********
username_in:
password_in: ********
************************
Согласованные параметры iSCSI:
************************
HeaderDigest: Нет
DataDigest: Нет
MaxRecvDataSegmentLength: 262144
MaxXmitDataSegmentLength: 262144
Длина первого взрыва: 65536
MaxBurstLength: 262144
ImmediateData: Да
InitialR2T: Да
MaxOutstandingR2T: 1
************************
Подключенные устройства SCSI:
************************
Номер хоста: 2 Состояние: работает
scsi2 Канал 00 Id 0 Lun: 0
Прикрепленный scsi диск sda Состояние: работает
 

Источник: targetcli справочная страница и Linux-iSCSI wiki.

Полезные советы

Перед перезагрузкой настройте виртуальную консоль, это может быть полезно!

Если вам нужно выключить цель и инициатор, сначала выключите инициатор. Если сначала выключить цель, инициатор не сможет размонтировать удаленный ресурс и застрянет в процессе выключения.

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

Дополнительные ресурсы

Кроме того, вы можете посмотреть видео CalPOP Создание хранилища iSCSI SAN в Linux (CentOS 7.0) (10 мин / 2015 г.), видео Венката Нагаппана «Настройка цели и инициатора iSCSI» (19 мин / 2015 г.) или следуйте этому руководству по IBM iScsi.

Также есть вики о Targetcli.

Dell предлагает интересную информацию о iSCSI , MPIO и советы по производительности в своем Руководстве по настройке RHEL для массивов Dell Storage серии PS.

Наконец, RedHat предоставляет руководство по настройке экспорта iSCSI в Red Hat Enterprise Linux 7.

Проверьте свои знания

Информация

Вы уже прошли тест раньше.Следовательно, вы не можете запустить его снова.

Вы должны войти в систему или зарегистрироваться, чтобы начать викторину.

Вы должны пройти следующую викторину, чтобы начать эту викторину:

0 из 10 вопросов ответил правильно

Ваше время:

Прошло времени

Вы набрали 0 из 0 баллов, (0)

Средний балл
Ваша оценка

Определение эссе-героя Когда вы пишете свое определение эссе-героя writemypaper4me, вам необходимо иметь план и использовать полезные идеи, чтобы создать отличную статью.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *