nav-img
Evolution

Конфигурация ALUA

Asymmetric Logical Unit Access (ALUA) — протокол, определяющий механизм ассиметричного доступа к логическим устройствам хранения в multipath конфигурациях.

Схема работы в режиме multipath

Описанный в предыдущем разделе процесс создания iSCSI target и LUN не работает в режиме multipath. Для отказоустойчивости настройте несколько target для одного и того же LUN/тома через ALUA. Схема подключения инициатора к storage тому через ALUA приведена ниже.

Схема подключения инициатора к storage тому через ALUA

Инициатор подключается к порту определенной TPG (Target Port Group) на каждом хосте.

TPG имеет следующие состояния:

  • Active/Optimized (AO);

  • Standby.

Подключение к TPG с состоянием AO является активным. Все I/O-запросы идут через этот путь. На примере выше путь через Host=A,TPG_1 является активным.

Хранение состояния TPG

Состояние каждой TPG хранится во внутреннем хранилище пар типа «ключ-значение» (KV-хранилище) или во внешней по отношению к кластеру SDS сущности с использованием target agent. В качестве KV-хранилища используется mds. По умолчанию tcmud отправляет запросы напрямую в хранилище. Target agent — это процесс, запущенный на одной машине с tcmud. Он предоставляет REST API, за счет которого tcmud читает и обновляет состояния TPG во внешней по отношению к SDS сущности. Например, в СУБД.

Процесс конфигурации target agent описан в руководстве к конкретной реализации.

Для использования уже настроенного target agent:

  1. Добавьте в конфигурационный файл /etc/storage/tcmud/tcmud.conf:

    target-agent = 127.0.0.1:8080
    target-agent-tout = 10
    • Параметр target-agent — это IP-адрес или имя хоста и порт, на котором доступен REST API target agent. Например, localhost или 127.0.0.1.

    • Параметр target-agent-tout — это тайм-аут для запросов в REST API target agent, задается в секундах.

  2. Перезапустите tcmud:

    systemctl restart storage-tcmud.service

Конфигурация ALUA для режима multipath

Для конфигурации ALUA для двух хостов выполните команды:

storage volume make --size 100GB --encoding "1+2"
Volume 0xd85e1925b671ddc1 added
# Host A:
host:a$ sudo storage-iscsi target-make --wwn iqn.2022-01.org.storage:target1
host:a$ storage-iscsi lun-attach --wwn iqn.2022-01.org.storage:target1 --lun 1 --volume 0xd85e1925b671ddc1 --tpg 1
# Host B:
host:b$ sudo storage-iscsi target-make --wwn iqn.2022-01.org.storage:target2
host:b$ storage-iscsi lun-attach --wwn iqn.2022-01.org.storage:target2 --lun 1 --volume 0xd85e1925b671ddc1 --tpg 2

На разных хостах экспортируйте том под одним LUN ID, но через разные TPG.

Примечание

TPG с ID=0 зарезервировано для default_tg_pt_gp и используется для non-ALUA режима.