Создание и настройка программной СХД (iSCSI-target) для тестового стенда
- Создать гостевую машину
iscsi-target. Действия по созданию гостевой машины аналогичны действиям, описанным в статье Создание гостевой машины (за исключением пункта установки дополнительного оборудования — канал SPICE добавлять не нужно). При этом необходимо установить следующие параметры гостевой машины:- количество процессоров: 1;
- размер памяти (ОЗУ): 2 ГБ;
объем диска для размещения ОС: 12 ГБ.
Диски для эмуляции сетевых блочных устройств будет добавлены позже.
Для организации системы хранения в ПК СВ «Брест» требуется выделение как минимум двух сетевых блочных устройств.
В гостевой машине
iscsi-targetустановить операционную систему специального назначения "Astra Linux Special Edition" РУСБ.10015-01. При этом следует учитывать следующие особенности установки:- на странице Установка базовой системы выбрать для установки ядро
linux-5.15-generic; - на странице Выбор программного обеспечения выбрать пункт Средства удаленного подключения SSH;
- на странице Дополнительные настройки ОС выбрать Базовый уровень защищенности "Орел";
- на странице Дополнительные настройки ОС выбрать пункт Запрет автонастройки сети.
- на странице Установка базовой системы выбрать для установки ядро
- Настроить сетевое соединение:
в файл
/etc/network/interfacesдобавить следующие строки:CODEзапустить в работу сетевой интерфейс командой:
sudo ifup eth0Далее можно подключиться к гостевой машине из хостовой ОС по SSH.файл
/etc/hostsпривести к следующему виду:CODEзадать сетевое имя гостевой машине, выполнив команду:
sudo hostnamectl set-hostname iscsi-targetСообщение об ошибке вида:CODEможно игнорировать (перед тем как выполнить команду инструмент командной строки
sudoобращается к файлу/etc/hostsчтобы определить IP-адрес используя предыдущее имя гостевой машины).
- Выключить гостевую машину
iscsi-target. - В окне программы Virt-manager на панели инструментов окна гостевой машины
iscsi-targetнажать на кнопку [Показать виртуальное оборудование].
- Подключить к гостевой машине
iscsi-targetпервый диск для эмуляции сетевого блочного устройства: - Аналогичным образом подключить к гостевой машине
iscsi-targetвторой диск для эмуляции сетевого блочного устройства. - Подключить образ установочного носителя к гостевой машине
iscsi-target(см. Подключение образа установочного носителя к гостевой машине). - Включить гостевую машину
iscsi-target. В ОС гостевой машины
iscsi-targetвывести перечень блочных устройств:lsblkПример вывода после выполнения команды:CODEгде:
vda– диск для размещения файлов ОС;vdbиvdc– диски для эмуляции сетевых блочных устройств.
В ОС гостевой машины
iscsi-targetустановить консоль управления Linux-IO Target (пакетtargetcli-fb):sudo apt install targetcli-fbВойти в консоль управления Linux-IO Target командой:
sudo targetcliВ консоли управления вывести текущую конфигурацию командой:
lsПример вывода после выполнения команды:CODEСоздать (зарегистрировать) блочное устройство
/dev/vdbв разделе/backstores/block, присвоив устройству наименование, например,storage01:/backstores/block create storage01 /dev/vdbПример вывода после выполнения команды:CODEПроверить результат командой
ls. Пример вывода после выполнения команды:CODEСоздать цель (
target) в разделе/iscsiкомандой:/iscsi createПример вывода после выполнения команды:CODEПроверить результат командой
ls. Пример вывода после выполнения команды:CODEСоздать LUN на основе блочного устройства, зарегистрированного в разделе
/backstores/block/iscsi/<идентификатор_цели>/tpg1/luns/ create /backstores/block/<наименование_устройства>где:- <наименование_устройства> – в рассматриваемом примере имеет значение
"storage01"(см. шаг 14); - <идентификатор_цели> – в рассматриваемом примере имеет значение
"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1"(см. шаг 16).
Пример вывода после выполнения команды:
CODE- <наименование_устройства> – в рассматриваемом примере имеет значение
Проверить результат командой
ls. Пример вывода после выполнения команды:CODE- В рассматриваемом примере контроль доступа не требуется, поэтому его можно отключить:
переместиться на ветку
/iscsi/<идентификатор_цели>/tpg1:cd /iscsi/<идентификатор_цели>/tpg1где <идентификатор_цели> – в рассматриваемом примере имеет значение"iqn.2003-01.org.linux-iscsi.iscsi-target.x8664:sn.76c72e49ddc1"(см. шаг 16).В консоли управления нажатие клавиши <Tab> автоматически дополняет текущую команду или путь к ветке дерева конфигурации, если возможен только один вариант.
отключить использования списков управления доступом (ACL) командой:
set attribute generate_node_acls=1Пример вывода после выполнения команды:CODEнастроить работу цели в demo-режиме (без аутентификации, видимым и доступным для всех) командой:
set attribute demo_mode_write_protect=0Пример вывода после выполнения команды:CODE
- Повторить шаги 14 – 20 для блочного устройства
/dev/vdc(при выполнении действий шага 14 присвоить устройству наименование, например,storage02). Выполнить сохранение настроек:
/ saveconfigПример вывода после выполнения команды:CODEВыйти из консоли управления:
exit
В консоли управления Linux-IO Target, используемой в ПК СВ версии 3.2, введена система бэкапов конфигурации, и, в связи с этим, после перезагрузки сохраненная конфигурация не загружается автоматически.
На текущий момент после перезагрузки конфигурацию необходимо восстанавливать командой:
sudo targetcli restoreconfig
Пример вывода после выполнения команды:
Для того чтобы автоматизировать восстановление конфигурации, необходимо выполнить действия, описанные ниже.
Создать службу
target, сформировав unit-файл, например с помощью тестового редактораnano, для этого выполнить команду:В открывшемся текстовом редакторе добавить следующие строки:sudo nano /lib/systemd/system/target.service
CODEПосле этого сохранить unit-файл и закрыть текстовый редактор.
Перезагрузить список служб командой:
sudo systemctl daemon-reloadДобавить службу
targetв автозагрузку командой:sudo systemctl enable targetПример вывода после выполнения команды:CODEДля проверки следует перезагрузить гостевую машину
iscsi-targetи вывести информацию о состоянии службыtarget:sudo systemctl status targetПример вывода после выполнения команды:CODE

