Как настроить iSCSI сервер (цель) и клиент (инициатор) на Debian 9

В Дата-центрах мира, сети хранения данных (SAN) большой пропускной способности стали минимальным стандартом. В то время как поставщики облачных услуг и виртуализация также продолжают оказывать огромное влияние на мир технологий, становится очевидной необходимость в еще большем количестве хранилищ SAN.

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

Многие из этих специализированных продуктов сделаны крупными поставщиками, такими как Netapp, Dell Equalogic, HP Storageworks или EMC, и имеют ценники, которые могут себе позволить только крупнейшие предприятия.

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

В дистрибутиве Debian GNU / Linux предусмотрены пакеты, которые позволяют системе Debian обслуживать устройство хранения данных SAN на уровне предприятия только за небольшую часть стоимости! Это позволяет каждому из основных домашних пользователей или крупным центрам обработки данных получать преимущества хранилища SAN без необходимости потратить целое состояние на собственное решение поставщика.

В этой статье мы рассмотрим, как можно настроить систему Debian 9 (Stretch) для обслуживания дискового пространства с помощью системы, известной как Internet Small Computer Systems Interface или iSCSI . iSCSI — это стандарт на основе Internet Protocol ( IP ) для обеспечения хранения блоков (жесткого диска) для других систем. iSCSI работает на модели клиентского сервера, но использует разные имена для отличия клиента от сервера.

В терминологии iSCSI сервер, обслуживающий « дисковое пространство », известен как «Целевой объект iSCSI » , а система, запрашивающая / использующая дисковое пространство, известна как Инициатор iSCSI . Иными словами, « Инициатор » запрашивает блокировку памяти из « Целевой ».

Настройка среды

Это руководство проведет базовую настройку, включающую простой сервер iSCSI ( целевой ) и клиент ( инициатор ), оба из которых работают с Debian 9 (Stretch) .

Debian iSCSI Target: 192.168.56.101/24
Storage: Содержит два дополнительных жестких диска для использования в качестве хранения данных установки iSCSI.
Debian iSCSI Initiator: 192.168.56.102/24

Сеть можно посмотреть ниже:

Схема сети iSCSI в Debian

Конфигурация целевого объекта iSCSI Debian

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

В этой статье в качестве цели используется сервер с IP-адресом 192.168.56.101 . Все конфигурации будут выполнены на этом узле для этого раздела.

Первым шагом является установка необходимых пакетов, позволяющих системе Debian обслуживать цели iSCSI . Этот программный пакет известен как Target Framework ( TGT ).

Другой элемент , который используется для данного руководства является Управление логическими томами ( LVM ) инструменты, как логические тома ( LVS ) будет использоваться в качестве основы для хранения для целевого устройства.

Оба пакета могут быть установлены с помощью следующих команд.

# apt-get update
# apt-get install tgt lvm2

Как только пакеты будут установлены, LVM будет использоваться для подготовки жестких дисков к цели для использования в качестве iSCSI LUN . Первая команда используется для подготовки дисков для включения в настройку LVM. Обязательно измените команду при необходимости для разных сценариев!

# lsblk (Используется только для подтверждения дисков, используемых при создании LVM)
# pvcreate /dev/sd{b,c}
Подтверждение и создание LVM

После того, как диски были подготовлены с помощью команды « pvcreate », пришло время создать группу томов из этих конкретных дисков. Группа томов требуется для создания логических томов , которые позже будут использоваться в качестве хранилища iSCSI .

Для создания группы томов требуется команда ‘ vgcreate ‘.

# vgcreate tecmint_iscsi /dev/sd{b,c}
# vgs  (Требуется только для подтверждения создания группы томов)
Создание группы томов в Debian

Обратите внимание на вышеприведенный вывод о том, что система реагирует на то, что группа томов была создана, но всегда рекомендуется дважды проверить, как показано выше, с помощью команды « vgs ». Емкость этой группы томов составляет всего 9,99 ГБ . Хотя это особенно небольшая группа томов, процесс будет таким же для дисков большой емкости!

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

Логический том будет создан с помощью команды lvcreate .

# lvcreate -l 100%FREE tecmint_lun1 tecmint_iscsi
# lvs  (Просто используется для подтверждения создания логического тома)
Создание логического Тома в Debian

Вышеприведенная команда « lvcreate » может быть немного запутанной с первого взгляда, но разбивка такова:

  • lvcreate — команда, используемая для создания логического тома.
  • -l 100% FREE — Создайте логический том, используя все свободное пространство группы томов.
  • -n tecmint_lun1 — имя создаваемого логического тома.
  • tecmint_iscsi — имя группы томов для создания логического тома внутри.

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

Создание LUN очень простое и требует всего лишь нескольких шагов. Первым шагом будет создание файла конфигурации. Этот файл будет находиться в каталоге ‘ /etc/tgt/conf.d ‘, и для этой статьи он будет называться ‘ TecMint_iscsi.conf ‘.

Для создания этого файла используйте текстовый редактор.

# nano /etc/tgt/conf.d/TecMint_iscsi.conf

Внутри этого файла будет сконфигурирована вся необходимая информация о конфигурации для этого LUN . Есть много вариантов, которые можно поместить в этот файл, но на данный момент будет сконфигурирован базовый LUN с взаимным протоколом проверки подлинности Handshake Challenge ( CHAP ).

Определение LUN ​​будет существовать между двумя « целевыми » утверждениями. Для получения дополнительных параметров, которые могут выполняться в целевом выражении, просмотрите страницу руководства для файла « target.conf », выпустив « man 5 tasks.conf ».

<target iqn.2018-02.tecmint.com:lun1>
# Provided device as an iSCSI target
backing-store /dev/mapper/tecmint_iscsi-tecmint_lun1
initiator-address 192.168.56.102
incominguser tecmint-iscsi-user password
outgoinguser debian-iscsi-target secretpass
</target>

Там много чего происходит. Быстрое объяснение может быть полезным для большинства.

  • Первая строка начинается конкретный ISCSI LUN конфигурации. В этом случае LUNпомечен как « iqn.2018-02.tecmint.com:lun1 ». Часть « iqn » указывает, что это будет имя, присвоенное iSCSI. « 2018-02 » — это произвольно выбранная комбинация дат. ‘ tecmint.com‘ — это домен, к которому принадлежит данный LUN. Наконец, « lun1 » используется как имя для этой конкретной цели.
  • Вторая линия выше иллюстрирует комментарий. Комментарии могут существовать в целевых файлах конфигурации и должны быть предварительно снабжены символом « # ».
  • Третья линия , где фактический объем памяти , который будет использоваться инициатором существует. В этом случае резервная копия хранилища будет логическим томом, который был создан ранее в руководстве.
  • Четвёртая строка является IP — адрес , который , как ожидается , от инициатора. Хотя это не необходимый элемент конфигурации, он может помочь повысить безопасность.
  • Пятая линия поступающего имени пользователя / пароль. Как и адрес инициатора выше, этот параметр также не требуется, но может помочь защитить LUN. Поскольку это руководство также охватывает взаимный CHAP iSCSI, этот параметр требуется. В этой строке указывается имя пользователя и пароль, которые ожидается от инициатора для инициатора, чтобы подключиться к этому LUN.
  • Шестой строке является имя пользователя / пароль, то цель предоставить инициатору для обеспечения взаимной проверки подлинности CHAP , чтобы иметь место. Обычно этот параметр не требуется, но в этой статье рассматривается взаимная аутентификация CHAP, поэтому этот параметр необходим.
  • Конечная строка — это оператор закрытия для определения цели. Обратите внимание на заключительную косую черту перед целевым словом!

После того, как были выбраны соответствующие конфигурации для LUN, сохраните изменения и выйдите из текстового редактора. Если вы используете nano , нажмите, ctrl+o чтобы сохранить, а затем нажмите, ctrl+x чтобы выйти из nano.

Создание файла конфигурации LUN

После создания файла конфигурации служба tgt должна быть перезапущена, так что tgt знает о новых целях и связанной конфигурации.

Это можно сделать с помощью одной из следующих команд и зависит от используемой системы init.

# service tgt restart (Для систем sysv init)
# systemctl restart tgt  (Для систем systemd init)

После перезапуска tgt важно убедиться, что цель iSCSI становится доступной в соответствии с созданным конфигурационным файлом.

Это можно сделать с помощью команды tgtadm .

# tgtadm --mode target --op show (это покажет все цели)
Показать все цели iSCSI

Это завершает конфигурацию цели . Следующий раздел будет работать через конфигурацию инициатора .

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

Следующим шагом в использовании ранее настроенной цели iSCSI является конфигурация инициатора iSCSI .

В качестве инициатора в этой статье будет использоваться другая система Debian 9, но любая система, которая может использовать протокол iSCSI, может подключиться к ранее настроенной цели; это может включать гипервизоры, такие как XenServer / ESXi или другие дистрибутивы, такие как Red Hat, Debian или Ubuntu.

Первым шагом в этом процессе для этого инициатора Debian является установка соответствующих пакетов для iSCSI .

# apt-get update
# apt-get install open-iscsi

После того как apt завершит настройку пакетов open-iscsi , может начаться конфигурация инициатора iSCSI . Первым шагом будет соединение с целью получения исходной информации о конфигурации для подготовленной цели.

# iscsiadm -m discovery -t st -p 192.168.56.101

Когда эта команда будет запущена, она ответит назад с именем lun, настроенным ранее для этого конкретного хоста. Вышеприведенная команда также генерирует два файла для вновь обнаруженной информации LUN.

Подключение целевого сервера iSCSI

Теперь для файла, созданного для этого узла, должна быть настроена информация CHAP,чтобы эта цель iSCSI действительно была доступна инициатору .

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

Файл конфигурации узла будет существовать в каталоге « / etc / iscsi / nodes / » и будет иметь каталог для каждого LUN. В случае этой статьи (обратите внимание, что изменения будут изменяться, если имена / IP-адреса будут изменены).

# /etc/iscsi/nodes/iqn.2018-02.tecmint.com\:lun1/192.168.56.101\,3260\,1/default

Для работы с этим файлом можно использовать любой текстовый редактор.

# nano /etc/iscsi/nodes/iqn.2018-02.tecmint.com\:lun1/192.168.56.101\,3260\,1/default

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

Поскольку эта целевая / инициаторная установка Debian использует взаимный CHAP , некоторые другие параметры необходимо изменить и добавить в этот файл, а затем выполнить вход в цель iSCSI .

Изменения этого файла:

node.session.auth.authmethod = CHAP                    #Enable CHAP Authentication
node.session.auth.username = tecmint-iscsi-user        #Target to Initiator authentication
node.session.auth.password = password                  #Target to Initiator authentication
node.session.auth.username_in = debian-iscsi-target    #Initiator to Target authentication
node.session.auth.password_in = secretpass             #Initiator to Target authentication

Вышеуказанные параметры позволят этой цели аутентифицироваться инициатору, а также позволяют инициатору пройти аутентификацию цели .

В этом конкретном файле есть другой вариант, который может потребоваться изменить в зависимости от настроек администратора, и это параметр « node.startup ».

Если после этого руководства параметр « node.startup » будет установлен на « ручной » в этой точке. Это может быть нежелательно. Если администратор хочет, чтобы цель iSCSI былаподключена при запуске системы, измените « вручную » на « автоматический »:

node.startup = automatic

После внесения указанных изменений сохраните файл и выйдите из него. На этом этапе сервис инициатора open-iscsi необходимо перезапустить, чтобы прочитать эти новые изменения и подключиться к цели iSCSI .

Это может быть выполнено с помощью одной из следующих команд в зависимости от используемой системы инициализации.

# service open-iscsi restart   (For sysv init systems)
# systemctl restart open-iscsi (For systemd init systems)
Restart Open Инициатор iSCSI

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

# lsblk
Проверка целевого диска iSCSI

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

# iscsiadm -m session
Подтверждение соединения с целью ISCSI

Последнее место для подтверждения соединения будет на самой цели с помощью команды « tgtadm » для перечисления любых подключений iSCSI.

# tgtadm --mode conn --op show --tid 1
Список iSCSI соединений

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

Одна большая осторожность, чтобы быть в курсе с устройствами iSCSI, заключается в том, что если цель iSCSI содержит важные файловые системы, которые необходимы при загрузке инициатора , обязательно используйте запись «_netdev» в файле «/etc/fstab», чтобы гарантировать, что iSCSI устройство подключается до того, как система продолжит загрузку!

Источник: Перевод с сайта tecmint — https://www.tecmint.com/setup-iscsi-target-and-initiator-on-debian-9/

admin

Нужно войти чтобы оставить комментарий.