LINUX.ORG.RU

Бэкап LVM c помощью Bacula


1

3

Добрый

LVM разделы являются дисками виртуальных машин. Бэкап собственно заключался в нескольких строчках кода

#create snapshot
lvcreate -L${LVM_TEMP_SIZE} -s -n backup ${LVM_GROUP}/${LVM}

#create compressed image dd
dd if=${LVM_GROUP}/backup bs=8096 | gzip -9cf > ${NAME_SNAP}

#delete snapshot
lvremove ${LVM_GROUP}/backup --force
Задача делать тоже самое c использованием bacula. Определяю Задание (Job) и Набор файлов (FileSet). В задании до его запуска и после указываю скрипты в которых создается, а после удаляется snapshot LVM.
~# nano /etc/bacula/bacula-dir.conf
....
Job {
    Name = backup
    Type = Backup
    Client = Client
    FileSet = FileSet
    Schedule = "WeeklyCycle"
    Messages = Standard
    Pool = motherpool
    Write Bootstrap = "/var/spool/bacula/%n.bsr"
    Priority = 1

    Client Run Before Job = /patch/to/lvm_start.sh
    Client Run After Job = /patch/to/lvm_stop.sh
}

FileSet {
    Name = FileSet
    Include {
        Options {
           signature = MD5
           compression= GZIP
           recurse = yes
        }
     File = /dev/mapper/vg0-backup
    }
}

~# cat /patch/to/lvm_start.sh
#!/bin/bash

lvcreate -L 20G -s -n backup /dev/vg0/kvm_disk
~# cat /patch/to/lvm_stop.sh
#!/bin/bash

lvremove /dev/vg0/backup --force

Запускаю... Все без ошибок! Но файл 0 размера в bacula.

vg0-backup	 lrwxrwxrwx  0  0  05-Mar-12 21:31:29  7 bytes

★★★★★

lvcreate -L 20G -s -n backup /dev/vg0/kvm_disk

У меня LVM. И какой результат после выполнения этой комманды должен быть? O_o

zgen ★★★★★ ()

не понял, судя по

#create compressed image dd

dd if=${LVM_GROUP}/backup

ты бакулой файл с утройством упаковываешь? молодца. Что ж удивляться, что он у тебя нулевого размера?

В lvm_start.sh добавь свой dd, а в fileset упаковывай результат работы dd, вместо файла устройства и все будет ок.

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

ты бакулой файл с утройством упаковываешь?

Да

Что ж удивляться, что он у тебя нулевого размера?

Пимерно это я и подозревал. Спасибо что подтвердили.

В lvm_start.sh добавь свой dd, а в fileset упаковывай результат работы dd, вместо файла устройства и все будет ок.

Думал что есть способ обойтись без временных файлов.

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

Думал что есть способ обойтись без временных файлов.

А если примонтировать и забэкапить именно файлы с раздела?

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

Это практически единственная статья по этой теме. Я заметил что там LVM монтируется. Но разве практически выгодно и возможно ли монтировать LVM на которых свои таблицы разделов есть.

P.S.: Я хотел бэкап напрямую на устройство хранения делать из практических соображений. Считывать данные и писать в пределах одного массива это крайне растратно. А отдельный винт для транзита бэкапов в архитектуре отсутствует.

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

Вы вообще понимаете, что делаете? Отличается файл устройства от его содержания? Это все равно, что в винде ярлык на папку, вместо самой папки копировать. И удивляться. Поразительно, как вы об этом додумались.

Какую-то адскую ерунду говорите, я даже не нахожусь что ответить.

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

Поразительно, как вы об этом додумались.

«В системе UNIX, все есть файл; а если что-то не файл, то это процесс»

Простое описание системы UNIX, также применимое к Linux, заключается в следующем:

«В системе UNIX, все есть файл; а если что-то не файл, то это процесс».

Это утверждение правда, т.к. существуют специальные файлы, которые больше, чем просто файлы (именованные каналы и сокеты, например), но для простоты допускают обобщение и говорят, что все есть файл. Система Linux, как и UNIX, не делает никакой разницы между файлом и каталогом, так как каталог - это просто файл, содержащий имена других файлов. Программы, службы, тексты, изображения и т.д. — все это файлы. В системе Linux устройства ввода и вывода и вообще все устройства считаются файлами.

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

Какую-то адскую ерунду говорите

Простите, что именно ерунда из этого

Это практически единственная статья по этой теме. Я заметил что там LVM монтируется. Но разве практически выгодно и возможно ли монтировать LVM на которых свои таблицы разделов есть.

P.S.: Я хотел бэкап напрямую на устройство хранения делать из практических соображений. Считывать данные и писать в пределах одного массива это крайне растратно. А отдельный винт для транзита бэкапов в архитектуре отсутствует.

Я просто хочу разобраться.

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

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

Вполне возможно. А «практическая выгодность» зависит от ситуации.

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

Думал что есть способ обойтись без временных файлов.

Попробуй http://inkfist.net/wiki/index.php/Bacula_File-List_Specification#Block_Device

If you explicitly specify a block device such as /dev/hda1, then Bacula (starting with version 1.28) will assume that this is a raw partition to be backed up. In this case, you are strongly urged to specify a sparse=yes include option, otherwise, you will save the whole partition rather than just the actual data that the partition contains.

>Note, the bf /dev/hd6 must be the raw partition itself. Bacula will not back it up as a raw device if you specify a symbolic link to a raw device such as my be created by the LVM Snapshot utilities. Ludovic Strappazon has pointed out that this feature can be used to backup a full Microsoft Windows disk.

т.е. возможно тебе придётся в скрипте lvm_start.sh пройти по ссылке, узнать major id и minir id девайса, затем создать блочное устройство (man mknod ) там, где его будет искать bacula. Сам не проверял, т.к. предпочитаю бекапить данные на уровне ВМ.

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

но для простоты допускают обобщение и говорят, что все есть файл.

Файл устройства - является ссылкой на устройство, а не набором данных этого устройства. В оригинале у него тоже «размер» 0 байт.

Бакула вам заархивировала этот файл, ровно в соответствии с вашими пожеланиям, в чем тогда у вас проблема? O-o

Вам нужны данные - ну так архивируйте данные, а не файлы устройств. Потому что последнее - это вообще какой-то бред.

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

предпочитаю бекапить данные на уровне ВМ

Там тоже бэкапы делаю только данных.

Почитаю. Спасибо

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

А «практическая выгодность» зависит от ситуации.

Согласен. В моей ситуации это лишние сущности.

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

Файл устройства - является ссылкой на устройство, а не набором данных этого устройства. В оригинале у него тоже «размер» 0 байт.

Прояснили. Спасибо. Нервничать за чем. Благодарен.

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

Просмотрел Ваше сообщение. Не получится, там LVM поделен на разделы внутри машины. Каждый раздел монтировать (не пробывал работает ли вообще) не удобно.

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