управление iscsi в solaris nexenta

Применимость: solaris, nexenta

Слова для поиска: solaris, nexenta, comstar


Для управления службой ISCSI потребуются навыки по следующим действиям:

  • Установить Solaris и настроить сетевые параметры.
  • Установить и настроить необходимые программные компоненты
  • Создать, подключить и настроить ZFS pool и блочные устройства LUN для ISCSI таргета
  • Настроить iSCSI таргет и его представление (view)
  • Настроить ограничения доступа и проверку подлинности между iSCSI инициатором и таргетом.
  • Обеспечить тюнинг и мониторинг ISCSI конфигурации

Термины и определения

  • Host Groups (Группа хостов): - группа состоящая из списка инициаторов. Один инициатор может быть только в одной группе.
  • Target Groups (Группа таргетов): - группа состоящая из списка iSCSIтаргетов или WWID локальных FC-карт. Один таргет может быть только в одной группе.
  • Views (представление): набор параметров определяющий для какого инициатора (группы хостов) какой LUN отображается и под каким порядковым номером устройства.
  • Logical Unit Number (LUN) (логическое устройство): - средство идентификации отдельного устройства которому предоставляется доступ по протоколу iSCSI. Ядро системы направляет команды блочного ввода-вывода соответствующему логическому устройству (LU) в соотвествии с его LUN (Logical Unit Number).

Активировать службу iscsi target

Установить ПО и запустить службы.

pkg install storage-server
pkg install SUNWiscsit
svcadm enable system/stmf
svcadm enable iscsi/target

Если был установлен iscsitadm, то его надо остановить иначе будут конфликты с COMSTAR.

svcadm disable iscsitgt

Создать ZVOL и LUN для iSCSI target

ZVOL

Создать блочное устройство (ZVOL / ZFS Volume) фиксированного размера 2Гб с резервированием пространства в файловой системе ZFS на пуле с именем tank

 zfs create -V 2g tank/zvol1

или создать ZVOL без резервирования пространства (аналог разреженного файла (англ. sparse file)) c использованием сжатия данных по алгоритму lzjb

zfs create -s -V 2g -o compression=lzjb tank/zvol1

LUN

stmfadm create-lu /dev/zvol/rdsk/tank/zvol1

Убедитесь, что LUN создан

stmfadm list-lu 
LU Name: 600144F0D02C8F000000510BF6B30001

Представление (view)

Иногда это действие называют mapping Добавить представление (view) для LUN:

Эта команда делает LUN доступными для всех систем

stmfadm add-view 600144F0D02C8F000000510BF6B30001

Убедиться что представление добавлено:

stmfadm list-view -l 600144F0D02C8F000000510BF6B30001

Создание целевого устройства iSCSI target

itadm create-target
Target iqn.2010-09.org.openindiana:02:afaa4da7-948d-c18a-b4f3-93b740270e2e successfully created

Отобразить информацию о ISCSI target.

itadm list-target -v

Ограничение доступа

Описанные выше действия открывают полный доступ к LUN для всех.

Для запрета доступа удалим предыдущее представление (view)

stmfadm remove-view -l 600144F0D02C8F000000510BF6B30001 -a

И создадим новое представление с ограничениями доступа к определенным таргетам для заданного списка инициаторов.

Создать Target Portal Group

Target Portal Group (TPG) представляет собой список IP-адресов и портов, на которых служба будет «слушать» подключения по iSCSI.

TPG не используется для контроля доступа, а определяет сетевые адаптеры для соединения по iSCSI.

itadm create-tpg iscsi-tpg01 10.100.30.73:3260 192.168.1.23:3260
itadm list-tpg

Создать группы таргетов (TG - target group)

Группа таргетов (TG) - представляет собой список имен таргетов (IQN). Каждый таргет может быть только в одной группе.

В некоторых релизах Solaris добавление таргета в TG требует остановки сервиса - «stmfadm: STMF target must be offline» Выполните svcadm disable stmf и после добавления svcadm enable stmf
stmfadm create-tg my10-tg01
stmfadm create-tg my10-tg02
svcadm disable stmf
stmfadm add-tg-member -g my10-tg01 iqn.2010-09.org.openindiana:02:c3ef53a4-fe7d-c15d-dc45-dcdd4ed099d1
stmfadm add-tg-member -g my10-tg02 iqn.2010-09.org.openindiana:02:8b99aac1-18f3-6f69-9701-da43ddfdf1c6
svcadm enable stmf

Создать группы хостов (HG - host group)

Группа хостов (HG - host group) - список имен инициаторов (IQN), которым разрешено видеть ваши LU (логические устройства) по iSCSI.

stmfadm create-hg my10-hg01
stmfadm add-hg-member -g my10-hg01 iqn.2013-02.net.colobridge.pro-book:01:8de284ad181
stmfadm list-hg -v

Mapping

MAPPING сопоставляет кому именно и что именно доступно.

Вспомнить имена созданных объектов:

stmfadm list-lu -v
sbdadm list-lu
stmfadm list-tg
stmfadm list-hg

Создать представление (view) или mapping для заданных TG (target group) и HG (host group)

stmfadm add-view -t my10-tg01 -h my10-hg01 600144F0D02C8F000000510BF6B30001
stmfadm list-view -l 600144F0D02C8F000000510BF6B30001

Добавить еще один LU в таргет

Создать ZVOL

zfs create -V 2g tank/zvol2

Создать LU

stmfadm create-lu /dev/zvol/rdsk/tank/zvol2

Узнать LU Name

stmfadm list-lu -v
sbdadm list-lu

Добавить новый LU к существующему таргету (группе таргетов)

stmfadm add-view -t my10-tg01 -h my10-hg01 600144F0D02C8F000000510FFB0C0002

Перечитать таргет на стороне клиента (linux)

iscsiadm -m session -R

Сохранение конфигурации

svccfg export -a stmf > comstar.bak.${DATE}
svccfg import comstar.bak.${DATE}

Расширить размер тома для таргета

В этом примере добавляем 100GB

zfs get volsize RAPID1/iSCSI/3070
NAME               PROPERTY  VALUE    SOURCE
TANK/iSCSI/3070  volsize   550G     local

Расширяем датасет

zfs set volsize=650G TANK/iSCSI/3070

Список лунов в подробностях

stmfadm  list-lu -v

LU Name: 600144F090898D110000556D99DC0006
  Operational Status: Online
  Provider Name     : sbd
  Alias             : /dev/zvol/rdsk/TANK/iSCSI/3070
  View Entry Count  : 1
  Data File         : /dev/zvol/rdsk/TANK/iSCSI/3070
  Meta File         : not set
  Size              : 590558003200
  Block Size        : 512
  Management URL    : not set
  Vendor ID         : SUN     
  Product ID        : COMSTAR         
  Serial Num        : not set
  Write Protect     : Disabled
  Writeback Cache   : Enabled
  Access State      : Active

Расширяем лун таргета

 sbdadm modify-lu -s 650G 600144F090898D110000556D99DC0006
 

Обновляем информацию на клиенте (инициаторе) доступными средствами.

Подключение к iSCSI

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

iscsiadm -m discovery -t st -p 192.168.1.23
iscsiadm -m node --targetname  iqn.2010-09.org.openindiana:02:c3ef53a4-fe7d-c15d-dc45-dcdd4ed099d1 -p 192.168.1.23 --login

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

parted -l
или
fdisk -l

Настройка таргета на идентификацию инициаторов с использованием CHAP

itadm modify-target -a chap <target-iqn>

Создать контекст описывающий инициатора.

itadm create-initiator -s <initiator-iqn>
itadm modify-initiator --chap-name <user_name>  <initiator-iqn>
itadm modify-initiator --chap-secret <initiator-iqn>

Пример:

itadm modify-initiator -s iqn.2013-02.net.colobridge.pro-book:01:8de284ad181
itadm modify-initiator --chap-user probook iqn.2013-02.net.colobridge.pro-book:01:8de284ad181
itadm modify-initiator --chap-secret iqn.2013-02.net.colobridge.pro-book:01:8de284ad181
Enter CHAP secret: 
Secret must be between 12 and 255 characters

Контроль:

itadm list-initiator -v
INITIATOR NAME                                               CHAPUSER  SECRET 
iqn.2013-02.net.colobridge.pro-book:01:8de284ad181           probook        set

На хосте - клиенте под Linux прописать параметры CHAP в файле /etc/iscsi/iscsid.conf

node.session.auth.username = <имя>
node.session.auth.password = <пароль>
discovery.sendtargets.auth.username = <имя>
discovery.sendtargets.auth.password = <пароль>

Монтирование iSCSI target на хосте под Solaris

Настройка авторизации chap:

iscsiadm modify initiator-node --chap-name <user_name>  <initiator-iqn>
iscsiadm modify initiator-node --chap-secret  <initiator-iqn>
iscsiadm modify initiator-node --authentication chap  <initiator-iqn>

svcadm enable iscsi_initiator iscsiadm add discovery-address x.x.x.x iscsiadm modify discovery –sendtargets enable iscsiadm list target -S

Пролистать доступные диски:

devfsadm -i iscsi
format < /dev/null

iSCSI Multipathing

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

scsiadm modify discovery –static enable

Проверить файл /kernel/drv/iscsi.conf

Там должно быть значение

mpxio-disable="no"

Установить статические конфигурации:

iscsiadm add static-config iqn.2010-09.org.openindiana:02:c3ef53a4-fe7d-c15d-dc45-dcdd4ed099d1,10.100.30.73:3260
iscsiadm add static-config iqn.2010-09.org.openindiana:02:8b99aac1-18f3-6f69-9701-da43ddfdf1c6,192.168.1.23:3260

Проверьте /var/adm/messages

Вы должны увидеть degraded после первой команды и optimal после ввода команды второй статической конфигурации.

Проконтролируйте вывод dmesg:

 dmesg | grep multipath

Мониторинг

Смотрите также: