Подключение iSCSI диска в Proxmox
Подключение 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 завершается успешно: