Подключение хранилища данных iSCSI на базе TROK

Подключение хранилища данных iSCSI на базе TROK#

TROK поддерживает установку следующих компонентов:

  • Controller — центральный контроллер для управления кластером;

  • Worker — системная утилита для управления хранилищем;

  • WEBUI — веб-интерфейс для управления TROK;

  • Harbor — компонент, необходимый для обеспечения возможности предоставления ресурсов по протоколам NFS, iSCSI или SMB.

Есть несколько вариантов установки:

  • Controller с несколькими Worker - полноценный кластер;

  • comdined узел - совмещение Controller и Worker на одной машине.

Режимы установки:

  • консольный ( поддерживаются ключи установки, а так же есть интерактивный режим);

  • GUI установщик;

  • пакетный режим установки - выбор конкретных пакетов и их ручная установка;

  • ansible.

Компонент

Контроллер

Клиент (CLI/GUI)

Worker (с хранилищем)

Disklessworker

CPU RAM Дисковое пространство Примечания

1 чип с 4 ядрами и более. Частота: от 2 ГГц | 1 ядро | 1 чип с 4 ядрами и более Частота: от 2 ГГц Минимальный объем: 8 ГБ. Рекомендуемый объем: 64 ГБ и более. Тип: DDR4, DDR5, ECC (защита от сбоев) | 512 МБ | Минимальный объем: 8 ГБРекомендуемый объем: 64 ГБ и более. Тип: DDR4, DDR5, ECC (защита от сбоев) Минимум 2 накопителя: Дисковое пространство для операционной системы и программного обеспечения емкостью 128 ГБ и более (SAS/SATA HDD/SSD); Дисковое пространство для хранения данных TROK: 1 накопитель (и более) с емкостью не менее 128 ГБ (SAS/SATA HDD) | Накопитель для операционной системы и программного обеспечения емкостью 128 ГБ и более (SAS/SATA HDD/SSD) | 2 накопителя: Дисковое пространство для операционной системы и программного обеспечения емкостью 128 ГБ и более (SAS/SATA HDD/SSD); Дисковое пространство для хранения данных TROK (серверы хранения данных): 1 накопитель (и более) с емкостью не менее 1 ТБ (SAS/SATA HDD) 2 сетевых порта с пропускной способностью 10 Гбит/с | Только для управления | 2 сетевых порта с пропускной способностью 10 Гбит/с

1 ядро и более от 1 ГБ Накопитель для операционной системы и программного обеспечения емкостью 128 ГБ и более (SAS/SATA HDD/SSD) Используется для кворума или как initiator NVMe-oF

Для проверки подключения и настройки хранилища по iSCSI предстпален вариантом установки comdined узла со следующими характеристиками:

  1. CPU - 6 ядер

  2. RAM - 8 GB

  3. диски:

  • один диск на 50GB под ОС;

  • два диска по 200GB под хранилища;

  1. один сетевой интерфейс.

Какой бы тип установки не был выбран, финальная настройка будет одинакова для всех случаев.

Ручная настройка#

Для ручной установки хранилища данных будут использованы терминал и веб-интерфейс:

  1. Для подготовки ВМ необходимо использовать версию ОС СН 1.8.5.46. В ходе установки необходимо выбрать уровень защищенности операционной системы «Орел».

Предупреждение

Необходимо использовать версию ядра ОС СН linux-6.1-generic.

  1. После установки ОС необходимо подготовить репозитории.

Предупреждение

Для установки программного обеспечения TROK рекомендуется использовать операционные системы, настроенные на работу с репозиториями ветки «frozen» либо с репозиториями, размещенными на установочном дистрибутиве Astra Linux Special Edition.

Например для версии 1.8.5.46 будет выглядеть следующим образом:

#deb cdrom:[OS Astra Linux 1.8.5.46  1.8_x86-64 DVD ]/ 1.8_x86-64 contrib main non-free non-free-firmware
#deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free non-free-firmware
#deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://dl.astralinux.ru/astra/frozen/1.8_x86-64/1.8.5/main-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://dl.astralinux.ru/astra/frozen/1.8_x86-64/1.8.5/extended-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
  1. Примонтировать установочный образ TROK в систему, убедиться, что уже установлена библиотека libyaml-cpp:

apt-cache search libyaml-cpp

Предупреждение

Для ОС СН 1.8.5.46 должна быть 0.7 версиябиблиотеки,если версия отличается, необходимо ее актуалитзировать командой:

sudo apt install libyaml-cpp0.7
  • ISO образ подключен напрямую к ВМ, необходимо примонтировать его к созданной директории и перейти в папку со скриптами установки с помощью команд:

sudo mkdir /mnt/trok_installer

sudo mount -o loop /dev/sr2 /mnt/trok_installer/

cd /mnt/trok_installer/installer

locadmin@trok-combined:/mnt/trok_installer/installer$ ls
config.yaml trok-installer trok-installer-gui
  • убедиться в наличии конфигурационного файла установки, а так же двух скриптов на разный режим установки.

  1. Для установки с использованием командной строки в интерактивном режимевыполнить команду:

sudo ./trok-installer

Пример вывода выполнения команды:

img/trok_instllr.png

В процессе установки необходимо выбрать:

  • для типа установки вариант 3 (Combined);

  • для дополнительных компонентов вариатнты 1,2 (Harbor, WebUI).

Предупреждение

  1. После запуска процесса установки могут появиться вопросы об установке уже имеющихся пакетов, на эти вопросы необходимо дать согласие.

  2. Установка может остановиться и не реагировать на предложенные ключи на данном моменте:

  1. После успешной установки необходимо проверить что запущены все необходимые службы командой:

sudo systemctl status trok-auth.service trok-controller.service trok-cp-endpoint.service trok-worker.service

Кроме того, необходимо проверить, что установлены drbd пакеты:

sudo apt list --installed | grep drbd

Пример вывода после выполнения команды:

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

drbd-6.1.158-1-generic/stable,now 9.2.15-3 amd64 [установлен]
drbd-reactor/stable,now 1.4.1-1 amd64 [установлен, автоматически]
drbd-ueficert/stable,now 9.2.11 all [установлен]
drbd-utils/stable,now 9.28.0-1 amd64 [установлен]

Примечание

Если окажется так, что отутствует пакет drbd-ueficert, его можно доставить командой:

sudo apt install drbd-ueficert
  1. Проверить наличие дисков, которые будут использоваться для хранилищ и создать физические тома и группы томов командами:

sudo lsblk

sudo pvcreate /dev/sdb
sudo vgcreate storage_brest /dev/sdb

sudo pvcreate /dev/sdc
sudo vgcreate storage_brest2 /dev/sdc

где sdb и sdc — предполагаемые тома.

  1. Проверить состояние служб и пакетов командами:

sudo dpkg -s trok-harbor-meta
sudo systemctl status targetclid.service
sudo systemctl status drbd-reactor
  1. Перейти в панель управления веб-интерфейсом, проверить на каком порту работает nginx командой:

sudo ss -tulpn | grep nginx

Пример вывода команды:

tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3238,fd=5),("nginx",pid=3236,fd=5),("nginx",pid=3235,fd=5),("nginx",pid=3234,fd=5),("nginx",pid=3233,fd=5),("nginx",pid=3232,fd=5),("nginx",pid=3106,fd=5))

Далее необходимо:

  1. перейти по IP-адресу ВМ в браузере;

b. пройти авторизацию: .. note:: Логинпароль по умолчанию - adminadmin (так же система предложит сменить пароль). c. после успешной авторизации откроется главная страница:

adm_guide/SDS/docops/source/adm_guide/SDS/img/main_str.png
  1. добавить узлы:

  • перейти в Узлы — Добавить +,

../../_images/new_node_add.png
  • указать параметры узла: IP-адрес, Имя узла, *порт*(если порт не менялся при установке, то оставить значение по умолчанию),

../../_images/new_node.png
  • нажать на кнопку Добавить +, через некоторое время после добавления значение состояния узла должно перейти в Online.

  1. добавить пулы хранения:

  • перейти в Пулы хранения — Добавить +,

../../_images/pull_add.png
  • указать параметры пула: Имя пула (должно быть уникальное), Узел (выбрать узел на котором расположена группа томов), Группа томов (группа, созданная на предыдущих шагах), Тип томов,

../../_images/new_pull.png
  • нажать на кнопку Добавить +, после чего появится сообщение об успешном добвалении пула, кроме того новый пул появится в таблице Пулы хранения;

../../_images/new_pull_list.png
  1. добавить шаблон ресурсов:

  • перейти в Шаблоны Ресурсов — Добавить +,

img/tmpl_srss_add.png
  • указать параметры шаблона ресурсов,

img/tmpl_srss.png
  • нажать на кнопку Добавить +;

  1. добавить шаблон томов:

  • перейти в Шаблоны Томов — Добавить +,

img/tmpl_strg_add.png
  • указать параметры шаблона ресурсов,

img/new_tmpl_strtg.png
  • нажать на кнопку Добавить +, после чего появится сообщение об успешном создании шаблона тома, кроме того новый шаблон тома появится в таблице Шаблоны Томов;

../../_images/new_strg_mssge.png
  1. добавить ресурсы:

  • перейти в Ресурсы — Добавить +,

img/new_srss_add.png
  • указать параметры ресурсов (рекомендуется отключить вариант Автоматический выбор узла хранения),

img/new_srss.png
  • нажать на кнопку Добавить +, после чего новый шаблон тома появится в таблице Ресурсы;

../../_images/new_srss_list.png

Примечание

если только один combined узел, необходимо принудительно перевести ресурс из состояния Inconsistent в UpToDate командами:

sudo drbdadm status

sudo drbdadm primary storage-brest2 --force
  1. Создать и отредактировать файл конфигурации DRBD Reactor (т.к. для данного теста используеется два LUN на двух разных ресурсах, создается два конфигурационных файла):

sudo nano /etc/drbd-reactor.d/iscsi-trokcombine.toml

[[promoter]]
[promoter.resources]
[promoter.resources.storage-brest]
on-drbd-demote-failure = "reboot-immediate"
runner = "systemd"
start = [
"ocf:heartbeat:IPaddr2 service_ip0 cidr_netmask=24 ip=10.177.126.230",
"ocf:heartbeat:iSCSITarget target allowed_initiators='' incoming_password=12345678 incoming_username=astra iqn=iqn.2025-12.ru.astra:storage-brest portals=10.177.126.230:3260",
"ocf:heartbeat:iSCSILogicalUnit lu1 lun=1 path=/dev/drbd/by-res/storage-brest/0 product_id='TROK iSCSI' scsi_sn=7509fab1 target_iqn=iqn.2025-12.ru.astra:storage-brest"
]
stop-services-on-exit = true
target-as = "Requires"

sudo nano /etc/drbd-reactor.d/iscsi-trokcombine2.toml

[[promoter]]
[promoter.resources]
[promoter.resources.storage-brest2]
on-drbd-demote-failure = "reboot-immediate"
runner = "systemd"
start = [
"ocf:heartbeat:IPaddr2 service_ip0 cidr_netmask=24 ip=10.177.126.231",
"ocf:heartbeat:iSCSITarget target allowed_initiators='' incoming_password=12345678 incoming_username=astra iqn=iqn.2025-12.ru.astra:storage-brest2 portals=10.177.126.231:3260",
"ocf:heartbeat:iSCSILogicalUnit lu1 lun=1 path=/dev/drbd/by-res/storage-brest2/0 product_id='TROK iSCSI' scsi_sn=7509fab2 target_iqn=iqn.2025-12.ru.astra:storage-brest2"
]
stop-services-on-exit = true
target-as = "Requires"
  1. Проверить состояние конфигурационного файла DRBD Reactor командой:

sudo drbd-reactorctl status

Предупреждение

Если в выводе команды статусы ресурсов не переводятся в состояние active (рядомс записью ресурса не появляется отметка зеленым цветом), необходимо выполнить команду:

sudo drbdadm secondary <ресурс>

где <ресурс> — название не активного ресурса.

  1. Выполнить настройку на инициаторах (в данном примере на стенде ПК СВ)командами:

sudo iscsiadm -m discovery -t st -p 10.177.126.230
echo "InitiatorName=iqn.2026-02.ru.astra:storage-brest" > /etc/iscsi/initiatorname.iscsi
sudo nano /etc/iscsi/iscsid.conf - явки пароли
sudo iscsiadm -m discovery -t sendtargets -p 10.177.126.230
sudo iscsiadm -m node --loginsudo iscsiadm -m discovery -t st -p 10.177.126.231
echo "InitiatorName=iqn.2026-02.ru.astra:storage-brest2" > /etc/iscsi/initiatorname.iscsi
sudo nano /etc/iscsi/iscsid.conf - явки пароли
sudo iscsiadm -m discovery -t sendtargets -p 10.177.126.231
sudo iscsiadm -m node --login
  1. Уже подключенные по iSCSI диски использовать для добавления хранилища BREST_LVM в ПК СВ:

NAME="brest-lvm-system"
TYPE="SYSTEM_DS"
TM_MAD="brest_lvm"
DRIVER="qcow2"

NAME="brest-lvm-images"
TYPE="IMAGE_DS"
DISK_TYPE="BLOCK"
DS_MAD="brest_lvm"
TM_MAD="brest_lvm"
DRIVER="qcow2"

например --- brest_lvm хранилищам были назначены - 100 и 101 ID

организовать блокировки:sudo ls /dev/disk/by-id/ - найти подключенные iscsi диски

sudo vgcreate --shared --lock-type sanlock vg-one-100 /dev/disk/by-id/scsi-ID
sudo vgcreate --shared --lock-type sanlock vg-one-101 /dev/disk/by-id/scsi-ID

Пример вывода созданных хранилищ в веб-интерфейсе ПК СВ:

../../_images/brest_storage_proof.png

Настройка с использованием API TROK#

Для установки с использованием API TROK хранилища данных будут использованы терминал и веб-интерфейс:

  1. Для подготовки ВМ необходимо использовать версию ОС СН 1.8.5.46. В ходе установки необходимо выбрать уровень защищенности операционной системы «Орел».

Предупреждение

Необходимо использовать версию ядра ОС СН ` ``linux-6.1-generic`.

  1. После установки ОС необходимо подготовить репозитории.

Предупреждение

Для установки программного обеспечения TROK рекомендуется использовать операционные системы, настроенные на работу с репозиториями ветки «frozen» либо с репозиториями, размещенными на установочном дистрибутиве Astra Linux Special Edition.

Например для версии 1.8.5.46 будет выглядеть следующим образом:

#deb cdrom:[OS Astra Linux 1.8.5.46  1.8_x86-64 DVD ]/ 1.8_x86-64 contrib main non-free non-free-firmware
#deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free non-free-firmware
#deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://dl.astralinux.ru/astra/frozen/1.8_x86-64/1.8.5/main-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
deb https://dl.astralinux.ru/astra/frozen/1.8_x86-64/1.8.5/extended-repository/ 1.8_x86-64 main contrib non-free non-free-firmware
  1. Примонтировать установочный образ TROK в систему, убедиться, что уже установлена библиотека libyaml-cpp:

apt-cache search libyaml-cpp

Предупреждение

Для ОС СН 1.8.5.46 должна быть 0.7 версиябиблиотеки,если версия отличается, необходимо ее актуалитзировать командой:

sudo apt install libyaml-cpp0.7
  • ISO образ подключен напрямую к ВМ, необходимо примонтировать его к созданной директории и перейти в папку со скриптами установки с помощью команд:

sudo mkdir /mnt/trok_installer

sudo mount -o loop /dev/sr2 /mnt/trok_installer/

cd /mnt/trok_installer/installer

locadmin@trok-combined:/mnt/trok_installer/installer$ ls
config.yaml trok-installer trok-installer-gui
  • убедиться в наличии конфигурационного файла установки, а так же двух скриптов на разный режим установки.

  1. Для установки с использованием командной строки в интерактивном режимевыполнить команду:

sudo ./trok-installer

Пример вывода выполнения команды:

img/docops/source/adm_guide/SDS/img/trok_instllr.png

В процессе установки необходимо выбрать:

  • для типа установки вариант 3 (Combined);

  • для дополнительных компонентов вариатнты 1,2 (Harbor, WebUI).

Предупреждение

  1. После запуска процесса установки могут появиться вопросы об установке уже имеющихся пакетов, на эти вопросы необходимо дать согласие.

  2. Установка может остановиться и не реагировать на предложенные ключи на данном моменте:

home/astralinux.ru/agovorova/AIC/docops/source/adm_guide/SDS/img/trok_instllr_err.png

в таком случае прервать процесс установки и выполнить команду:

sudo dpkg --configure -a

после выполнения запустить установку с начала:

sudo ./trok-installer
  1. После успешной установки необходимо проверить что запущены все необходимые службы командой:

sudo systemctl status trok-auth.service trok-controller.service trok-cp-endpoint.service trok-worker.service

Кроме того, необходимо проверить, что установлены drbd пакеты:

sudo apt list --installed | grep drbd

Пример вывода после выполнения команды:

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

drbd-6.1.158-1-generic/stable,now 9.2.15-3 amd64 [установлен]
drbd-reactor/stable,now 1.4.1-1 amd64 [установлен, автоматически]
drbd-ueficert/stable,now 9.2.11 all [установлен]
drbd-utils/stable,now 9.28.0-1 amd64 [установлен]

Примечание

Если окажется так, что отутствует пакет drbd-ueficert, его можно доставить командой:

sudo apt install drbd-ueficert
  1. Проверитьверсию API командой:

  curl --request GET \
--url http://IP/v1/controller/version | jq
  1. Получить значения CLIENT_ID и CLIENT_SECRET из ПК СВ.

Примечание

Значения CLIENT_ID и CLIENT_SECRET предустановлены по умолчанию: CLIENT_ID=»851ff3caeae253535bd881ce54adf5c0» CLIENT_SECRET=»6c28fc8668b51dbc8cd5dfdd1da0ff2851ded014fba54d225d00faef7fdc6ba62825d7fe6b63d38e1e5856e7cda44282a99a67a8935e8c0fe9158f519ac3e3c0»

  1. Получить токен авторизации с помощью команды:

curl -X POST \
'http://IP/v2/auth/token?client_id=851ff3caeae253535bd881ce54adf5c0&client_secret=6c28fc8668b51dbc8cd5dfdd1da0ff2851ded014fba54d225d00faef7fdc6ba62825d7fe6b63d38e1e5856e7cda44282a99a67a8935e8c0fe9158f519ac3e3c0&grant_type=client_credentials' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'accept: application/json' \
-d '{}' | jq

Пример вывода токена:

-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyaWQiOiI4NTFmZjNjYWVhZTI1MzUzNWJkODgxY2U1NGFkZjVjMCIsImlhdCI6MTc3OTQzNjgxOCwiZXhwIjoxNzc5NDM3NDE4LCJqdGkiOiI0YzUxMzE4Yy0wOTZmLTQ1NGMtYWU0Ny04Yzk4N2RkYmY2ZGIifQ.stfKijottIovT15t-Gwv9ucrFlWgoRtwEtapaUcwg7g'

Примечание

Все методы API должны вызываться с полученым токеном.

  1. Проверить список узлов командой:

curl -X 'GET' \
    'http://IP/v2/nodes' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer token' | jq

Примечание

При первом запросе в выводе будет пусто, т.к. еще не создано узлов.

  1. Добавить новый узел (в данном примере типа Combined):

curl --request POST \
--url http://IP/v2/nodes \
-H 'Authorization: Bearer token' \
--header 'Content-Type: application/json' \
--data '
{
"name": "trok-combined",
"net_interfaces": [
{
  "address": "IP",
  "is_active": true,
  "name": "default-worker",
  "satellite_encryption_type": "PLAIN",
  "satellite_port": 50002
}
],
"type": "Combined"
}
' | jq

где <Имя> — имя узла, <Порт> — порт узла;

  1. Согласно с подготовленными хранилищами добавить пулы хранения данных:

  1. Проверить список узлов:

curl -X 'GET' \
    'http://IP/v2/nodes' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer token' | jq
  1. узнать UUID нужного узла:

curl -X 'POST' \
'http://IP/v2/nodes/UUID_NODE/storage-pools' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer token' \
--data '
{
"props": {
"StorDriver/StorPoolName": "storage_brest_api_1"
},
"provider_kind": "LVM",
"storage_pool_name": "storage_brest_api_1"
}
' | jq
  1. указазь имя и тип подготовленного тома на машине:

curl --request GET \
--url http://IP/v1/nodes/UUID_node/storage-pools \
-H 'Authorization: Bearer token' | jq
  1. Добавить шаблон ресурсов:

  1. проверить список шаблонов (он должен быть пуст);

curl --request GET \
 --url http://IP/v2/resource-definitions \
 -H 'Authorization: Bearer token' | jq
  1. узнать UUID нужной группы (в данном примере используется группа ресурсов по умолчанию);

curl --request GET \
    --url http://IP/v2/resource-groups \
    -H 'Authorization: Bearer token' | jq
  1. добавить шаблон ресурсов (необходимо указать имя и UUID группы ресурсов).

curl --request POST \
    --url http://IP/v2/resource-definitions \
    --header 'Content-Type: application/json' \
    -H 'Authorization: Bearer token' \
     --data '
{
    "resource_definition": {
    "name": "name",
    "resource_group_uuid": "uuid"
}
}
' | jq

Примечание

Имя и UUID созданных шаблонов понадобятся для добавления шаблонов томов.

  1. Добавить шаблон томов (необходимы: UUID шаблона ресурса, имя шаблона ресурса и рабмер тома):

curl --request POST \
    --url http://IP/v2/resource-definitions/resource_definition_uuid/volume-definitions \
    --header 'Content-Type: application/json' \
    -H 'Authorization: Bearer token' \
    --data '
{
    "volume_definition": {
    "resource_definition_name": "resource_definition_name",
    "resource_definition_uuid": "resource_definition_uuid",
    "size_kib": 75000000
                        }
}
' | jq


curl --request GET \
    --url http://IP/v2/volume-definitions \
    -H 'Authorization: Bearer token' | jq
  1. Добавить ресурсы (необходимы: имя и UUID узла, имя и UUID пула хранения, UUID шаблона ресурсов):

curl --request GET \
    --url http://IP/v2/volume-definitions \
    -H 'Authorization: Bearer token' | jq


curl --request GET \
     --url http://IP/v1/nodes/node_uuid/storage-pools \
    -H 'Authorization: Bearer token' | jq


curl --request POST \
    --url http://IP/v2/resource-definitions/resource_definition_uuid/resources/node_uuid \
    --header 'Content-Type: application/json' \
    -H 'Authorization: Bearer token' \
    --data '
{
    "resource": {
  "name": "name_resource",
 "node_name": "node_name",
 "props": {
    "StorPoolId": "storage_pool_uuid"
  },
"volumes": [
  {
    "storage_pool_name": "storage_pool_name",
    "storage_pool_uuid": "storage_pool_uuid"
  }
    ]
}
}
' | jq
  1. Проверить список на доступность:

curl --request GET \
    --url http://IP/v2/view/resources \
    -H 'Authorization: Bearer token' | jq
  1. Настроить конфигурационный файл ``DRBD Reactor``(можно повторить настройку из раздела ручной настройки):

sudo nano /etc/drbd-reactor.d/iscsi-trokcombine.toml

[[promoter]]
[promoter.resources]
[promoter.resources.def-storage-brest-api-1]
on-drbd-demote-failure = "reboot-immediate"
runner = "systemd"
start = [
"ocf:heartbeat:IPaddr2 service_ip0 cidr_netmask=24 ip=10.177.126.230",
"ocf:heartbeat:iSCSITarget target allowed_initiators='' incoming_password=12345678 incoming_username=astra iqn=iqn.2025-12.ru.astra:def-storage-brest-api-1 portals=10.177.126.230:3260",
"ocf:heartbeat:iSCSILogicalUnit lu1 lun=1 path=/dev/drbd/by-res/def-storage-brest-api-1/0 product_id='TROK iSCSI' scsi_sn=7509fab1 target_iqn=iqn.2025-12.ru.astra:def-storage-brest-api-1"
]
stop-services-on-exit = true
target-as = "Requires"

sudo nano /etc/drbd-reactor.d/iscsi-trokcombine2.toml

[[promoter]]
[promoter.resources]
[promoter.resources.def-storage-brest-api-2]
on-drbd-demote-failure = "reboot-immediate"
runner = "systemd"
start = [
"ocf:heartbeat:IPaddr2 service_ip0 cidr_netmask=24 ip=10.177.126.231",
"ocf:heartbeat:iSCSITarget target allowed_initiators='' incoming_password=12345678 incoming_username=astra iqn=iqn.2025-12.ru.astra:def-storage-brest-api-2 portals=10.177.126.231:3260",
"ocf:heartbeat:iSCSILogicalUnit lu1 lun=1 path=/dev/drbd/by-res/def-storage-brest-api-2/0 product_id='TROK iSCSI' scsi_sn=7509fab2 target_iqn=iqn.2025-12.ru.astra:def-storage-brest-api-2"
]
stop-services-on-exit = true
target-as = "Requires"
  1. Настроить подключение iSCSI на узлах ПК СВ.

  2. Добавить хранилище BREST_LVM в ПК СВ.