LINUX.ORG.RU
ФорумAdmin

hotplug + luks + lvm

 , , , ,


0

2

Добрый день!

Не могу добиться восстановления работы после горячего (незапланированного) отключения + подключения диска.

Схема разметки: /dev/sdb3 -> luks_target -> lvm_pv -> lvm_vg -> lvm_lv -> ext4 (раздел смонтирован в момент отключения)

После отключения и подключения диска, пропадает sdb3, появляется sdc3. При этом, luks_target продолжает ссылаться на отсутствующий sdb3 (со всеми вытекающими проблемами).

Как «объяснить» device mapper'u, что luks_target следует брать из sdc3, а не из sdb3?

★★★★★

Последнее исправление: Harliff (всего исправлений: 3)

luks_target

Что это? В контексте какой команды/процесса это?

Какой полный список манипуляций? Да так, чтобы я мог на своей машине запустить и воспроизвести твою ситуацию.

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

luks_target

Что это? В контексте какой команды/процесса это?

cryptsetup luksOpen /dev/sdb3 luks_target

Какой полный список манипуляций? Да так, чтобы я мог на своей машине запустить и воспроизвести твою ситуацию.

На своей машине - подключаешь носитель (флэшку, например). Она видится как /dev/sdb. Делаешь:

cryptsetup luksFormat /dev/sdb
cryptsetup luksOpen /dev/sdb luks_target
pvcreate /dev/mapper/luks_target
vgcreate vg /dev/mapper/luks_target
lvcreate -L 1G -n lv vg
mkfs.ext4 /dev/vg/lv
mount /dev/vg/lv /mnt

После чего - выдёргиваешь носитель и вставляешь его обратно; убеждаешься, что файл ее устройства теперь называется /dev/sdc (а не /dev/sdb). После чего, не отмонтируя /mnt, пытаешься восстановить работу /dev/sdc как /dev/mapper/luks_target.

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

uuid использовать там нельзя ?

Не знаю насчёт UUID, но например, использование /dev/disk/by-id/<id раздела> не помогает. Думаю, из-за того, что device mapper смотрит на minor+major number устройства, а не на его имя в системе. См. dmsetup ls --tree

Может быть, кто-нибудь знает, как поменять minor number у подключенного scsi устройства (в т.ч. путем его переподключения)?

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

После чего, не отмонтируя /mnt, пытаешься восстановить работу /dev/sdc как /dev/mapper/luks_target

Вариант продолжить работу, _отмонтируя_ /mnt, не рассматривается? В таком случае, я подозреваю, вам может понадобиться специальный драйвер прокси-устройства, а-ля RAID-1 из пары, собранной из реального устройства и /dev/null.

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

Вариант продолжить работу, _отмонтируя_ /mnt, не рассматривается?

Не рассматривается. У меня отмонтирование всех разделов, находящихся на проблемном устройстве, вызывает ряд проблем - поэтому я и создал эту тему.

В таком случае, я подозреваю, вам может понадобиться специальный драйвер прокси-устройства, а-ля RAID-1 из пары, собранной из реального устройства и /dev/null.

Можете поделиться ссылками или ключевыми словами для поиска?

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

Нет, я в этих вопросах не настолько разбираюсь. Да и это было очень велосипедное предложение. А ещё, возможно, вам сам RAID и поможет. Правильным же решением, вероятно, будет добиваться поддержки вашего случая в ядре.

Andrey_Utkin ★★
()

Думаю, к проблеме можно подойти с двух сторон.

С одной стороны, насколько я понимаю, где-то в недрах памяти модулей dm_mod или dm_crypt хранится привязка конкретного устройства к major и minor номерам блочного устройства.

Знает ли кто-нибудь способ эту привязку менять?

С другой стороны, при подключении, для SATA (SCSI) устройства назначается major/minor номера. Знает ли кто-нибудь способ управлять этим подключением? (Сам сейчас ищу информацию на эту тему)

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