Как правильно отключать (извлекать) и затем подключать (вставлять) съемное (с возможностью горячего подключения, USB и т. д.) запоминающее устройство с LVM2 на нем?
Я нашелэта заметка
Удалить (отсоединить, извлечь):
lvchange -an /dev/your_volume_group_name
vgexport -a
Вставка (заглушка):
vgimport -a
lvchange -ay /dev/your_volume_group_name
но я не уверен, -a
не является ли использование опции «все» излишеством?
Еще один момент, мне интересно, может ли быть в некоторых обстоятельствах необходимость использования vgscan
pvscan
в таком сценарии? Я думаю об автоматизированном решении.
решение1
Вам не нужно экспортировать VG, она используется для переноса VG из одной системы в другую.
Просто vgchange -an vgname
деактивируйте все логические тома в группе томов, которую вы хотите отключить.
Позже, после повторного подключения устройства, vgchange -ay vgname
все логические тома в вашей VGname VG будут повторно активированы, после чего вы сможете монтировать логические тома и использовать их.
Распознавание устройств зависит от аппаратного обеспечения, модулей ядра и т. д., но должно работать с самой последней версией комплекта.
решение2
Я использую скрипт, похожий на этот:
- размонтировать все файловые системы в группе томовvg_name
- если все файловые системы в vg_name размонтированы, сделать VG недоступным
- не забудьте синхронизировать буферы памяти с диском...
- sispmctl используется для выключения моих внешних дисков
#!/bin/баш echo "Размонтирование файловой системы" монтировать | grep vg_name && { mount | grep vg_name | cut -d' ' -f3 | xargs umount -v } монтировать | grep vg_name || { echo "Установить VG недоступно" /sbin/vgchange -an /dev/vg_name && { echo "Синхронизировать диски" синхронизация; синхронизация && { echo "Отключить диски" /usr/local/bin/sispmctl -D 01:01:4b:54:e5 -f 1 } } }
Когда диск подключен, ядро автоматически обнаружит его, если в системе доступны соответствующие модули (это обычно происходит в основных дистрибутивах).
Экспорт/импорт требуется только в том случае, если PV/VG/LV изменены и VG подключена к разным системам. В этом случае vgexport будет следовать за vgchange.