Страница 1 из 1

LVM не успевает при загрузке активировать логические тома с большими снапшотами, где бы таймаут увеличить?

Добавлено: 24 ноя 2021, 00:56
slant
Имеется вот такая специфическая ситуация:

1. Есть сервер. Debian 11 Bullseye
2. Не нем LVM. На этом LVM логические тома со снапшотами. Много. Снапшоты тоже большие.
3. Активация всех нужных томов через "vgchange -ay" отрабатывает несколько минут - ближе к 5-6. Это особенность LVM - не лечится.
4. Нечто (то ли udev то ли сама systеmd) не дает процессу активации томов во время загрузки завершиться, прибивая его по таймауту. Результат - часть томов остается неактивной, и это ломает процесс загрузки. Эта операция происходит сразу после старта ядра еще из initramfs, до перехода на основной root.
5. Попытки увеличить таймауты добавив в параметры загрузки ядра (конфиг grub) "udev.event-timeout=600 rd.udev.event-timeout=600" ничего не дала - уменшить их, скажем до 10 секунд - это им запросто. А вот дать времени больше чем стандартные 180 секунд - не работает.

Собственно вопрос: может кто знает, или догадывается, где-бы еще этот стандартный таймаут подкрутить в большую сторону? Т.к. сам процесс сделать быстрее нельзя - такие снапшоты будут долго активироваться хоть ты тресни. А на thin снапшоты lvm переходить не подходит в данном случае. Длительная загрузка здесь не мешает - главное чтобы она вообще работала. А с этим пока проблемы...

Если никто не знает - придется костыли писать, чего не особо хочется...

LVM не успевает при загрузке активировать логические тома с большими снапшотами, где бы таймаут увеличить?

Добавлено: 24 ноя 2021, 08:59
Белый Кролик
А если попробовать добавить параметр ядра "rootdelay="?

LVM не успевает при загрузке активировать логические тома с большими снапшотами, где бы таймаут увеличить?

Добавлено: 24 ноя 2021, 11:12
Chocobo
slant, не совсем по теме вопроса с таймаутом,
но подобные датадиректории вероятно лучше выносить в отдельные точки монтирования чтоб возможность отсроченного подключения не аффектило бы всю ось.

LVM не успевает при загрузке активировать логические тома с большими снапшотами, где бы таймаут увеличить?

Добавлено: 24 ноя 2021, 11:38
slant
Chocobo писал(а):
24 ноя 2021, 11:12
в отдельные точки монтирования
Они вообще не монтируются. Это образы дисков, их потом напрямую iscsi tgt использует. И qemu для виртуалок. Потому и переход на thin не подходит - оно скорость ест. Проблема именно в том, что штатный способ инициализации самих logical volume не заканчивает работу за отведенное на это время. И саму эту работу ускорить в таких условиях просто нельзя. Но и дождаться нужно, а не тупо рубить по таймауту...
Белый Кролик писал(а):
24 ноя 2021, 08:59
А если попробовать добавить параметр ядра "rootdelay="?
Дык они не только не root, но и вообще не обычные разделы. И root как раз монтируется без проблем. Проблемы начинаются позже, из за не поднявшихся томов.

LVM не успевает при загрузке активировать логические тома с большими снапшотами, где бы таймаут увеличить?

Добавлено: 24 ноя 2021, 12:32
hellonet
slant писал(а):
24 ноя 2021, 11:38
Проблема именно в том, что штатный способ инициализации самих logical volume не заканчивает работу за отведенное на это время.
В качестве бреда:
А нельзя в это время загрузить комп ещё каким-нибудь процессом, чтобы он тупо тормознул, а в это время происходила инициализация logical volume?

LVM не успевает при загрузке активировать логические тома с большими снапшотами, где бы таймаут увеличить?

Добавлено: 24 ноя 2021, 12:34
slant
hellonet писал(а):
24 ноя 2021, 12:32
А нельзя в это время загрузить комп ещё каким-нибудь процессом
Это так не работает. Мы не в DOS - система многозадачная. :)

LVM не успевает при загрузке активировать логические тома с большими снапшотами, где бы таймаут увеличить?

Добавлено: 24 ноя 2021, 13:26
slant
Ладно, долго искать где оно сидит по хорошему было некогда. Написал такой вот костыль:

/etc/systemd/system/lv-snap-ctl.service

Код: Выделить всё

[Unit]
Description=Logical volumes late init ensure
Before=libvirtd.service nfs-kernel-server.service smbd.service nmbd.service tgt.service

[Service]
Type=oneshot
ExecStartPre=/usr/bin/echo "[ENSURING TO START LOGICAL VOLUMES]"
ExecStart=/usr/sbin/vgchange -ay
TimeoutSec=1000

[Install]
WantedBy=libvirtd.service nfs-kernel-server.service smbd.service nmbd.service tgt.service
Установил в автоисполнение: systemctl enable lv-snap-ctl, перегрузился - работает вроде.