null

Построение SAN на основе iSCSI. Конфигурация iSNS.

Прежде, чем начать свое повествование, хочу выделить основного автора данного решения, Сергея Кляуса и поблагодарить его за содействие в развертывании у заказчика демо-проекта.
А проект заключался в следующем: требовалось создать распределенную структуру систем хранения данных, с учетом возможности разделения на домены,  и обеспечить безопасную аутентификацию конечных пользователей. И главное, вместо привычного FC, использовался протокол iSCSI.
При создании статьи возник вопрос, насколько корректно называть такую систему SAN. С приходом iSCSI, понятия SAN и NAS тесно переплелись между собой. В   панели урпавления OpenStorage настройки iSCSI указываются именно в разделе SAN, посему позволю себе использовать именно эту аббревиатуру.
В первой статье я предлагаю ознакомиться с iSNS (Internet Storage Name Service).

Определимся с понятиями:

iSCSI инициатор — это клиент, подключающийся к iSCSI таргету (серверу) посредством одного из способов обнаружения: Static, Sendtargets или iSNS.
Static — инициатору явно указывается таргет в  виде ip и iqn.
Sendtargets — инициатору указывается ip-адрес таргета, который «отправляет» инициатору все имеющиеся iqn.
iSNS — инициатору указывается ip-адрес iSNS-сервера, который содержит в себе информацию о всех доступных данному инициатору таргетов.

Установка iSNS-сервера.

iSNS сервер разрабатывается в рамках проекта OpenSolaris, поэтому для его развертывания потребуется выделенный сервер с OpenSolaris или SXCE, или виртуальная машина (например VirtualBox). Для установки необходимо использовать IPS:

# pkg install SUNWisns

Для работы с iSNS-сервером можно использовать iSNS GUI, работающий через Java Web Console. К сожалению, Java Web Console не входит в поставку OpenSolaris, а проект SXCE — свернут. Однако ее можно сравнительно легко установить используя дистрибутив Solaris 10:
смонтируйте диск и перейдите в соответствующую директорию:

# mount -F hsfs -o ro /dev/dsk/c7t0d0p0 /mnt
# cd /mnt/Solaris_10/Product/

Затем установите соответствующие пакеты:

# pkgadd -d . SUNWmcon SUNWmconr SUNWmcos SUNWmcosx \
		SUNWmctag SUNWjato SUNWjhrt SUNWzfsgu

Запустите веб-консоль:

# svcadm enable webconsole

Также вам может потребоваться установка CACAO. Это к счастью может быть сделано через IPS:

# pkg install SUNWcacaort SUNWcacaowsvr

После этого можно переходить к установке iSNS BUI. Скачать его можно на странице
iSNS BUI по адресу iSNS BUI Download

Настройка iSNS-сервера.

Для настройки iSNS-сервера зайдите на веб-консоль по адресу https://hostname:6789/. Для доступа вам потребуется пользователь, обладающий ролью root и пароль от этой роли. Далее можно воспользоваться удобным BUI или выполнить команды из CLI.

Приведем пример настройки через CLI:

В структуре iSNS используется понятие Discovery Domain Set, схожее по смыслу с привычным пониманием этого понятия в SAN.
Можно использовать стандартный DDS:

# isnsadm enable-dd-set Default

Или же создать свой собственный:

# isnsadm create-dd-set my-set
# isnsadm enable-dd-set my-set

Включаем поддержку iSNS на таргетах:

# iscsitadm modify admin -S enable
# iscsitadm modify admin -s ip-address:3205

Итак, смотрим вывод

#isnsadm list-node
iSCSI Name: iqn.1986-03.com.sun:02:2f5a429e-dac5-cb9e-d83d-c7d7fdc23e4c.x4150-tgt 
        Alias: x4150-tgt 
        Type: Target 
iSCSI Name: iqn.1986-03.com.sun:01:0003ba603b71.4b727a7d 
        Alias: sf210 
        Type: Initiator 

Добавим имеющиеся узлы к ранее созданному Discovery Domain:

# isnsadm add-node -d my-domain iqn.1986-03.com.sun:02:2f5a429e-dac5-cb9e-d83d-c7d7fdc23e4c.x4150-tgt
# isnsadm add-node -d my-domain iqn.1986-03.com.sun:01:0003ba603b71.4b727a7d

 

Включим iSNS Discovery Mode на инициаторе:

#iscsiadm modify discovery -i enable


Все, iSNS успешно функционирует.