среда, 17 августа 2011 г.

Подключаем внешнее хранилище к XenServer по iSCSI

Само хранилище будет лежать на хосте с CentOS.

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

Именование в iSCSI
IQN (iSCSI qualified name) – имя длиной до 255 символов в следующем формате:
iqn.<year-mo>.<reversed_domain_name>:<unique_name>
Здесь:
<year-mo> это год (year) и месяц (mo), когда был зарегистрирован домен;
<reversed_domain_name> официальное имя домена, записанное в обратном порядке;
<unique_name> это произвольное имя, например, имя сервера.
Пример: iqn.1998-01.com.mycompany:myserver.
EUI (extended unique identifier) – Represents the eui. prefix followed by the
16‐character name. The name includes 24 bits for company name assigned by the IEEE and 40 bits for a unique ID such as a serial number. Например, eui.0123456789ABCDEF.
http://xgu.ru/wiki/iSCSI

Вот так вот хитро и непонятно.

Варианта штатно 2:
netbsd-iscsi.x86_64 : User-space implementation of iSCSI target from NetBSD
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs
Плюс уже стоит
iscsid - Open-iSCSI daemon

netbsd - userspace, то есть медленно и грузит цп.

Есть варианты вроде компиляции самому, например Установка iSCSI-target на CentOS, но тогда уж надо собирать open-scsi c iSER.. В общем, будем разбираться с scsi-target-utils

"Хранилище"
Ставим пакет.
# yum install -y scsi-target-utils.x86_64

Конфиг лежит в (!) /etc/tgt/target.conf
Впрочем, есть вариант "напрямую" через tgtadm. Попробуем.
# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2000-01.ru.spb.webmaster:disk1
# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /mnt/1t/xen/iSCSI/iscsi-target0
Для теста я поставил в заранее созданный файл на 4Gb
# ls -la /mnt/1t/xen/iSCSI/iscsi-target0
-rw-r--r-- 1 root root 4294967808 Sep 29 2010 /mnt/1t/xen/iSCSI/iscsi-target0
# tgtadm --mode target --op show
Target 1: iqn.2000-01.ru.spb.www:disk1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB
Online: Yes
Removable media: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 4295 MB
Online: Yes
Removable media: No
Backing store type: rdwr
Backing store path: /mnt/1t/xen/iSCSI/iscsi-target0
Backing store flags:
Account information:
ACL information:

Теперь пробуем подключить этот лун в хенсервере. Вводим имя хоста, Discover IQNs - находит. Делаем Discover LUNs - получаем "The SR failed to complete the operation".
Дело в том, что у нас просто "нет прав", что можно проверить с другой машины в сети
# iscsiadm -m discovery -t st -p 192.168.2.15
#

Дадим права.
# tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

Снова с другой машины:
# iscsiadm -m discovery -t st -p 192.168.2.15
192.168.2.15:3260,1 iqn.2000-01.ru.spb.www:disk1

Отлично.
Снова делаем Discover LUNs, ждём секунд 10, радуемся.
Finish, да форматировать
Появился диск, можно на него ставить систему.

Вообще, правильнее давать не файлы, а LV-разделы например. Для этого в -b указывается путь в /dev
-b /dev/mapper/iscsi_vg-iscsi_300Gb

И ещё сюрприз.
Перезапускаем сервис... и все таргеты пропадают. Установка 777 на конфиг файл и рабочую директорию не помогает.

Все операции выше уместились в 3 строки

<target iqn.2000-01.ru.spb.www:disk1>
backing-store /mnt/1t/xen/iSCSI/iscsi-target0
</target>

Некоторые вещи можно делать через
tgt-admin
tgt-setup-lun

например, tgt-admin -s
аналог tgtadm --mode target --op show

Линки
http://xgu.ru/wiki/iSCSI
http://markelov.blogspot.com/2008/11/iscsi-target-initiator-rhelfedora.html
http://daevy.uzps.mh.ru/?p=512
http://redhat-club.org/forum/viewtopic.php?id=8491

Комментариев нет:

Отправить комментарий