Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Очистка пустого места LVM раздела для резервного копирования  (Прочитано 876 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн avi9526

  • Автор темы
  • Активист
  • *
  • Сообщений: 618
  • ахтыжъёшкинкот
    • Просмотр профиля
    • Блог av9526
Делаю бекап LVM разделов на ходу таким вот скриптом
Код: (bash) [Выделить]
SrcLVM="/dev/vg1/root /dev/vg1/var /dev/vg1/opt"
DstDir="/media/avi9526/Ext4/dd/"

set -e

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi

if [ -d $DstDir ];
then
echo "Using target directory «$DstDir»"
else
echo "Directory «$DstDir» - does not exists"
exit 1
fi

SubDir=$(date +%Y-%m-%d_%H-%M-%S)
mkdir -p "$DstDir/$SubDir"

for LV in $SrcLVM;
do
echo "Processing volume «$LV»"
Size=$(lvs $LV --units b --noheadings --nosuffix | awk '{print($4)}')
echo "Volume size is $Size bytes"
BackupName="$(basename $(dirname $LV))-$(basename $LV)"
BackupFileName="${BackupName}.dd.gz"
echo "Backup filename is «$BackupFileName»"
ShapshotName="backup-$(basename $LV)"
Shapshot="$(dirname $LV)/$ShapshotName"
echo "Creating shapshot «$ShapshotName» for volume"
lvcreate --snapshot --name $ShapshotName --size 10G $LV
echo "Snapshot volume is «$Shapshot»"
echo "Creating volume image using dd"
dd if=$Shapshot bs=1M conv=noerror | pv -s $Size | pigz -c > $DstDir/$SubDir/$BackupFileName
echo "Removing shapshot"
lvremove -f $Shapshot
echo "Done"
done
Однако, хотелось бы в этом скрипте добавить предварительную очистку пустого места на диске — короче говоря забить нулями что-бы лучше сжималось.
Раньше (без LVM) использовал команду
dd if=/dev/zero of=$TmpFile bs=4MНо теперь есть проблемы:
1) Как узнать куда примонтирован каждый раздел в скрипте? Тот же /dev/vg1/root, например, примонтирован через /dev/mapper/vg1-root в /
2) Как предотвратить полное заполнение диска временным файлом с нулями? Т.е. чтобы dd остановилось до того как место исчерпается.
3) Как понизить приоритет и скорость записи нулевого файла? Команда описанная выше во время своего выполнения снижала производительность катастрофически: программы зависали по 30 сек, сеть переставала работать и т.п.
Ubuntu 14.10

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.