Статья была написана 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 все настройки были оставленны по умолчанию, то подключится к нашему таргету сможет только один клиент!
Помогла ли вам статья?