Colobridge WIKI

основные команды для управления iscsi таргетом scst

Применимость:

Слова для поиска: iscsi, target, scst


  1. Создать для сервера-инициатора (сервер виртуализации KVM) таргет из LVM тома.
  2. Подключится к таргету.
  3. Увеличить размер LVM тома.
  4. Уведомить инициатор об увеличении тома в таргете.
  5. Использовать дополнительное пространство.

iSCSI: (англ. Internet Small Computer System Interface) — протокол, который базируется на TCP/IP для взаимодействия и управления системами хранения данных, серверами и клиентами.

iSCSI Target: (Цель iSCSI) — программа или аппаратный контроллер (HBA), осуществляющие эмуляцию диска и выполняющие запросы iSCSI. Целевая система может включать в себя несколько логических устройств (для простоты можно считать их дисками), идентифицируемых своим LUN (logic unit number).

iSCSI-сервер; предоставляет доступ к своим устройствам по iSCSI.

Обнаружение (discovery) — процесс, в ходе которого инициатору становятся известны доступные ему таргеты.

Показать список логических томов и создать новый том на 20Гб.

lvscan 
lvcreate -L20G -nve104 vg_ad062

В результате

lvs /dev/vg_ad062/ve104
  LV    VG       Attr     LSize  Pool Origin Data%  Move Log Copy%  Convert
  ve104 vg_ad062 -wi-a--- 20.00g

Создать таргет с именем iqn.2012-10.net.colobridge.ad062:tgt

scstadmin -add_target iqn.2012-10.net.colobridge.ad062:tgt -driver iscsi

Теперь мы должны добавить устройство с именем ve104:

scstadmin -open_dev ve104 -handler vdisk_fileio \
-attributes filename=/dev/vg_ad062/ve104,nv_cache=1

Нужно указать номер LUN ​. Устройств в таргете может быть несколько и нумерация LUN всегда начинаются с 0:

scstadmin -add_lun 0 -driver iscsi \
-target iqn.2012-10.net.colobridge.ad062:tgt -device ve104

Это минимальная конфигурация по умолчанию для таргета iSCSI. Теперь нужно его активировать (если он не был активен):

scstadmin -enable_target iqn.2012-10.net.colobridge.ad062:tgt \
-driver iscsi

Для этого используются файлы /etc/initiators.allow и /etc/initiators.deny

Разрешить таргет для инициаторов из сети 192.168.8.0/28

cat /etc/initiators.allow 
#ALL ALL
iqn.2012-10.net.colobridge.ad062:tgt	192.168.8.0/28

Запретить все отовсюду.

cat /etc/initiators.deny 
ALL ALL

В последней версии появилась возможность ограничивать ответ iscsi портала на определенном адресе:

scstadmin -add_tgt_attr iqn.2012-10.net.colobridge.ad062:tgt \
-driver iscsi -attributes allowed_portal=192.168.8.1

После этого сервер будет слушать запросы к указанному таргету только на этом адресе

Команды сразу дают соответствующий эффект, но чтобы сделанное сохранилось нужна команда

scstadmin -write_config /etc/scst.conf

/etc/scst.conf

  HANDLER vdisk_fileio {

	DEVICE ve104 {
		filename /dev/vg_ad062/ve104
		nv_cache 1
	}
}

TARGET_DRIVER iscsi {
	enabled 1

	TARGET iqn.2012-10.net.colobridge.ad062:tgt {
		allowed_portal 192.168.8.1
		cpu_mask ffffff
		enabled 1
		rel_tgt_id 4

		LUN 0 ve104
	}
}

Команды выполняются на инициаторе

iscsiadm -m discovery -t st -p 192.168.8.1
iscsiadm -m node --targetname  iqn.2012-10.net.colobridge.ad062:tgt \
-p 192.168.8.1 --login

Команда выполняется на таргете

Добавим 20Гб к имеющимся.

lvextend -L+20G /dev/vg_ad062/ve104
 Extending logical volume ve104 to 40.00 GiB
 Logical volume ve104 successfully resized

Команда выполняется на таргете

Вывести список устройств

scstadmin -list_device

Уведомить инициатор об изменении устройства:

scstadmin -resync_dev ve104

на инициаторе можно обновить данные о таргетах

iscsiadm -m session -R

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

Если это устройство для виртуального контейнера, то процесс контейнера надо перезапустить.