Iscsi
Задача:
Нужны базовые представления об использовании iscsi
Основы:
Термины
- Инициатор (initiator) — iSCSI-клиент.
- Таргет (target [ta:git]; иногда произносят
тарджет
) — iSCSI-сервер; предоставляет доступ к своим устройствам по iSCSI. - Обнаружение (discovery) — процесс, в ходе которого инициатору становятся известны доступные ему таргеты.
Методы обнаружения таргетов:
- iSNS (Internet Storage Name Service);
- SendTargets — таргеты обнаруживаются через специальный адрес обнаружения (discovery-address);
- SLP - использование протокола SLP (Service Location Protocol);
- Статическое указание
Именование в iSCSI
Все инициаторы 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
EUI
В качестве имени можно использовать идентификатор организации EUI-64, представленный в виде HEX-кода формата ASCII
Пример: eui.02004567A425678D
Target
Для обнаружения списка доступных устройств на iSCSI цели (сервере) используется технология обнаружения (discovery, auto-discovery). Это сервис, слушающий на порте tcp (обычно, 3260) запросы клиентов и отдающий им список доступных целей.
Помимо порталов, для поиска доступных целей может так же использоваться iSNS (Internet storage name service).
Инициатор (initiator)
Для доступа к ресурсу 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 <адрес сервера>
Ручное подключение к таргету
На данный момент служба инициатором 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
Jumbo Frames(Сверхдлинные кадры)
Первые сети 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
Смотрите также:
Актуальность: 2011/10/27 19:09