Большой Воронежский Форум
» UNIX и дериваты>Как правильно делать backup на работающей системе?
Hip-Hop 11:22 26.04.2011
Ну, если система работает и нужно делать регулярные backup ВСЕЙ системы. Я использую для backup - fsarchiver, но тут возникает вопрос.. fsarchiver может сделать бэкап и на rw смонтированной файловой системе. Но я могу перед backup.. сделать remount в ro.

Например имеем такую структуру:

/ - sda1
/home - sda5
/var - sda6

Я делаю mount -no remount,ro / и т.д и потом backup через fsarchiver. Я все правильно делаю?

С другой стороны.. я уже несколько раз клонировал систему сделанную в rw (fsarchiver) и не заметил каких-то страшных изменений.
[Ответ]
Hip-Hop 11:56 26.04.2011
То-есть, я хочу делать remount ro не уходя с runlevel 2. [Ответ]
Hip-Hop 12:48 26.04.2011
Ну, как? c / и /home проблем не возникает и они переходят в ro, но вот /var...

Основываясь на выводе lsof /var я убираю все процессы, но даже после var не получается перемонтировать в ro. Какой есть выход?

Что мы получим если сделаем следующую операцию? Магия!


mount /dev/sda6 /mnt
mount -o remount,ro,bind /mnt
[Ответ]
Hip-Hop 21:45 26.04.2011
Ну, как я уже сказал.. с var возникают проблемы и не получается перевести её в ro.

Я обхитряю linux так.. (или он меня? )

Я создаю раздел - /dev/sda7 и делаю на нём файловую систему.. перевожу её в ro

mount -o ro /dev/sda7 /mnt и делаю mount --bind /var /mnt

и fsarchive savefs fs.fsa /dev/sda7 (надо подправить uudi и в fstabe относительно /dev/sda6).

Получаю var в режиме ro, но есть ли от этого толк?
[Ответ]
Hip-Hop 22:07 26.04.2011
Кстати, наверное так не получится. там.. uuid высчитывается каким-то сакральным образом (насколько я слышал) и просто 'подменить' его не получится. И в этого при восстановлении мы столкнёмся с несоответствием, но надо попробовать. Хотя.. к uuid мы и не привязаны железно, imho, эт решаемо. [Ответ]
Hip-Hop 23:17 26.04.2011
Кстати, тут надо что-то придумать Переводя / (/dev/sda1) в ro мы и tmp переводить в ro? Начал оформлять скрипт.. и fsarchiver заругался. ну, я не стал ничего придумывать просто смонтировал /dev/shm на /tmp. Если у вас достаточно оперативной памяти (у меня 8gb), то всё пройдёт гладко в этом плане (перевод sda1 в ro + savefs). [Ответ]
Hip-Hop 23:11 29.04.2011
Ну, провел испытания. всё тип-топ В самом простом варианте это выглядит так:

cp -r /tmp /home/tmp
mount -t tmpfs /dev/shm /tmp
cp -r /home/tmp /tmp
mount -o remount,acl,user_xattr,ro /dev/sda1
mount -o remount,acl,user_xattr,ro /dev/sda5
mount -o ro,acl,user_xattr /dev/sda7 /mnt
mount --bind /var /mnt


$back_prog savefs -o backup.fsa /dev/sda[!6,2] -j2 -z 6

mount -o remount,rw /dev/sda1
mount -o remount,rw /dev/sda5
umount /dev/shm

и переделать в fstab /mnt на /var для раздела потом. (при восстановлении)

Правда достаточно прямолинейный вариант и глупый для backup, но я использую.
И тут возможно много 'но'... [Ответ]
Hip-Hop 00:58 30.04.2011
Ну, можно сделать простой скрипт для полного восстановления. Загружаясь с live-системы и запускать его.

Да, нам нужны будут инструменты dd и sfdisk.

sfdisk -d /dev/sda > part.table - снимаем таблицу разделов с диска.

dd if=/dev/sda of=mbr.backup bs=512 count=1 - mbr

При восстановлении (в скрипте)

возвращаем таблицу на другой диск (если он сломался ) sfdisk /dev/sdX (тут проверка должна быть на нужный нам диск) < part.table

далее fsarchiver restfs $backup.fsa id=$a,dist=$b

dd if=mbr.backup of=/dev/sdX (ну, какой он у нас в системе)

У меня backup-ы сохраняются на raid. Я легко могу загрузиться с live-системы и восстановить систему взяв нужный backup c raid-раздела.
[Ответ]
Hip-Hop 22:22 01.05.2011
Кстати о птичках. Все не так просто... поставил в cron этот скрипт с логом ошибок (0 5 * * 7 /backup/fsbackup.sh 2> /backup/backuperrors.log)

и получил:

+ back_prog=/usr/sbin/fsarchiver
+ back_dir=/backup
++ /bin/date +%F-%T
+ today=2011-05-01-05:00:01
+ log_dir=/var/log/
+ cp -r /tmp /home/tmp
+ mount -t tmpfs /dev/shm /tmp
+ cp -r /home/tmp /tmp
+ mount -o remount,acl,user_xattr,ro /dev/sda1
mount: / is busy
+ mount -o remount,acl,user_xattr,ro /dev/sda5
+ mount -o ro, /dev/sda7 /mnt
+ mount -o remount,ro,acl,user_xattr /dev/sda7
+ mount --bind /var /mnt

то-есть, на тот момент (5 часов утра в воскресенье) перемонтировать / в ro фиг получилось [Ответ]
Xelas 15:22 06.05.2011
не понятен глубинный смысл бэкапа /var каждый раз. достаточно раз в год в ручную. надо еще проверить - система может будет работать при отмаунченом var. А то отмаунтить его к чертям (еслит он на другом разделе ) и бэкапить полностью раздел. [Ответ]
Hip-Hop 21:15 06.05.2011

Сообщение от Xelas:
не понятен глубинный смысл бэкапа /var каждый раз.

Ну, а чё у нас может быть в var к примеру?

Сообщение от Xelas:
надо еще проверить - система может будет работать при отмаунченом var.

заработает и без var, но в аварийном режиме

Сообщение от Xelas:
А то отмаунтить его к чертям (еслит он на другом разделе ) и бэкапить полностью раздел.

сделать umount тоже нельзя. раздел будет 'is busy' при попытке.
[Ответ]
RN3QTB 12:13 11.05.2011
http://alex-at.ru/?blog=1&disp=singl...&show_statuses[]=published&order=ASC&more=1&c=1&tb=1&pb=1&type[]=comment&type[]=pingback

"читать далее" [Ответ]
RageWorm 16:01 18.10.2011
Мужчина, я настоятельно рекомендую вам использовать LVM + snapshots, если нужно регулярно что-то бэкапить. [Ответ]
Hip-Hop 13:13 19.10.2011

Сообщение от RageWorm:
LVM + snapshots

ерунда собачья. [Ответ]
RageWorm 14:18 20.10.2011
ахахаха... нуну. успехов. [Ответ]
Вверх