В этой публикации я покажу, как выполняется подключение 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: 11 комментариев
Мое почтение
Это лучшая статья по теме
Рад, что смог помочь!
По аналогии был подключен диск. Но в один момент он стал не активным, можете подсказать как восстановить его работу?
А где отображается статус о том, что диск отключен? Можете немного более подробную информацию из журналов или консоли управления привести?
Роман, добрый день! А как быть когда сервера уже в кластере? У меня в выводе lsblk только один диск (изначально после подключения хранилища по iSCSI). попробовал на одной ноде включить multipath, но результатов это не принесло. Спасибо.
Добрый день!
А как быть когда сервера уже в кластере?
// Тут бы для полногоо понимания нужно именно схему вашего подключения представлять. Наличие или отсутствие кластера не должно привносить каких-то отличий.
У меня в выводе lsblk только один диск (изначально после подключения хранилища по iSCSI). попробовал на одной ноде включить multipath, но результатов это не принесло
// Если до сервера iSCSI у вас всего один путь по вашей сетевой топологии, то и устройство у вас будет отображаться в одном экземпляре.
Успел покурить английские форумы, действительно с кластером проблем не должно быть. В итоге у меня сейчас диск в multipath выдает ошибку : vpd pg80 overflow, 129/128 bytes required (переполнение буфера) связано это скорее всего с тем что оборудование устарело(NAS NetGear 3100, 2007г.), протокол iscsi обновлялся, действующая редакция от 2014 года. Спасибо за статью, тема очень мало освещена в российском сегменте интернета.
Никак в толк не могу взять, почему при одном подключении показывает 2 диска? Портал указан один, каким образом система узнала о втором портале (пути)?
В детали не вдавался но скорее всего портал анонсирует доступные адреса по которым он доступне. Соответственно, сервер Proxmox может найти альтернативные пути доступа до iSCSI таргета.
На днях только натолкнулся на Вашу статью. Бился 1.5 года назад над этой задачей.
Кластер на PVE 7, схд на qsan, 2 контроллера, оба подключены – если прописать только один iscsi-инициатор, то видит только одно блочное устройство. Может быть, все таки необходимо прописать соединение со вторым порталом? Точно ничего не упустили? На форуме была рекомендация собирать блочное через multipath на каждой ноде, а lvm раскатывать уже на кластере. Но это решение очень нехорошо выглядело на практике
Могу судить и опираться только на свой опыт. На двухконтроллерной СХД я не тестировал этот метод, но на импровизированном iSCSI Windows сервере уже 2 года такая конфигурация работает. Каких-то побочных эффектов замечено не было.