Подключение iSCSI диска в Proxmox

В этой публикации я покажу, как выполняется подключение iSCSI диска в Proxmox. Потому что в некоторых сценариях использования iSCSI диска необходимо выполнить дополнительные настройки, которые могут быть далеко не очевидны на первый взгляд. Если вы используете подключенный iSCSI диски напрямую для размещения виртуальных машин, то проблем даже при стандартных настройках подключения у вас возникнуть не должно. Но если вы, например, попытаетесь настроить LVM, то могут возникнуть некоторые сложности (если у вас есть более одного пути до сервера iSCSI). По крайней мере при использовании настроек по умолчанию. Подробности я приведу ниже.

Описание окружения

Общая схема приведена ниже.

В качестве iSCSI таргета выступает Windows Server 2019, у которого собран RAID5 из трех дисков. В моей тестовой среде RAID5 программный, но при использовании аппаратного RAID5 алгоритм подключения iSCSI диска не изменится.

Версия Proxmox – 7.3-6.

Подключение iSCSI диска

Самый первый шаг – это подключение с сервера Proxmox к порталу iSCSI. В моем случае это сервер с Windows Server. Если вы планировали использовать iSCSI диск напрямую для размещения виртуальных машин, то это единственный шаг, который вам нужно выполнить (при условии, что вы указали опцию “Use LUNs directly”). Подробности ниже.

Если вам нужно узнать IQN iSCSI инициатора Proxmox для настройки ограничения на iSCSI таргете, то выполните вот эту команду на сервере Proxmox:

cat /etc/iscsi/initiatorname.iscsi | grep InitiatorName=
InitiatorName=iqn.1993-08.org.debian:01:4ec2deb75a9

Итого, чтобы выполнить подключение iSCSI диска в Proxmox нужно сделать следующее:

1. Перейти в веб интерфейс администрирования Proxmox.

2. Перейти в раздел “Datacenter – Storage”.

3. Нажмите кнопку для запуска настройки подключения к iSCSI таргету.

4. Укажите параметры подключения к порталу iSCSI.

В таблице ниже я привел краткое описание основных параметров подключения.

ПараметрОписание
IDИмя подключения. Именно это имя будет отображаться для настроенного подключения в веб интерфейсе администрирования Proxmox
PortalАдрес сервера (таргета) iSCSI
TargetИмя таргета. Генерируется автоматически, если сервер Proxmox смог успешно подключиться к порталу iSCSI. Если на сервере iSCSI доступно несколько таргетов для Proxmox, то вы увидите список из нескольких позиций
NodesДля каких узлов Proxmox выполнить подключение диска. Узел в моем случае только один
EnableУказывает включено ли подключение или нет
Use LUNs directlyЕсли эта опция установлена, то диски виртуальных машин будут размещаться непосредственно на iSCSI. Однако, вы не сможете настроить, например, LVM в такой конфигурации. Я не буду указывать эту опцию.

5. Нажмите кнопку “Add”.

6. После успешного подключения iSCSI диск должен отобразиться в списки всех доступных хранилищ.

Если вы не планировали использовать LVM и будите размещать ВМ непосредственно на iSCSI диске (указали опцию “Use LUNs directly”), то для вас настройка подключения завершена. Если вы планировали настройку LVM на подключенном iSCSI диске и до сервера iSCSI у вас есть более одного пути, то нужно выполнить настройку multipath.

Настройка multipath

Если вы прямо сейчас попробуете выполнить настройку LVM на подключенном iSCSI диске, то вы можете получить примерно такую ошибку:

create storage failed: vgcreate vg01 /dev/disk/by-id/scsi-360003ff44dc75adc839073953a451b73 error: Cannot use device /dev/sdc with duplicates. (500)

Почему? Потому что до сервера iSCSI вы можете добраться более, чем по одному пути – по адресу 10.10.9.1 и 10.10.10.46. Если у вас всего один путь до сервера iSCSI, то, вероятно, вы такой ошибки не увидите.

Например, посмотрим какие у нас есть блочные устройства:

lsblk
root@px01:~# lsblk
NAME   MAJ:MIN RM   SIZE RO T YPE MOUNTPOINT
sda      8:0    0   600G  0 disk 
├─sda1   8:1    0  1007K  0 part 
├─sda2   8:2    0   512M  0 part 
└─sda3   8:3    0 599.5G  0 part 
sdb      8:16   0   600G  0 disk 
├─sdb1   8:17   0  1007K  0 part 
├─sdb2   8:18   0   512M  0 part 
└─sdb3   8:19   0 599.5G  0 part 
sdc      8:32   0   200G  0 disk 
sdd      8:48   0   200G  0 disk 
sr0     11:0    1 994.2M  0 rom  

Хоть я и подключил только один iSCSI диск на 200 ГБ, но при просмотре видно, что диска отображается два. Так работает multipath. И эту ситуацию нужно корректно обработать.

Теперь я выполню настройку multipath, основываясь на руководстве от вендора:

1. Сначала изменим параметры настройки подключений в файле /etc/iscsi/iscsid.conf:

nano /etc/iscsi/iscsid.conf

Укажем следующие параметры:

node.startup = automatic
node.session.timeo.replacement_timeout = 15

2. Установим необходимы пакеты для multipath:

apt-get update
apt-get install multipath-tools

3. Определим wwid для наших блочных устройств (/dev/sdc и /dev/sdd) – он должен совпадать:

/lib/udev/scsi_id -g -u -d /dev/sdc
/lib/udev/scsi_id -g -u -d /dev/sdd
root@px01:~# /lib/udev/scsi_id -g -u -d /dev/sdc
360003ff44dc75adc839073953a451b73
root@px01:~# /lib/udev/scsi_id -g -u -d /dev/sdd
360003ff44dc75adc839073953a451b73

4. Создадим конфигурационный файл для multipath:

touch /etc/multipath.conf

5. В конфигурационном файле /etc/multipath.conf добавим наши диски:

blacklist {
        wwid .*
}

blacklist_exceptions {
        wwid "360003ff44dc75adc839073953a451b73"
}

т.е. multipath мы запрещаем для всех дисков, кроме дисков с указанным в секции blacklist_exceptions wwid.

6. Также в конфигурационном файле /etc/multipath.conf добавим секцию с указанием параметров по умолчанию для подключений:

defaults {
        polling_interval        2
        path_selector           "round-robin 0"
        path_grouping_policy    multibus
        uid_attribute           ID_SERIAL
        rr_min_io               100
        failback                immediate
        no_path_retry           queue
        user_friendly_names     yes
}

7. Затем добавим наш wwid в файл /etc/multipath/wwids:

multipath -a 360003ff44dc75adc839073953a451b73
root@px01:~# multipath -a 360003ff44dc75adc839073953a451b73
wwid '360003ff44dc75adc839073953a451b73' added
root@px01:~# 

8. В заключении перезапускаем службу multipath-tools:

systemctl restart multipath-tools.service

Проверка подключения диска

Вот теперь мы можем попробовать выполнить настройку LVM, но предварительно проверим, что наша конфигурация multipath работает корректно:

multipath -ll
root@px01:~# multipath -ll
mpatha (360003ff44dc75adc839073953a451b73) dm-0 MSFT,Virtual HD
size=200G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 33:0:0:0 sdc 8:32 active ready running
  `- 34:0:0:0 sdd 8:48 active ready running
root@px01:~# 

И вот только теперь можно попробовать выполнить повторную настройку LVM.

После настройку multipath настройка LVM завершается успешно:

Я сам полгода назад столкнулся с такой особенность, но все времени не было написать краткую шпаргалку. И тут на днях готовил стенд с Proxmox и iSCSI и решил сразу подготовить материал по этой тематике, чтобы в последующем уже по готовой статье выполнять аналогичные настройки.

Подключение iSCSI диска в Proxmox: 7 комментариев

      1. По аналогии был подключен диск. Но в один момент он стал не активным, можете подсказать как восстановить его работу?

        1. А где отображается статус о том, что диск отключен? Можете немного более подробную информацию из журналов или консоли управления привести?

  1. Роман, добрый день! А как быть когда сервера уже в кластере? У меня в выводе lsblk только один диск (изначально после подключения хранилища по iSCSI). попробовал на одной ноде включить multipath, но результатов это не принесло. Спасибо.

    1. Добрый день!
      А как быть когда сервера уже в кластере?
      // Тут бы для полногоо понимания нужно именно схему вашего подключения представлять. Наличие или отсутствие кластера не должно привносить каких-то отличий.

      У меня в выводе lsblk только один диск (изначально после подключения хранилища по iSCSI). попробовал на одной ноде включить multipath, но результатов это не принесло
      // Если до сервера iSCSI у вас всего один путь по вашей сетевой топологии, то и устройство у вас будет отображаться в одном экземпляре.

      1. Успел покурить английские форумы, действительно с кластером проблем не должно быть. В итоге у меня сейчас диск в multipath выдает ошибку : vpd pg80 overflow, 129/128 bytes required (переполнение буфера) связано это скорее всего с тем что оборудование устарело(NAS NetGear 3100, 2007г.), протокол iscsi обновлялся, действующая редакция от 2014 года. Спасибо за статью, тема очень мало освещена в российском сегменте интернета.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *