10-Interesting-Linux-Command-Line-Tricks

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

Системы хранения данных

В цифровом мире центры обработки и хранения данных Storage Area Networks (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 сервер, который обслуживает «disk space», называется iSCSI «Target», а система, которая запрашивает/использует дисковое пространство, называется iSCSI «Initiator». Другими словами, «Initiator» запрашивает хранилище блоков у «Target».

 

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

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

Debian iSCSI Target: 192.168.56.101/24
Storage: Contains two extra hard drives to be used as the storage in the iSCSI setup
Debian iSCSI Initiator: 192.168.56.102/24

 

Сеть может выглядеть так:

Debian-iSCSI-Network-Diagram

 

 

Конечная конфигурация Debian iSCSI

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

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

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

Другими элементами, используемым в этой статье, являются Logical Volume Management (LVM) инструменты такие как Logical Volumes (LVs). Они используются в качестве резервного хранилища для iSCSI.

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

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

 

 

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

 

 

ПРИМЕЧАНИЕ: Обязательно измените данную команду по мере необходимости.

# lsblk (Only used to confirm disks to be used in the LVM setup)
# pvcreate /dev/sd{b,c}

 

 

Confirm-and-Create-LVM-Setup

 

 

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

Для создания группы томов нужна команда «vgcreate», которая изображена ниже:

# vgcreate tecmint_iscsi /dev/sd{b,c}
# vgs (Only needed to confirm the creation of the volume group)

 

 

Create-Volume-Group-in-Debian

 

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

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

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

# lvcreate -l 100%FREE tecmint_lun1 tecmint_iscsi
# lvs (Simply used to confirm the creation of the logical volume)

 

 

Create-Logical-Volume-in-Debian

 

 

Приведенная выше команда «lvcreate» состоит из таких частей:

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

 

 

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

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

 

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

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

 

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

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

<target iqn.2020-02.sedicomm.com:lun1>
# Provided device as an iSCSI target
backing-store /dev/mapper/sedicomm_iscsi-sedicomm_lun1
initiator-address 192.168.56.102
incominguser sedicomm-iscsi-user password
outgoinguser debian-iscsi-target secretpass
</target>

 

 

Объяснение вышеприведённой функции:

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

 

 

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

 

 

Create-LUN-Configuration-File

 

 

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

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

# service tgt restart (для sysv init systems)
# systemctl restart tgt (для systemd init systems)

 

 

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

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

# tgtadm --mode target --op show (This will show all targets)

 

 

Show-All-iSCSI-Targets

 

 

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

 

 

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

Следующим шагом в использовании ранее настроенного конечного устройства 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:

Connect-iSCSI-Target-Server

 

 

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

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

Файл конфигурации узла будет существовать в каталоге etc/etc/iscsi/node/ и будет иметь доступный каталог для каждого 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 = sedicomm-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» будет установлено значение «manual». Если администратор желает подключить цель iSCSI при запуске системы, измените «manual» на «automatic» следующим образом:

node.startup = automatic

 

 

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

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

# service open-iscsi restart (для sysv init systems)
# systemctl restart open-iscsi (для systemd init systems)

 

 

Restart-Open-Iscsi-Initiator

 

 

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

# lsblk

 

 

Check-iSCSI-Target-Disk

 

 

Другая команда, которая может использоваться на инициаторе для подтверждения соединения с целью — «iscsiadm»:

# iscsiadm -m session

 

 

Confirm-Connection-to-ISCSI-Target

 

 

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

# tgtadm --mode conn --op show --tid 1

 

 

List-iSCSI-Connections

 

 

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

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

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Системы хранения данных

Больше похожих постов

How to Set Up NFS Server and Client on CentOS 8

Как настроить NFS-сервер и клиент на CentOS 8?

513
0
Network File System (NFS), также известная как файловая система «клиент/сервер», представляет собой популярный кроссплатформенный протокол распределенной файловой системы, используемый для…

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню