Colobridge WIKI

Iscsi


Нужны базовые представления об использовании iscsi

  • Инициатор (initiator) — iSCSI-клиент.
  • Таргет (target [ta:git]; иногда произносят тарджет) — iSCSI-сервер; предоставляет доступ к своим устройствам по iSCSI.
  • Обнаружение (discovery) — процесс, в ходе которого инициатору становятся известны доступные ему таргеты.
  • iSNS (Internet Storage Name Service);
  • SendTargets — таргеты обнаруживаются через специальный адрес обнаружения (discovery-address);
  • SLP - использование протокола SLP (Service Location Protocol);
  • Статическое указание

Все инициаторы iSCSI и таргеты должны иметь уникальные имена.

Существуют два типа адресации – IEEE EUI-64 и IQN

IQN

Для именования ресурсов iscsi чаще всего используется имена IQN (iSCSI qualified name)

iqn.<year-mo>.<reversed_domain_name><unique_name>

Где:

  • <year-mo> - год и месяц создания имени;
  • <reversed_domain_name> - DNS имя домена, записанное в обратном порядке;
  • <unique_name> это произвольное имя ресурса в пределах домена, чаще всего используют имя сервера и его накопителя (тома или диска). Отделяется от первых трёх частей двоеточием

Пример: iqn.2011-10.com.mycompany:myserver.lun1

имя IQN может содержать до 255 символов

EUI

В качестве имени можно использовать идентификатор организации EUI-64, представленный в виде HEX-кода формата ASCII

Пример: eui.02004567A425678D

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

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

Для доступа к ресурсу iscsi нужно установить и сконфигурировать службу

yum install iscsi-initiator-utils
service iscsid start
chkconfig iscsid on
chkconfig iscsi on

Параметры инициатора

Имя инициатора определяется содержимым файла /etc/iscsi/initiatorname.iscsi

Например:

InitiatorName=iqn.2011-10.net.colobridge.server101:0001ZX

Для генерации iqn имен можно использовать утилиту iscsi-iname

Например:

iscsi-iname -p "iqn.2011-12.com.mysever-iscsi"
iqn.2011-12.com.mysever-iscsi:81fc237bbe52

Параметры инициатора определяются содержимым файла /etc/iscsi/iscsid.conf

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

Но сразу задайте параметры параметры запуска и аутентификации.

/etc/iscsi/iscsid.conf

# Автоматическое подключение таргетов при перезапуске службы
node.startup = automatic

# аутентификация для подключения
node.session.auth.authmethod = CHAP
# В качестве имени лучше использовать имя инициатора в формате IQN
node.session.auth.username = iqn.2011-10.net.colobridge.server24:0001
# максимальная длина пароля 255 символов
# минимальная длина составляет 12 символов.
node.session.auth.password =  yHUkiBTEgB9LmUKi91Vb2eR4

# аутентификация для обнаружения
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = iqn.2011-10.net.colobridge.server24:0001
discovery.sendtargets.auth.password =  yHUkiBTEgB9LmUKi91Vb2eR4

После внесения изменений в конфигурацию надо перезапустить службу

service iscsid restart

Теперь, когда служба ISCSI запущена, используйте iscsiadm для обнаружения всех доступных таргетов на сервере хранения данных

iscsiadm -m discovery -t sendtargets -p <адрес сервера>
Обратите внимание, что нужно указать именно IP-адрес, а не имя хоста сервера сети хранения данных

Ручное подключение к таргету

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

iscsiadm -m node -T <имя таргета> -p <адрес сервера> -l

Например:

iscsiadm -m node -T iqn.2011-10.net.colobridge:stor.lun10 -p 77.72.132.123 -l 

Автоматическое подключение к таргету

Вышеприведенные команды создадут две директории с информацией о таргетах и хостах:

/var/lib/iscsi/nodes/
/var/lib/iscsi/send_targets/

Просмотреть информацию можно командой:

iscsiadm -m node  -T <имя таргета> -p <адрес сервера>

Содержимое /var/lib/iscsi/nodes/ и /var/lib/iscsi/send_targets/ будет использовать демон iscsi. При каждом перезапуске подключает ранее обнаруженные таргеты.

Следующим шагом является настройка автоматического подключения таргетов.

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

iscsiadm -m node -o show

Выйти из всех сессий можно так:

iscsiadm -m node -U all

Первые сети Ethernet представляли собой полудуплексные разделяемые инфраструктуры. Для них был выбран максимальный размер кадра 1500 байт, гарантирующий, что ни одна станция не сможет монополизировать сеть. Однако большинство ОС записывают данные на диски и считывают их с дисков кластерами длиной 4 Кбайт или более, поэтому при использовании стандартных кадров размером 1500 байт для выполнения большинства операций, связанных передачей iSCSI-данных, требуется пересылать множество кадров. В этом случае стек TCP/IP создает значительную нагрузку на ЦПУ хост-машины, ведь данные делятся на множество пакетов, и для каждого из них вычисляется контрольная сумма, на приемном же конце соединения данные должны быть вновь собраны. Кроме того, применение коротких кадров снижает эффективность работы сети, поскольку на передачу заголовков кадров, контрольных сумм, а также на реализацию межкадровых интервалов тратится больше времени, а значит, на пересылку самих данных его остается меньше.

При использовании JAMBO производительность систем iSCSI повышается на 5%, а загрузка ЦПУ сервера, оборудованного обычной или более «интеллектуальной» сетевой платой, снижается на 2-3%.

Перед использованием JAMBO убедитесь, что все оборудование вашей сети iSCSI, включая коммутаторы, инициаторы и целевые устройства, сконфигурированы для работы с кадрами одинаковой максимальной длины. Нет стандарта на максимальный размер сверхдлинного кадра. Бывает оборудование поддерживающее кадры длиной от 9 до 16 Кбайт. В случае несоответствия могут появиться ошибки дисковых операций ввода-вывода.

Потеря связи с устройством

Если в логах видите сообщение подобное этому:

scsi 8:0:0:0: rejecting I/O to dead device

Нужно снова инициализировать устройство ISCSI.

Для этого можно перезапустить службу iscsi и убедиться, что видны таргет и LUN (ы)

Если у вас на этом устройстве используется LVM, то выполните следующие действия:

umount -f /mnt/point
vgchange -a n volume_name
vgscan --mknodes
vgchange -a y volume_name
mount /mnt/point