Хотел поделиться опытом создания iSCSI таргета на CentOS 7 посредством targetcli. Targetcli – это оболочка для управления Linux-IO Target (LIO™). LIO™ – это реализация SCSI таргета с открытым исходным кодом. LIO™ была включена в ядро Linux в версии 2.6.38.
Targetcli на CentOS 7 представляет таргет в виде иерархически построенной структуры. И делит таргет на back-end и front-end части. Backstores – это back-end, fabric module – это front-end. Backstores это всегда один раздел в иерархии targetcli, внутри которого отображаются хранилища в виде объектов, в то время, как fabric module может быть не один, в нём содержатся различные настройки видимой снаружи части таргета. Существует несколько типов fabric module: Fibre Channel over Ethernet (FCoE), Fibre Channel, IEEE 1394, iSCSI, iSCSI Extensions for RDMA (iSER), SCSI RDMA Protocol (SRP), USB Gadget, Loopback. Ниже можно видеть как выглядит структура таргета с точки зрения targetcli:
Теперь по порядку по элементам
Backstores – это раздел, в котором отображаются объекты-хранилища. Backstores не видимая снаружи часть iSCSI таргета.
Block –жесткий диск, символические ссылки на диск или LVM.
Fileio – файл.
PSCSI (SCSI pass-through) – любое устройство для хранения информации, поддерживающее SCSI команды напрямую, то есть без эмуляции SCSI. Этот бэкстор не нужно использовать, так как может привести к повреждениям железа.
Ramdisk – RAM-диск.
iSCSI – это fabric module, видимая снаружи часть iSCSI таргета. Он содержит список таргетов, лунов, права доступа и т.п. Список всего этого добра появится после настройки.
Loopback – ещё один fabric module, который дает доступ к таргету локально.
yum install targetcli
systemctl enable target systemctl start target
targetcli ls help
/backstores/block create storage01 /dev/sdb /backstores/block create storage02 /dev/vg01/lv01 ls
/iscsi create ls
Внутри iscsi можно видеть структуру. Первый элемент – имя таргета. Ниже по иерархии tpg1 расшифровывается как Target Portal Group – список IP-адресов и TCP портов, которые будет слушать этот таргет. Дальше идут acl – список адресов, с которых можно будет подключиться к таргету, luns – список лунов, portals – список IP-адресов и портов, которые будет слушать таргет.
cd -- используя стрелки для навигации по иерархии, переместиться на уровень tpg1 -- set parameter AuthMethod=None set attribute authentication=0
acls/ create iqn.1991-05.com.microsoft:hypervisor
В случае, если инициатором будет другой компьютер под управлением Linux, то для получения имени инициатора необходимо прочитать файл /etc/iscsi/initiatorname.iscsi. В этом же файле можно и изменить имя iSCSI инициатора. Для получения имени iSCSI инициатора под Windows необходимо открыть Панель управления -> Администрирование -> iSCSI инициатор. В окне с настройками иницатора выбрать последнюю вкладку Конфигурация. Прочитать поле имя инициатора.
luns/ create /backstores/block/storage02
portals/ create 192.168.10.5
cd / ls saveconfig
На этом таргет готов к использованию. Остается только подключиться инициатором к таргету и использовать LUN как локальный жесткий диск.
We decided to use an Azure App Configuration to store configs of backend. App Configuration…
I have encountered an issue with az acr login --name <acr_name> command. It hanged and…
I have tried to learn terraform from scratch and found pretty simple tutorial for beginners.…
При внедрении Swagger в проекте .Net Core Web API потребовалось скрыть одно поле из примера,…
Около года назад я решил попробовать заработать на фондовой бирже, покупая и продавая акции. Изучая…
Во время установки .NET Framework столкнулся с ошибкой Installation failed with error code: (0x00000490), "Element…
View Comments
Хорошо написали, спасибо.
А как можно удалить конфиг, если неправильно что-то сделал?
Если необходимо удалить какую-то часть иерархии, то можно почитать help для конкретного объекта иерархии.
/backstores/block help
Под рукой нет Linux, не могу проверить, но, наверняка, там должна быть команда типа delete.
Если хочется уничтожить полностью конфиги, то они находятся в /etc/target. Только делайте копии перед удалением.
Благодарю. Да, delete есть.