OpenFiler часть 3. Подключение iSCSI-таргета на KVM-хосте

Статья была написана 10 апреля 2011 г. Перенесена из старого блога.

После того как iSCSI SAN в роли которого выступает OpenFiler 2.3 настроен и наш iSCSI-target готов к клиентским подключениям самое время поговорить о iSCSI-initiator’ах.

Подключение iSCSI-target’a в ручную, через консоль

Сегодня, практически не найти дистрибутива в котором по умолчанию отсутствует пакет open-iscsi(или iscsi если у вас CentOS) включающий в себя все необходимое для работы с iscsi.

На всякий случай запускаем службу и добавляем ее в автозагрузку

# /etc/init.d/open-iscsi start в debian и openSUSE или #/etc/init.d/iscsi start в CentOS
#chkconfig open-iscsi on

# iscsiadm -m discovery
192.168.0.92:3260 via sendtargets
192.168.0.91:3260 via sendtargets
Сканирует все хосты в локальной сети и выводит список адресов на которых поднят iscsi-server.

# iscsiadm -m discovery -t sendtarget -p 192.168.0.92:3260
discovery.startup = manual
discovery.type = sendtargets
discovery.sendtargets.address = 192.168.0.92
discovery.sendtargets.port = 3260
discovery.sendtargets.auth.authmethod = None
discovery.sendtargets.auth.username = <empty>
discovery.sendtargets.auth.password = <empty>
discovery.sendtargets.auth.username_in = <empty>
discovery.sendtargets.auth.password_in = <empty>
discovery.sendtargets.timeo.login_timeout = 15
discovery.sendtargets.reopen_max = 5
discovery.sendtargets.timeo.auth_timeout = 45
discovery.sendtargets.timeo.active_timeout = 30
discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
производит поиск целей на указанном хосте

В итоге будут созданы две поддиректории с информацией о целе(target) и хосте.
/etc/iscsi/nodes(openSUSE) или /var/lib/iscsi/nodes(CentOS) с вот таким содержимым в моем случае iqn.2006-01.com.openfiler:iscsi0. Здесь содержится описание каждого найденного таргета.

/etc/iscsi/send_targets(openSUSE) /var/lib/iscsi/send_targets/(CentOS)
содержимое 192.168.0.91,3260. Здесь содержится описание хоста.
Используя информацию в созданных выше каталогах, iscsi-демон(если он запускается при старте ОС) будет автоматически подключать цели при каждой загрузке системы.

# iscsiadm -m node -T iqn.2006-01.com.openfiler:iscsi0 -p 192.168.0.92
подробная информация о конкретном iSCSI-target’е. Все до деталей. Листинг приводить не буду т.к он не маленький.

#iscsiadm -m node -T iqn.2006-01.com.openfiler:iscsi0 -p 192.168.0.91:3260 -l
ручное монтирование указанной цели с указанного хоста
после этого в списке блочных устройств (fdisk -l) появится новое устройство

#iscsiadm -m node -T iqn.2006-01.com.openfiler:iscsi0 -p 192.168.0.91:3260 -u
отмонтирование указанной цели. Цель должна автоматически(если chkconfig open-iscsi on) примонтироваться при рестарте службы iscsi.

#iscsiadm -m node -T iqn.2006-01.com.openfiler:iscsi0 -p 192.168.0.91:3260 -o delete
удаление всей информации о цели. iSCSI-Target не будет автоматически монтироваться при старте системы.

Подключение iSCSI-таргет к KVM-хосту под управлением libvirt/virsh

Чтобы подключить iSCSI-хранилище на хосте под управлением libvirt необходимо создать xml-файл вот такого содержания:

<pool type=’iscsi’>
    <name>iSCSI-stor01</name>
    <uuid>f1282394-1d9e-8901-8ba2-7210c9f5c558</uuid>
    <capacity>0</capacity>
    <allocation>0</allocation>
    <available>0</available>
    <source>
         <host name=’192.168.0.92‘/>
         <device path=’iqn.2006-01.com.openfiler:iscsi0‘/>
    </source>
    <target>
         <path>/dev/disk/by-path</path>
         <permissions>
         <mode>0700</mode>
        <owner>-1</owner>
        <group>-1</group>
        </permissions>
    </target>
</pool>

Причем строку <uuid>f1282394-1d9e-8901-8ba2-7210c9f5c558</uuid> необходимо очистить и привести вот к такому виду <uuid></uuid>. При создании хранилища этот uuid будет сгенерирован автоматически.

После этого делаем:
#virsh pool-define /путьКфайлу/имяФайлаСОписаниемСтораджа.xml
Создаем новое хранилище на основе ранее созданного описания.

#virsh pool-autostart iSCSI-stor01
добавляем хранилище в «автозагрузку»

после этого в списке хранилищ, можно увидеть новое только, что добавленное iSCSI-хранилище
# virsh pool-list

Добавление нового iSCSI-хранилища через интерфейс virt-manager’a

Virt-manager, во всем и везде использует libvirt а libvirt в свою очередь использует общеизвестные средства, что и мы использовали в примере выше(тот же iscsiadm). В общем, как не крути но пакет open-iscsi должен быть установлен в не зависимости от того чем пользоваться virt-manager’ом или virsh.

В интерфейсе Virt-manager’a необходимо пройти в меню Правка и там выбрать Параметры хоста.
В открывшемся окне переходим на вкладку Хранилище и в левом нижнем углу выбираем Плюсик(добавить новое хранилище).
После этого задаем произвольное Имя нового хранилища и указываем Тип хранилища. Рис №1.
Рис №1. Описание нового хранилища

Жмем далее и указываем параметры подключения. Рис №2.
Рис №2. Указываем параметры подключения

Жмем Завершить и если ошибок не вывалится то увидим следующую картину. Рис №3
Рис №3. Обзор нового хранилища

Все, хранилище добавлено. Теперь его можно смело указывать в качестве диска для любой ВМ!

Добавления нового iSCSI-хранилища в WEB-консоле Proxmox VE 1.8

На главной странице WEB-консоли выбираем раздел Storage. Нажав на кнопочку Storage List выбераем Add iSCSI Target.
После этого указываем произвольное имя нового iSCSI-хранилища а так же адрес сервера на котором оно размещено. После этого можно нажать кнопочку scan которая очень быстро выведет список всех доступных iSCSI-target’ов на указанном сервере. По умолчанию в поле Target устанавливается имя первого найденного на сервере target’а. Из выпадающего списка можно выбрать любой из доступных на сервере. Рис №4
Рис №4. Добавление нового iSCSI-хранилища в Proxmox VE

После этого, новый iSCSI-Target может быть указан в качестве диска для любой ВМ. Рис №5
Рис №5. Подключение нового диска(iSCSI-Target) к ВМ

Хотя в платформе виртуализации Proxmox и не используется libvirt(что очень жаль) в качестве iscsi-initiator’a задействован все тот же пакет open-iscsi.

Если при создании iSCSI-таргета, в интерфейсе OpenFiler’a все настройки были оставленны по умолчанию, то подключится к нашему таргету сможет только один клиент!