OpenFiler часть 2. iSCSI сторадж для KVM-хоста

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

Одной из возможностей дистрибутива OpenFiler является поддержка iSCSI позволяющего экспортировать(предостовлять доступ по сети)блочные устройства используемые в качестве общего сетевого хранилища в виртуальной инфраструктуре предприятия.

ISCSI-Targets(iSCSI-цели) — это экспортируемые в сеть(по протоколу iSCSI) блочные устройства(диски или разделы диска, LVM-тома и т.д). Будучи смонтированными на клиентской машине,( в нашем случае это KVM-хост под управлением Libvirt) с помощью специальной клиентской части(iSCSI-initiator) эти устройства “видятся” как локальные диски, работа с которыми проходит в обычном режиме, абсолютно прозрачно для приложений. Фактически же обращение к этим псевдо-локальным дискам/iSCSI-целям происходит по сети по специально адаптированному SCSI протоколу инкапсулированному в обычные TCP-пакеты. Протокол iSCSI получил дополнительный талчек в развитии благодаря все более и более популярным технологиям виртуализации в которых он широко используется.

Технические детали

В качестве iSCSI-стораджа используется уже упомянутый OpenFiler 2.3 x86-64 с настройками по умолчанию и двумя уже установленными(но еще не размеченными)жесткими дисками которые мы и будем раздавать по протоколу iSCSI.

Разметка свеже-установленных дисков

На вкладке Volumes в под разделе Block Devices в WEB-консоле OpenFiler можно увидеть все установленные в системе блочные устройства(диски). Рис. №1.

Рис. №1. Просмотр  установленных блочных устройств(дисков)

Если нажать на ссылку view в колонке Partition то будет выведена текущая таблица разделов выбранного устройства. Для разметки необходимого диска, нужно нажать на его имя в виде ссылки в колонке Edit Disk как показано на рисунке.
После того как нужный диск выбран, открывается страница разметки диска. Рис №2.
Рис №2. Создание Physical volume(PV)

В OpenFiler, управление дисками производится на уровне LVM-томов. Поэтому привычной разметки дисков Вы не увидите. Если вы не знакомы с высокоуровневой архитектурой LVM(Logical Volume Manager) то на этом моменте вам стоит остановиться и немного просвятиться в сети.
В открывшемся диалоге разметки диска(Рис №2) нам предложено два варианта в выпадающем списке колонки Partition Type. Первый, Physical volume(PV) – это самый низкоуровневый элемент в иерархии LVM. Таких PV может быть десятки и в дальнейшем они будут объединены в группы(VG) а в свою очередь группы, как большие массивы могут быть порезанные на различные блоки(тома(LV)) или не порезаны(получается один большей том). Во втором варианте предлагается построить RAID, но делать этого мы не будем. В моем случае, я оставляю все как есть(Physical volume) и нажимаю кнопочку create. В результате этого, в верхней части страницы появится таблица с только, что добавленным, единственным разделом без файловой системы и привычных точек монтирования. Все, наше блочное устройство готово для дальнейших приготовлений.

Далее, на той же страничке в подразделе Volume Group необходимо создать новую группу томов и добавить в нее наше, уже готовое для этого блочное устройство. Рис №3.

Рис №3. Создание новой группы томов(VG)

Если все сделанно правильно. Указанно имя новой группы томов(VG) и установлена галочка напротив нашего ранее созданного PV, то на текущей страничке в разделе Volume Group Manger появится новая группа томов с указанным вами именем. У меня на ресунке №3 уже присутствует одна группа томов VolGroup00 которая скорей всего будет отсутствовать у вас. Эта группа была создана мной еще при установке системы.

После того как группа томов(VG) создана, в нее можно без проблем добавить оставшийся у меня диск(предварительно разметив его как PV) Рис №4
Рис №4. Добавление еще одного PV в группу томов.

Теперь в имеющейся у нас группе томов(VG) необходимо создать конечный, логический том(LV).
В разделе Add Volume должна быть выбрана созданная нами группа томов(VG). Если VG одна то она выбрана по умолчанию. Рис №5.

Рис №5. Выбор группы томов для создания в ней логического тома

После этого в нижней части страницы доступен уже привычный редактор дисковых разделов и предложено на выбор несколько файловых систем; XFS, Ext3 и то что нам надо – iscsi. Рис №6.
Рис №6. Создание нового логического тома (LV)

После нажатия на кнопку create будет создан новый том с типом ФС – iscsi и указанным нами именем и размером. Рис №7
Рис №7. Создан новый логический том.

Создание  iSCSI-Target’a и предоставление к нему доступа из сети

Теперь все почти готово. Осталось только разрешить доступ к выше созданному тому по протоколу iscsi. Фактически же это означает, что нам необходимо создать iSCSI-target – цель в терминологии iSCSI.
В разделе iSCSI Targets во вкладке Target Configuration необходимо указать уникальное, сетевое имя(IQN) для будущего target’a. Рис №8.
Рис №8. Создание уникального IQN

Сгенерированное системой имя(IQN) для нового target’a можно изменить в ручную, и придать ему более человечное имя. Стоит не забывать, что имя имеет свои стандартизированный формат и должно быть уникально в рамках сервера. Поэтому не стоит его сильно коверкать(могут быть проблемы). Просто измените последние несколько символов, чтобы вы могли идентифицировать этот target.

Далее на вкладке LUN Mapping необходимо указать какому логическому тому должен быть присвоен созданный ранее(IQN). Рис. №9
Рис. №9. Привязка имени таргета к логическому тому.

В колонке R/W Mode также можно указать режим кеширования. Write-back — данные сначала пишутся в кеш а потом из кеша на диск. Получается быстрее но менее безопаснее так как данные в кеше могут быть потерянны в случае отказа питания например. Write-thru – наоборот, запись сразу производится на диск.
После того как нашему target’у присвоено уникальное имя необходимо указать каким хостам в сети можно будет получить к нему доступ. Делается это на этой же страничке во вкладке Network ACL. После перехода на эту вкладку будет выведено сообщение о том что не создан список сетей или хостов. Его нужно создать в разделе Local Networks пройдя по соответствующей ссылке. Создается этот список очень просто. Рис №10
Рис №10. Описание подсети или хоста для управления доступом к таргету.

После того как в список добавлена вся подсеть можно смело возврощаться туда где мы мапили нашь таргет и во вкладке Network ACL разрешить появившейся в списке сети доступ поменяв Deny на Allow. Рис №11
Рис №11. Оnкрытие доступа для всей подсети.

Не открытой осталась еще одна вкладка в настройках iSCSI-target’a – CHAP Authentication. Эта вкаладка позволяет указать учетные данные(пользователь и пароль) причем отдельные как для входящих конектов так и для исходящих. В результате получется что нашь таргет сможет быть доступен только пользователям прошедшим проверку. Но нам это не нужно.

Ну вот и все. Нашь новый iSCSI-target настроен и полностью готов к использованию. Осталось только смонтировать его на клиентском хосте и пользоваться как обычным локальным диском. Как подключить iSCSI-таргет в Virt-manager’e/virsh и поставить на него ВМ я расскажу в следующей статье.