LINUX.ORG.RU
решено ФорумAdmin

Proxmox 6 multipath проблема с загрузкой и не работаю сеть

 , , ,


0

2

Здравствуйте. Сразу прошу сильно не сердиться и не пинать. С проблемой бьюсь уже больше недели, гуглил, изучал, читал… своей головы и опыта не хватает, прошу помощи сообщества. Имею систему хранения данных Infortrend EonStor DS 1024 с двумя контроллерами на борту. Система хранения подключается 2 кабелями к SAS 9300-8e для организации отказоустойчивости. Произвожу установку Proxmox 6.2, настраиваю multipath, создаю LVM Physical volume перезагружаю систему и после этого Proxmox на 2 минуту зависает, сообщает о проблеме, после чего он не доступен по сети. При загрузке ругается на systemd-udev-settle. Если подключиться к серверу и руками стартовать systemd-udev-settle.service и ifupdown-pre.service, то они стартуют без каких либо проблем. Проблема с сетью решается ifup vmbr0, но это всё до перезагрузки. Если удалить созданный LVM Physical volume, то проблема с загрузкой уходит, но это не решение так как нужен дисковый массив. Обновил версию прошивки у СХД и SAS контроллера. Вот последовательность действий который я выполняю: Так всё выглядит на свежеустановленном Proxmox:

root@pve02:~# lsblk

NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 14.8G  0 disk
├─sda1               8:1    0 1007K  0 part
├─sda2               8:2    0  512M  0 part /boot/efi
└─sda3               8:3    0 14.3G  0 part
  ├─pve-swap       253:0    0  1.8G  0 lvm  [SWAP]
  ├─pve-root       253:1    0  3.5G  0 lvm  /
  ├─pve-data_tmeta 253:2    0    1G  0 lvm
  │ └─pve-data     253:4    0  5.3G  0 lvm
  └─pve-data_tdata 253:3    0  5.3G  0 lvm
    └─pve-data     253:4    0  5.3G  0 lvm

Презентовал разделы серверу, так как он имеет мульти подключение, то система видит 2 диска sdb и sdc: root@pve02:~# lsblk

NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                  8:0    0 14.8G  0 disk
├─sda1               8:1    0 1007K  0 part
├─sda2               8:2    0  512M  0 part /boot/efi
└─sda3               8:3    0 14.3G  0 part
  ├─pve-swap       253:0    0  1.8G  0 lvm  [SWAP]
  ├─pve-root       253:1    0  3.5G  0 lvm  /
  ├─pve-data_tmeta 253:2    0    1G  0 lvm
  │ └─pve-data     253:4    0  5.3G  0 lvm
  └─pve-data_tdata 253:3    0  5.3G  0 lvm
    └─pve-data     253:4    0  5.3G  0 lvm
sdb                  8:16   0  100G  0 disk
sdc                  8:32   0  100G  0 disk

root@pve02:~# apt-get install multipath-tools

root@pve02:~# /lib/udev/scsi_id -g -u -d /dev/sdb

3600d0231000979157a4816613a99e509

root@pve02:~# multipath -ll

ничего не выводит

root@pve02:~# multipath -a 3600d0231000979157a4816613a99e509

root@pve02:~# systemctl restart multipath-tools.service

root@pve02:~# multipath -ll

3600d0231000979157a4816613a99e509 dm-5 IFT,DS 1000 Series
size=100G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| `- 0:0:0:0 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  `- 0:0:1:0 sdc 8:32 active ready running

root@pve02:~# lsblk

NAME                                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                                   8:0    0 14.8G  0 disk
├─sda1                                8:1    0 1007K  0 part
├─sda2                                8:2    0  512M  0 part  /boot/efi
└─sda3                                8:3    0 14.3G  0 part
  ├─pve-swap                        253:0    0  1.8G  0 lvm   [SWAP]
  ├─pve-root                        253:1    0  3.5G  0 lvm   /
  ├─pve-data_tmeta                  253:2    0    1G  0 lvm
  │ └─pve-data                      253:4    0  5.3G  0 lvm
  └─pve-data_tdata                  253:3    0  5.3G  0 lvm
    └─pve-data                      253:4    0  5.3G  0 lvm
sdb                                   8:16   0  100G  0 disk
└─3600d0231000979157a4816613a99e509 253:5    0  100G  0 mpath
sdc                                   8:32   0  100G  0 disk
└─3600d0231000979157a4816613a99e509 253:5    0  100G  0 mpath

root@pve02:~# dmsetup ls –tree

pve-swap (253:0)
 └─ (8:3)
pve-root (253:1)
 └─ (8:3)
pve-data (253:4)
 ├─pve-data_tdata (253:3)
 │  └─ (8:3)
 └─pve-data_tmeta (253:2)
    └─ (8:3)
3600d0231000979157a4816613a99e509 (253:5)
 ├─ (8:32)
 └─ (8:16)

root@pve02:~# multipath -v3

Apr 28 17:04:17 | set open fds limit to 1048576/1048576
Apr 28 17:04:17 | loading //lib/multipath/libchecktur.so checker
Apr 28 17:04:17 | checker tur: message table size = 3
Apr 28 17:04:17 | loading //lib/multipath/libprioconst.so prioritizer
Apr 28 17:04:17 | foreign library "nvme" loaded successfully
Apr 28 17:04:17 | sda: udev property ID_WWN whitelisted
Apr 28 17:04:17 | sda: mask = 0x1f
Apr 28 17:04:17 | sda: dev_t = 8:0
Apr 28 17:04:17 | sda: size = 30932992
Apr 28 17:04:17 | sda: vendor = ATA
Apr 28 17:04:17 | sda: product = SuperMicro SSD
Apr 28 17:04:17 | sda: rev = 0R
Apr 28 17:04:17 | sda: h:b:t:l = 9:0:0:0
Apr 28 17:04:17 | sda: tgt_node_name = ata-9.00
Apr 28 17:04:17 | sda: path state = running
Apr 28 17:04:17 | sda: 1925 cyl, 255 heads, 63 sectors/track, start at 0
Apr 28 17:04:17 | sda: serial = SMC0515D95016A906072
Apr 28 17:04:17 | sda: get_state
Apr 28 17:04:17 | sda: detect_checker = yes (setting: multipath internal)
Apr 28 17:04:17 | failed to issue vpd inquiry for pgc9
Apr 28 17:04:17 | sda: path_checker = tur (setting: multipath internal)
Apr 28 17:04:17 | sda: checker timeout = 30 s (setting: kernel sysfs)
Apr 28 17:04:17 | sda: tur state = up
Apr 28 17:04:17 | sda: uid_attribute = ID_SERIAL (setting: multipath internal)
Apr 28 17:04:17 | sda: uid = SuperMicro_SSD_SMC0515D95016A906072 (udev)
Apr 28 17:04:17 | sda: detect_prio = yes (setting: multipath internal)
Apr 28 17:04:17 | sda: prio = const (setting: multipath internal)
Apr 28 17:04:17 | sda: prio args = "" (setting: multipath internal)
Apr 28 17:04:17 | sda: const prio = 1
Apr 28 17:04:17 | sdb: udev property ID_WWN whitelisted
Apr 28 17:04:17 | sdb: mask = 0x1f
Apr 28 17:04:17 | sdb: dev_t = 8:16
Apr 28 17:04:17 | sdb: size = 209715200
Apr 28 17:04:17 | sdb: vendor = IFT
Apr 28 17:04:17 | sdb: product = DS 1000 Series
Apr 28 17:04:17 | sdb: rev = 661W
Apr 28 17:04:17 | sdb: h:b:t:l = 0:0:0:0
Apr 28 17:04:17 | sdb: tgt_node_name = 0x500d023001979150
Apr 28 17:04:17 | sdb: path state = running
Apr 28 17:04:17 | sdb: 13054 cyl, 255 heads, 63 sectors/track, start at 0
Apr 28 17:04:17 | sdb: serial = 0979157A4816613A99E509
Apr 28 17:04:17 | sdb: get_state
Apr 28 17:04:17 | sdb: detect_checker = yes (setting: multipath internal)
Apr 28 17:04:17 | failed to issue vpd inquiry for pgc9
Apr 28 17:04:17 | sdb: path_checker = tur (setting: storage device autodetected)
Apr 28 17:04:17 | sdb: checker timeout = 30 s (setting: kernel sysfs)
Apr 28 17:04:17 | sdb: tur state = up
Apr 28 17:04:17 | sdb: uid_attribute = ID_SERIAL (setting: multipath internal)
Apr 28 17:04:17 | sdb: uid = 3600d0231000979157a4816613a99e509 (udev)
Apr 28 17:04:17 | sdb: detect_prio = yes (setting: multipath internal)
Apr 28 17:04:17 | failed to issue vpd inquiry for pgc9
Apr 28 17:04:17 | loading //lib/multipath/libprioalua.so prioritizer
Apr 28 17:04:17 | sdb: prio = alua (setting: storage device autodetected)
Apr 28 17:04:17 | sdb: prio args = "" (setting: storage device autodetected)
Apr 28 17:04:17 | sdb: reported target port group is 1
Apr 28 17:04:17 | sdb: aas = 80 [active/optimized] [preferred]
Apr 28 17:04:17 | sdb: alua prio = 50
Apr 28 17:04:17 | sdc: udev property ID_WWN whitelisted
Apr 28 17:04:17 | sdc: mask = 0x1f
Apr 28 17:04:17 | sdc: dev_t = 8:32
Apr 28 17:04:17 | sdc: size = 209715200
Apr 28 17:04:17 | sdc: vendor = IFT
Apr 28 17:04:17 | sdc: product = DS 1000 Series
Apr 28 17:04:17 | sdc: rev = 661W
Apr 28 17:04:17 | sdc: h:b:t:l = 0:0:1:0
Apr 28 17:04:17 | sdc: tgt_node_name = 0x500d023101979150
Apr 28 17:04:17 | sdc: path state = running
Apr 28 17:04:17 | sdc: 13054 cyl, 255 heads, 63 sectors/track, start at 0
Apr 28 17:04:17 | sdc: serial = 0979157A4816613A99E509
Apr 28 17:04:17 | sdc: get_state
Apr 28 17:04:17 | sdc: detect_checker = yes (setting: multipath internal)
Apr 28 17:04:17 | failed to issue vpd inquiry for pgc9
Apr 28 17:04:17 | sdc: path_checker = tur (setting: storage device autodetected)
Apr 28 17:04:17 | sdc: checker timeout = 30 s (setting: kernel sysfs)
Apr 28 17:04:17 | sdc: tur state = up
Apr 28 17:04:17 | sdc: uid_attribute = ID_SERIAL (setting: multipath internal)
Apr 28 17:04:17 | sdc: uid = 3600d0231000979157a4816613a99e509 (udev)
Apr 28 17:04:17 | sdc: detect_prio = yes (setting: multipath internal)
Apr 28 17:04:17 | failed to issue vpd inquiry for pgc9
Apr 28 17:04:17 | sdc: prio = alua (setting: storage device autodetected)
Apr 28 17:04:17 | sdc: prio args = "" (setting: storage device autodetected)
Apr 28 17:04:17 | sdc: reported target port group is 2
Apr 28 17:04:17 | sdc: aas = 01 [active/non-optimized]
Apr 28 17:04:17 | sdc: alua prio = 10
Apr 28 17:04:17 | loop0: blacklisted, udev property missing
Apr 28 17:04:17 | loop1: blacklisted, udev property missing
Apr 28 17:04:17 | loop2: blacklisted, udev property missing
Apr 28 17:04:17 | loop3: blacklisted, udev property missing
Apr 28 17:04:17 | loop4: blacklisted, udev property missing
Apr 28 17:04:17 | loop5: blacklisted, udev property missing
Apr 28 17:04:17 | loop6: blacklisted, udev property missing
Apr 28 17:04:17 | loop7: blacklisted, udev property missing
Apr 28 17:04:17 | dm-0: blacklisted, udev property missing
Apr 28 17:04:17 | dm-1: blacklisted, udev property missing
Apr 28 17:04:17 | dm-2: blacklisted, udev property missing
Apr 28 17:04:17 | dm-3: blacklisted, udev property missing
Apr 28 17:04:17 | dm-4: blacklisted, udev property missing
Apr 28 17:04:17 | dm-5: blacklisted, udev property missing
===== paths list =====
uuid                                hcil    dev dev_t pri dm_st chk_st vend/pr
SuperMicro_SSD_SMC0515D95016A906072 9:0:0:0 sda 8:0   1   undef undef  ATA,Sup
3600d0231000979157a4816613a99e509   0:0:0:0 sdb 8:16  50  undef undef  IFT,DS
3600d0231000979157a4816613a99e509   0:0:1:0 sdc 8:32  10  undef undef  IFT,DS
Apr 28 17:04:17 | libdevmapper version 1.02.155 (2018-12-18)
Apr 28 17:04:17 | DM multipath kernel driver v1.13.0
Apr 28 17:04:17 | params = 1 queue_if_no_path 1 alua 2 1 service-time 0 1 2 8:16 1 1 service-t     ime 0 1 2 8:32 1 1
Apr 28 17:04:17 | status = 2 0 1 0 2 1 A 0 1 2 8:16 A 0 0 1 E 0 1 2 8:32 A 0 0 1
Apr 28 17:04:17 | 3600d0231000979157a4816613a99e509: disassemble map [1 queue_if_no_path 1 alu     a 2 1 service-time 0 1 2 8:16 1 1 service-time 0 1 2 8:32 1 1 ]
Apr 28 17:04:17 | 3600d0231000979157a4816613a99e509: disassemble status [2 0 1 0 2 1 A 0 1 2 8     :16 A 0 0 1 E 0 1 2 8:32 A 0 0 1 ]
Apr 28 17:04:17 | sda: udev property ID_WWN whitelisted
Apr 28 17:04:17 | wwid SuperMicro_SSD_SMC0515D95016A906072 not in wwids file, skipping sda
Apr 28 17:04:17 | sda: orphan path, only one path
Apr 28 17:04:17 | const prioritizer refcount 1
Apr 28 17:04:17 | sdb: udev property ID_WWN whitelisted
Apr 28 17:04:17 | sdc: udev property ID_WWN whitelisted
Apr 28 17:04:17 | alua prioritizer refcount 2
Apr 28 17:04:17 | alua prioritizer refcount 1
Apr 28 17:04:17 | unloading alua prioritizer
Apr 28 17:04:17 | unloading const prioritizer
Apr 28 17:04:17 | unloading tur checker

root@pve02:~# kpartx -a /dev/mapper/mpath0

root@pve02:~# fdisk /dev/mapper/mpath0

Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x79bd4973.

Command (m for help): g
Created a new GPT disklabel (GUID: 839BB069-F319-9B45-8FE9-51937BBAAC2D).

Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-209715166, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715166, default 209715166):

Created a new partition 1 of type 'Linux filesystem' and of size 100 GiB.

Command (m for help): t
Selected partition 1
Partition type (type L to list all types): 8e
Type of partition 1 is unchanged: Linux filesystem.

Command (m for help): wq
The partition table has been altered.
Failed to add partition 1 to system: Invalid argument

The kernel still uses the old partitions. The new table will be used at the next reboot.
Syncing disks.

На данном этапе перезагружаю сервер, убеждаюсь, что всё загружается без ошибок.

pvcreate /dev/mapper/mpath0-part1

  Physical volume "/dev/mapper/mpath0-part1" successfully created.

После выполнения этой команды сервер уже будет загружаться с ошибками. https://disk.yandex.ru/d/B8SS2HrlCEDfkA

Пробовал создавать файл multipath.conf и вносить в него настройки которые рекомендует производитель СХД (http://infostor.ru/img/pdf/RU_Note_ESDS_Multi-Pathing.pdf), но проблема остаётся:

devices {
	device {
		vendor	"IFT"
		product	"DS 1000 Series"
		path_grouping_policy	group_by_prio
		getuid_callout	"/lib/udev/scsi_id --whitelisted --device=/dev/%n"
		path_checker	readsector0
		path_selector	"round-robin 0"
		hardware_handler	"0"
		failback	15
		rr_weight	uniform
		no_path_retry	12
		prio	alua
	}
}

Пробовал добавить в /etc/lvm/lvm.conf следующую строку:

  filter = [ "a|/dev/mapper/|", "a|/dev/sda.*|", "r|.*|" ]  
#запись с global_filter закомментировал

После этого выполнил

update-initramfs -u

Проблема останется, но текст с ошибкой немного изменится - https://disk.yandex.ru/i/VIz8JyiPvd-KKQ

Данные pvereport - https://pastebin.com/bRiT74S3

Данные dmesg - https://pastebin.com/Kdc3LeR3

Данные journalctl - https://pastebin.com/7j9M9bN4

Буду признателен за любую информацию и помощь которая поможет решить мою проблему. За ранее большое спасибо за ответы.


Сейчас 6.3 актуальная версия, может быть на ней попробовать? Если обращаться в форум проксмокса, то они, я думаю, это первым посоветуют.

Harliff ★★★★★
()

Эх, все бы так вопросы задавали…

Harliff ★★★★★
()

[ 6.640749] ZFS: Loaded module v0.8.3-pve1, ZFS pool version 5000, ZFS filesystem version 5 [ 124.847173] alua: device handler registered

  1. zfs используется? Если нет, то попробуй заблеклистить драйвер.
  2. что такое ‘alua’? Его отключить можно?

Но вначале я бы обновился :)

Harliff ★★★★★
()
Последнее исправление: Harliff (всего исправлений: 2)
Ответ на: комментарий от Harliff

Большое спасибо @Harliff что откликнулись и уделили время чтобы помочь мне с решением проблемы. Пробовал версии 6.2, 6.3 и даже вчера вышедшую 6.4 - везде одинаковая ситуация.

  1. zfs используется? Если нет, то попробуй заблеклистить драйвер.

Видел в логах сообщение про zfs, но как его отключить не разобрался. Zfs на данном сервере пока не использую.

  1. что такое ‘alua’? Его отключить можно?

В интернете гуглится следующие. ALUA — Asymmetric Logical Unit Access. Протокол стандарта SCSI-2 и SCSI-3 предоставляющий доступ к данным через разные пути передачи, причем с разными видами доступа. Она также помогает автоматически переключиться на оптимизированные пути.

Видимо это как раз вариант который мне нужен.

Для решения проблемы пробовал добавить в grub rd.udev.event-timeout=600

Пробовал настроить запуск без этого сервиса systemctl disable systemd-udev-settle

Но всё это не принесло успеха. Загружаться сервер начинает без ошибок только после удаления добавленного lvm.

urfin
() автор топика

Попробуй не создавать раздел. Делай PV прямо поверх /dev/mapper/mpath0.

Также попробуй оставить в фильтре только /dev/mapper:

filter = [ "a|/dev/mapper/mpath.*|", "r|.*|" ]
bigbit ★★★★★
()
Ответ на: комментарий от bigbit

Попробуй не создавать раздел. Делай PV прямо поверх /dev/mapper/mpath0.

Кажется, что именно с этим была связана проблема. Подскажите на основание чего вы сделали такое предположение и как вообще это может влиять? Но в любом случае сейчас сервер наконец-то получил доступ к СХД и сеть не отваливается при загрузке.

urfin
() автор топика

Сори за офтоп, но после двух лет эксплуатации проксмокса свалил на прошлой неделе на hyper-v. Этот проксмокс самый конченный гипервизор на планете. В телеграм канале люди такие проблемы решают, которые вообще не должны возникать. Я задолбался ловить фризы и отвал сервака на ровном месте, а под большим io вообще портал в ад открывается. Любые попытки провести обновление могут закончиться концом всех виртуалок. Кластер на pve вообще будет работать только на стенде, при эксплуатации он развалится и не соберётся без приседаний. Это не гипервизор. Это кусок говна. Этот тред тому подтверждение.

system-root ★★★★★
()
Ответ на: комментарий от urfin

В логах были собщения, что зависает pvscan на девайсах 8:33 и 8:17.

Apr 28 17:31:45 pve02 systemd-udevd[971]: Spawned process '/bin/systemd-run /sbin/lvm pvscan --cache 8:33' [1116] is taking longer than 59s to complete
Apr 28 17:31:45 pve02 systemd-udevd[890]: Spawned process '/bin/systemd-run /sbin/lvm pvscan --cache 8:17' [1115] is taking longer than 59s to complete

Причем у тебя в выводе команд таких девайсов не было, были только 8:32 и 8:16. Поскольку младшие номера отличаются на 1, я сделал вывод, что это разделы. В общем-то разделы тут не нужны - только лишняя сущность и диск без них расширять проще после увеличения LUN'а на СХД.

Как это вообще может влиять? Баги, баги, и еще раз баги :)

bigbit ★★★★★
()
Последнее исправление: bigbit (всего исправлений: 1)
Ответ на: комментарий от system-root

Вернись когда hyper-V будет опенсорсным и лунукс хосте. Контейнеры с виндой там уже прикрутили или еще нет?

einhander ★★★★★
()
Ответ на: комментарий от bigbit

Огромное спасибо за помощь и за просветительскую работу которую вы провели!

urfin
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.