При старте перестал монтироваться раздел LVM.

При старте системы перестал монтироваться /home на LVM раздел. В fstab запись в порядке. После mount /home вручную маунтиться нормально. Подскажите где искать глюк?

dolvm к параметрам ядра, если

dolvm к параметрам ядра, если используется initramfs собранный genkernel.

initramfs не используеться.

initramfs не используеться. Раньше нормально маунтилось.
В /etc/lvm/lvm.conf менял use_lvmetad = 0 на use_lvmetad = 1, не помогло.

в rc.log теперь: * Starting

в rc.log теперь:

* Starting lvmetad ...
* start-stop-daemon: did not create a valid pid in `/run/lvmetad.pid'
* Failed to start lvmetad

Обновил lvm на нестабильную версию, не помогло. :(

lvmetad

На версии lvm2-2.02.109, при поднятом значении use_lvmetad = 1 в /etc/lvm/lvm.conf,
столкнулся с проблемой, описанной в https://bugs.gentoo.org/show_bug.cgi?id=521960.

При исследовании выяснилось:
1. lvm2 при старте в runlevel/boot пытаеся соединиться с сокетом lvmetad, выдавая предупреждение:
/run/lvm/lvmetad.socket: connect failed: ...
При этом попытка lvm2 стартовать lvmetad не проходит, попытки подождать пока стартует lvmetad (до 30 сек) ни к чему не привели.
Возможно, это связано со следующе проблемой https://bugzilla.redhat.com/show_bug.cgi?id=813766.
2. Не смотря на то что lvm2-2.02.109 жалуется на отсуствие сокета он стартует и работает, возможно, без поддержки lvmetad. При этом lvmetad может достартовать на уровне 3.
3. Версия lvm2-2.02.103 при похожих условиях, выдав предупреждения, не стартует.
4. При установке use_lvmetad = 0, lvmetad не поднимается и версии lvm2-2.02.109 и lvm2-2.02.103 стартовали корректно.

Судя по приведенному changelog: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-fs/lvm2/ChangeLog?view=markup,
в версии lvm2-2.02.110 значение use_lvmetad по умолчанию будет равно 1.

Добавьте lvmetad на уровень

Добавьте lvmetad на уровень запуска.

lvmetad

У меня создается сомнение, что вы сами пробовали тот рецепт который предлагаете.

Специально повторил ранее проведенное исследование. Прилагаю отчет о проведенных действиях.

Эксперимент 1. Отключено использование lvmetad

В конфигурационном файле /etc/lvm/lvm.conf

use_lvmetad=0

Сервис lvm находится в boot.
Из вывода rc-status --all

Runlevel: boot
...
 lvm                                                               [  started  ]
...
Dynamic Runlevel: needed
 lvmetad                                                           [  started  ]

В любом случае lvmetad находится в перечне подлежащих запуску.
При загрузке видим:

 * Starting lvmetad ...                                                   [ ok ]
 * Setting up the Logical Volume Manager ...                              [ ok ]
...
INIT: Entering runlevel: 3
 * Starting lvmetad ...                                                   [ ok ]

Эксперимент 2. Используется lvmetad и оба сервиса находятся в boot

В конфигурационном файле /etc/lvm/lvm.conf

use_lvmetad=1

Сервисы lvm и lvmetad находятся в boot.
Из вывода rc-status boot

Runlevel: boot
...
 lvmetad                                                            [  started  ]
 lvm                                                                [  started  ]
...

Заранее модифицировал скрипт /etc/init.d/lvm. diff функции start():

***************
*** 39,44 ****
--- 39,55 ----
                        modprobe dm-mod 2>/dev/null
                fi
                if [ -d /proc/lvm ] || dm_in_proc ; then
+                       /bin/mount | /bin/grep -i run
+                       ebegin "Wait lvmetad start"
+                       for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 endwait; do
+                               [ -S /run/lvm/lvmetad.socket ] && break
+                               if [ "$i" == "endwait" ]; then
+                                       eerror "Failed to wait lvmetad"
+                                       return 1
+                               fi
+                               einfo "sleep $i"
+                               /usr/bin/sleep 1
+                       done
                        ebegin "Setting up the Logical Volume Manager"
                        #still echo stderr for debugging
                        lvm_commands="#! ${lvm_path} --config '${config}'\n"

Написано на коленке в целях разобраться с причинами поведения системы.

При загрузке видим:

 * Mounting /run ...
 * /run/openrc: creating directory
 * /run/lock: creating directory
 * /run/lock: correcting owner
...
 * Starting lvmetad ...                                                    [ ok ]
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,size=815904k,mode=755)
 * Wait lvmetad start ...
 * sleep 1
 * sleep 2
....
 * sleep 29
 * sleep 30
 * Failed to wait lvmetad
 * ERROR: lvm failed to start
 * Checking local filesystems  ...
....
 * Mounting local filesystems ...
mount: special device /dev/vg/mystorage does not exist
 * Some local filesystem failed to mount                                   [ !! ]
 * Configuring kernel parameters ...                                       [ ok ]
...
 INIT: Entering runlevel: 3
 * Starting lvmetad ...                                                    [ ok ]
 tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,size=815904k,mode=755)
 * Wait lvmetad start ...
 * Setting up the Logical Volume Manager ...                               [ ok ]
 * Starting gpm ...                                                        [ ok ]

Вывод: Создание необходимого для lvm сокета не происходит с задержкой. При переходе на уровень 3 (default) будет повторно произведена загрузка обоих сервисов: lvm и lvmetad. Причем во втором случае необходимый сокет будет создан и есть надежда что будет использоваться lvm-ом.
Данный подход неудовлетворителен по причине невозможности смонтировать том из lvm в fstab.

Эксперимент 3. Старт lvm не прерывается по причине отсутвия сокета lvmetad

В конфигурационном файле/etc/lvm/lvm.conf по прежнему

use_lvmetad=1

Только сервис lvm находится в boot.
Из вывода rc-status boot

Runlevel: boot
...
 lvm                                                                [  started  ]
...

Скрипт /etc/init.d/lvm изменен. diff функции start() относительно исходного скрипта:

***************
*** 39,44 ****
--- 39,56 ----
                        modprobe dm-mod 2>/dev/null
                fi
                if [ -d /proc/lvm ] || dm_in_proc ; then
+                       /bin/mount | /bin/grep -i run
+                       ebegin "Wait lvmetad start"
+                       for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 endwait; do
+                               [ -S /run/lvm/lvmetad.socket ] && break
+                               if [ "$i" == "endwait" ]; then
+                                       eerror "Failed to wait lvmetad"
+                                       break
+                                       #return 1
+                               fi
+                               einfo "sleep $i"
+                               /usr/bin/sleep 1
+                       done
                        ebegin "Setting up the Logical Volume Manager"
                        #still echo stderr for debugging
                        lvm_commands="#! ${lvm_path} --config '${config}'\n"

При загрузке видим:

 * Starting lvmetad ...                                                    [ ok ]
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,size=815904k,mode=755)
 * Wait lvmetad start ...
 * sleep 1
 * sleep 2
...
 * sleep 29
 * sleep 30
 * Failed to wait lvmetad
 * Setting up the Logical Volume Manager ...
  /run/lvm/lvmetad.socket: connect failed: No such file or directory
 WARNING: Failed to connect to lvmetad. Falling back to internal scanning. [ ok ]
 * Checking local filesystems  ...
...
INIT: Entering runlevel: 3
 * Starting lvmetad ...                                                    [ ok ]
 * Starting gpm ...                                                        [ ok ]
...

Вывод: lvm стартует не соединившись с сокетом lvmetad. При этом доступен для монтирования в fstab том lvm. На стадии 3 повторно запускается lvmetad.

Взаимодействуют ли lvm и lvmetad неизвестно.
Именно об этой ситуации сообщается в багтрекере RedHat - о проблемах при раннем запуске lvmetad:Bug 813766 - Do not try to use lvmetad during early system init stage (Homepage:http://sources.redhat.com/lvm2/)

Вот же меня угораздило....

воспользоваться столь редко используемой технологией (lvm). Неужто никто не пользуется lvm и не сталкивался с похожими проблемами?

Пока в ручную монтирую, жду

Пока в ручную монтирую, жду когда поправят. :)

Я так понимаю...

поднятие lvm и lvmetad происходит на уровне default и монтирование уже после старта системы?

Просьба!
Если кто еще пользуется lvm, расскажите как, где и в каком порядке вы стартуете сервисы, на каком этапе монтируете lv?

Похоже что на default только

Похоже что на default только lvm стартует.

Спасибо за помощь! lvmetad

Спасибо за помощь!
lvmetad добавить в default или boot?

/

micbal написал(а):
Спасибо за помощь!
lvmetad добавить в default или boot?

Согласно моим представлениям о здравом смысле как бы не в sysinit.
Посмотри ебилд на предмет сообщений: куда дэвы предлагают (полагают правильным) его ставить.

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".