В процессе работы скрипт создает снапшоты для всех точек монтирования, которые нужно бэкапить и которые расположены на LVM. У меня это все, кроме /boot.
Снапшот создается как обычно
# lvcreate --snapshot --name rootfs-backup --size 500M /dev/VolGroup0/rootfs
Затем идет логика резервного копирования и по завершении снапшоты удаляются. Вот тут меня и поджидали грабли.
# lvremove -f /dev/VolGroup0/rootfs-backup Can't remove open logical volume "rootfs-backup"
Ошибка проявляется не всегда, что наводит на мысли о гонке. Пробую гуглить и натыкаюсь на обсуждение аналогичной проблемы. Оказывается корень проблемы в установленном udisks, который использует современный десктопный софт в Linux.
Как вариант, можно закомментировать строку
KERNEL=="dm-*", OPTIONS+="watch"
в файле /lib/udev/rules.d/80-udisks.rules, но вместо этого я добавил for i in rootfs usr var home do for j in 1 2 3 4 5 6 7 8 9 10 lvremove -f /dev/VolGroup0/${i}-backup && break sleep 3 done if [ -e /dev/VolGroup0/${i}-backup ]; then echo "Failed to remove LVM snapshot VolGroup0/${i}-backup" exit 1 fi done
Комментариев нет:
Отправить комментарий