Перейти к основному содержимому

Настройка iSCSI, multipathd и lvm в EL9

·396 слов·2 минут· ·
Linux Iscsi Multipathd Lvm Bash VMware Vcd
Сергей Бурцев
Автор
Сергей Бурцев
Оглавление

Устанавливаем пакеты
#

dnf install -y iscsi-initiator-utils device-mapper-multipath

Уточняем имя инициатора (IQN)
#

cat /etc/iscsi/initiatorname.iscsi

или записываем в файл собственное вида:

InitiatorName=iqn.2024-08.com.itglobal.bareos-aio-kz:bareos-sd01

Генерируем дефолтный конфиг для multipath
#

/sbin/mpathconf --enable

Вносим параметры авторизации в файл конфигурации
#

vi /etc/iscsi/iscsid.conf

Пояснения:

Username обычно совпадает с InitiatorName хоста.

Приписка _in обозначает initiator.

Без приписки _in - target или outgoing.

node.session.auth.authmethod = CHAP
node.session.auth.chap_algs = SHA3-256,SHA256,SHA1,MD5
node.session.auth.username = iqn.1994-05.com.redhat:123123123
node.session.auth.password = target_pass
node.session.auth.username_in = iqn.1994-05.com.redhat:123123123
node.session.auth.password_in = initiator_pass
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = iqn.1994-05.com.redhat:123123123
discovery.sendtargets.auth.password = target_pass
discovery.sendtargets.auth.username_in = iqn.1994-05.com.redhat:123123123
discovery.sendtargets.auth.password_in = initiator_pass

Включаем сервисы и проверяем логи
#

systemctl enable --now iscsid && systemctl enable --now multipathd
systemctl status iscsid
systemctl status multipathd

Обнаруживаем точки подключения к хранилищу
#

iscsiadm -m discovery -t sendtargets -p <IP address>

Подключаемся к обнаруженным узлам
#

iscsiadm -m node --login

(или подключаемся вручную к каждому узлу хранилища из обнаруженным ранее)

iscsiadm -m node --targetname 'iqn.2002-09.com.lenovo:thinksystem.6d039ea0002cf17c00000000616ead3f' --portal '10.32.45.206' --login
iscsiadm -m node --targetname 'iqn.2002-09.com.lenovo:thinksystem.6d039ea0002cf17c00000000616ead3f' --portal '10.32.45.207' --login
iscsiadm -m node --targetname 'iqn.2002-09.com.lenovo:thinksystem.6d039ea0002cf17c00000000616ead3f' --portal '10.32.45.208' --login
iscsiadm -m node --targetname 'iqn.2002-09.com.lenovo:thinksystem.6d039ea0002cf17c00000000616ead3f' --portal '10.32.45.209' --login

Проверяем, что выданный на хранилище диск доступен:
#

multipath -ll

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

mpatha (36d039ea0000016710000027f66b5e2ef) dm-2 NETAPP,INF-01-00
size=2.0T features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 36:0:0:1 sde 8:64 active ready running
| |- 35:0:0:1 sdd 8:48 active ready running
|-+- policy='service-time 0' prio=10 status=enabled
| |- 34:0:0:1 sdc 8:32 active ready running
| |- 33:0:0:1 sdb 8:16 active ready running

Полученное блочное устройство будет доступно по пути /dev/mapper/mpath[a..n]

Размечаем получившийся диск средствами lvm2
#

pvcreate /dev/mapper/mpatha
vgcreate data_vg /dev/mapper/mpatha
lvcreate -L 1GiB --name data_lv data_vg /dev/mapper/mpatha
lvextend /dev/data_vg/data_lv -l +100%FREE

Дополнительно
#

Параметры монтирования для /etc/fstab:

/dev/data_vg/data_lv  /data_lv xfs     _netdev,defaults  0 0

При наличии в логах сообщений от multipathd вида:

Feb 18 12:49:33 <...> multipathd[32939]: sda: add missing path  
Feb 18 12:49:33 <...> multipathd[32939]: sda: failed to get udev uid: Invalid argument  
Feb 18 12:49:33 <...> multipathd[32939]: sda: failed to get sysfs uid: Invalid argument  
Feb 18 12:49:33 <...> multipathd[32939]: sda: failed to get sgio uid: No such file or directory

необходимо добавить в /etc/multipath.conf в блок blacklist:

blacklist {  
    device {  
         vendor "VMware"  
         product "Virtual disk"  
    }  
}

Увеличить размера тома после увеличения размера LUN можно так:

lsblk
for i in b c d e; do echo 1 > /sys/block/sd$i/device/rescan; done
multipathd resize map mpatha
pvresize /dev/mapper/mpatha
lvextend /dev/repo_low_hdd_vg/low_hdd01 -l +100%FREE
xfs_growfs /dev/repo_low_hdd_vg/low_hdd01