Форум Тринити

Открытый технический форум по серверам и системам хранения данных, кластерным решениям, SAN, NAS.
Microsemi infortrend storage
Текущее время: 18 ноя 2018, 16:42

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: BackUp системы: FreeBSD + dump + ???
СообщениеДобавлено: 20 мар 2008, 18:58 
Не в сети
Advanced member

Зарегистрирован: 15 сен 2007, 13:23
Сообщения: 335
Откуда: Екатеринбург
Система: FreeBSD разных версий.

Задача: ежедневный бэкап всей системы по сетке на сервер хранения резервных копий.

Цель: в случае краха системы (не важно по какой причине) не восстанавливать все с нуля, а загрузиться с компашки и опять же по сетке 'restore ...'.

Почитав хэндбук и 'man dump', пришел к выводу, что в принципе большего и не надо. Достаточно ежедневно дампить с каждого сервера все нужные ФС (с определенным уровнем инкрементальности, тут бы я тоже совета спросил?).

Чтобы по крону подобную задачу запускать, нужно какой-либо скриптец в качестве обвязки для '/sbin/dump'. Чтобы репорты по почте слал, всякие нештатные ситуации отрабатывал и т.п.

Чтобы велосипед не изобретать, хочу узнать - нет ли чего на эту тему готового, работающего и уже проверенного практикой?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BackUp системы: FreeBSD + dump + ???
СообщениеДобавлено: 21 мар 2008, 11:43 
Не в сети
Сотрудник Тринити
Сотрудник Тринити
Аватара пользователя

Зарегистрирован: 14 ноя 2003, 17:25
Сообщения: 13040
Откуда: СПб, Екатеринбург
Ziggy Stardust писал(а):
Чтобы велосипед не изобретать, хочу узнать - нет ли чего на эту тему готового, работающего и уже проверенного практикой?

Ну почему же нет, лезем на сайт наших партнеров www.opennet.ru, запускаем поиск и вперед. Другое дело что все-равно вам придется все дорабатывать напильником.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BackUp системы: FreeBSD + dump + ???
СообщениеДобавлено: 21 мар 2008, 12:18 
Не в сети
Advanced member

Зарегистрирован: 15 сен 2007, 13:23
Сообщения: 335
Откуда: Екатеринбург
Stranger03 писал(а):
Ziggy Stardust писал(а):
Чтобы велосипед не изобретать, хочу узнать - нет ли чего на эту тему готового, работающего и уже проверенного практикой?

Ну почему же нет, лезем на сайт наших партнеров www.opennet.ru, запускаем поиск и вперед. Другое дело что все-равно вам придется все дорабатывать напильником.

Дык, там я первым делом поискал... Видимо плохо искал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BackUp системы: FreeBSD + dump + ???
СообщениеДобавлено: 21 мар 2008, 16:12 
Не в сети
Сотрудник Тринити
Сотрудник Тринити
Аватара пользователя

Зарегистрирован: 14 ноя 2003, 17:25
Сообщения: 13040
Откуда: СПб, Екатеринбург
Ziggy Stardust писал(а):
Дык, там я первым делом поискал... Видимо плохо искал.

Вы мне в аську стукнитесь, правда я сейчас что-то приболел, сильно, голова еле соображает. Если терпит, на след.недельке попробую помочь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 мар 2008, 16:19 
Не в сети
Advanced member

Зарегистрирован: 15 сен 2007, 13:23
Сообщения: 335
Откуда: Екатеринбург
Нашел (вернее подсобили в fido7.ru.unix) скриптец, который можно за основу взять.

Заточен пока под алгоритм "ханойской башни".

Привожу его целиком с коментариями. Дело полезное, вдруг кто еще кроме меня озадачится подобным... :-)

Код:
#! /bin/sh
#
# Создание резервной копии всех файловых система хоста.
#
# $Id: dumpallfs.sh 532 2007-11-11 16:22:33Z dsh $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin


# Список файловых систем, dump которых необходимо делать.
ALLFS="/ /usr/local /home /var"

# Суффих dump файла.
DUMPEXT="dump.gz"

# В этом каталоге сохраняются бэкапы.
DUMPSTORAGE="/FreeBSDbackup"

# Кол-во dump'ов в цикле всего.
PERIOD0=45

# Кол-во dump'ов до первого дампа первого уровня в одном цикле: "0 3 2
# 5 4 7 6 9 8 ...". Этот цикл увеличивается за счет дампов 9-го
# уровня.
PERIOD1=9


sudo mount "$DUMPSTORAGE" || exit $?

# Вычислить сегодняшний уровень дампа.
seq=$PERIOD0
[ -f $DUMPSTORAGE/dumpseq ] && seq=`cat $DUMPSTORAGE/dumpseq`
[ "$seq" -gt $PERIOD0 ] && seq=$PERIOD0
# Вычисление производится относительно текущего положения в цикле
# $PERIOD1.
next_level=$(($seq % $PERIOD1))
case "$next_level" in
    0)
   case $seq in
       $PERIOD0)
      dumplevel=0
      ;;
       *)
      dumplevel=1
   esac
   ;;
    1)
   dumplevel=3
   ;;
    2)
   dumplevel=2
   ;;
    3)
   dumplevel=5
   ;;
    4)
   dumplevel=4
   ;;
    5)
   dumplevel=7
   ;;
    6)
   dumplevel=6
   ;;
    7)
   dumplevel=9
   ;;
    8)
   dumplevel=8
   ;;
    *)
   dumplevel=9
esac

# Вычислить сегодняшний номер дня в цикле $PERIOD0.
case $seq in
    $PERIOD0)
   seq=1
   ;;
    *)
   seq=$(($seq + 1))
esac

DUMPDATE=`date +%Y%m%d`
HOSTNAME=`hostname -s`

echo "Day $seq, make level $dumplevel dump of all FS's at `date`"
echo
umask 027

# Список файлов для уведомления нулевого дампа.
notify=0
notify_files=""

for fs in $ALLFS; do
    # Преобразовать имя файловой системы в файл, куда будет
    # производится dump.
    dumpfile=""
    case $fs in
   /)
       basefile="$HOSTNAME"
       ;;
   *)
       basefile="$HOSTNAME`echo $fs | sed 's!/!_!g'`"
    esac
    dumpfile="$DUMPSTORAGE/${basefile}-${DUMPDATE}-${dumplevel}.${DUMPEXT}"
    dump -${dumplevel}aLu -f - -h 0 $fs | gzip > $dumpfile

    # Удалить старые дампы этой файловой системы.
    #
    # Здесь берется список файлов, отсортированный по именам в
    # обратном порядке (т.к. в именах присутствует дата, то
    # получается, что они отсортированы по дате), и из его начала
    # удаляется указанное кол-во строк. Это позволяет получить список
    # файлов за исключением N последних.
    #
    # Как конечный результат, хранятся N последних дампов
    # определенного уровня.
    #
    case $dumplevel in
   0)
       notify=1
       notify_files="${notify_files}\n${dumpfile}"
       ;;
   1)
       # Хранить дампов 1-го уровня столько, сколько их делается
       # между дампами 0-го уровня.
       #
       keepdumps=$(($PERIOD0 / $PERIOD1 - 1))
       ls -r ${DUMPSTORAGE}/${basefile}-????????-1.${DUMPEXT} \
      | sed -e "1,${keepdumps}d" | xargs rm -f --
       ;;
   [2-9])
       # Для дампов 2-9 уровня хранится столько последних дампов,
       # сколько их делается в промежутке между дампами меньшего
       # уровня.
       #
       keepdumps=$(($PERIOD1 - 1))
       ls -r ${DUMPSTORAGE}/${basefile}-????????-[2-9].${DUMPEXT} \
      | sed -e "1,${keepdumps}d" | xargs rm -f --
       ;;
    esac
done

echo $seq > $DUMPSTORAGE/dumpseq
sudo umount "$DUMPSTORAGE"
echo
echo "Dump is over at `date`"

# Послать уведомление о необходимости записи нулевого дампа на DVD.
case $notify in
    1)
   { cat ~root/dumpallfs-notify.txt; echo -e "$notify_files"; } \
       | sendmail -i root
   ;;
esac


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 мар 2008, 16:21 
Не в сети
Advanced member

Зарегистрирован: 15 сен 2007, 13:23
Сообщения: 335
Откуда: Екатеринбург
Переписал скриптец под себя.
Месячный цикл: L0...L9, L1...L9, L2...L9 ... и т.д.
Привожу целиком. Может кому поможет.
Запускать по крону ежедневно.

Код:
#! /bin/sh
#
# Создание резервной копии всех файловых система хоста.
#
# $Id: dumpallfs.sh 2008-03-26 $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

# Список файловых систем, dump которых необходимо делать.
FSTODUMP="da0s1a da0s1d da0s1f da0s1g"

# Список каталогов, для который делаем только L0 дамп.
DIRTONODUMP="/opt/tmp /opt/squid/cache"

# Префикс dump файла.
DUMPPREFIX="SERVERNAME"

# Суффих dump файла.
DUMPEXT="dump.gz"

# Текущая дата
CURDATE="`date "+%Y-%m-%d"`"

# В этом каталоге сохраняются бэкапы.
DUMPSTORAGE="/mnt/backup"

# Сколько дней будем хранить файлы с дампами.
DAYTOSTORAGE="100"

# Минимум свободного места на ресурсе, куда будем сохранять дампы (в мегобайтах).
STORAGELIMIT="20480"

# Вычисляем сколько сейчас свободного места на ресурсе.
STORAGESPACE="`df -m ${DUMPSTORAGE} |grep -v 'Avail' |awk '{print $4}'`"

# Проверяем наличие ресурса, где храним дампы.
if [ ! -d "${DUMPSTORAGE}" ]; then
        echo "There is no ${DUMPSTORAGE} directory."
        exit 1
fi

# Проверяем наличие свободного места на ресурсе
if [ ${STORAGESPACE} -le ${STORAGELIMIT} ]; then
        echo "There is no free space on ${DUMPSTORAGE} directory."
        exit 1
fi

# Пометим выше выбранные каталоги флагом NODUMP
for i in ${DIRTONODUMP}; do
    chflags -R nodump ${i}
done

# Вычислить сегодняшний уровень дампа на основе текущего дня месяца.
CURDAY="`date "+%d"`"

case "${CURDAY}" in
    01)
   dumplevel=0
   ;;
    02)
   dumplevel=1
   ;;
    03 | 11)
   dumplevel=2
   ;;
    04 | 12 | 19)
   dumplevel=3
   ;;
    05 | 13 | 20 | 26)
   dumplevel=4
   ;;
    06 | 14 | 21 | 27)
   dumplevel=5
   ;;
    07 | 15 | 22 | 28)
   dumplevel=6
   ;;
    08 | 16 | 23 | 29)
   dumplevel=7
   ;;
    09 | 17 | 24 | 30)
   dumplevel=8
   ;;
    10 | 18 | 25 | 31)
   dumplevel=9
   ;;
    *)
   dumplevel=9
esac

echo "Day ${CURDAY}, make level $dumplevel dump of all FS's at `date`"
echo "System `uname -n`"
echo

for fs in ${FSTODUMP}; do
    dumpfile="${DUMPSTORAGE}/${DUMPPREFIX}_${fs}_${CURDATE}_L${dumplevel}.${DUMPEXT}"
    dump -${dumplevel}aLu -f - /dev/${fs} | gzip > ${dumpfile}
done

echo
echo "Dump is over at `date`"

# Удаляем старые файлы.
find ${DUMPSTORAGE} -type f -mtime +${DAYTOSTORAGE}d -name ${DUMPPREFIX}*.${DUMPEXT} -delete

exit 0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BackUp системы: FreeBSD + dump + ???
СообщениеДобавлено: 15 фев 2012, 09:10 
Не в сети
Junior member

Зарегистрирован: 15 фев 2012, 09:00
Сообщения: 1
Откуда: Сочи
всем привет!
вот смотрю и думаю...
а чем этот метод лучше чем tar -cf /dir1 /dir2 ?....
в архив перенесутся и права на файлы... что еще нужно.
при крахе нужно будет только установить минимальный FreeBSD и скопировать архив.
или я ошибасюь?

Вот я сейчас как раз занимаюсь такой настройкой архивирования в tar.
Хочу иметь на флешке Freebsd с уже установленными нужными программами и настройками для установки на мои новые сервера в будущем.... а то надоедает... одни и те же настройки каждый раз делаю... да еще каждый раз что нить забываю настроить...
Главное компиляция очень долгий процесс по сравнению с копированием ))
Алгоритм при устновке будет такой:
1) устанавливаем минимальную FreeBsd
2) извлекаем папки из архива tar в установленную системы
3) reboot = готово


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BackUp системы: FreeBSD + dump + ???
СообщениеДобавлено: 15 фев 2012, 09:16 
Не в сети
Advanced member

Зарегистрирован: 15 сен 2007, 13:23
Сообщения: 335
Откуда: Екатеринбург
Инкрементальностью лучше. И тем, что бэкап со снапшота файловой системы идет. А вообще конечно еще лучше специализированным софтом бэкапить, тем же симантеком хотя бы...

_________________
С уважением, Александр
ICQ://13043204


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BackUp системы: FreeBSD + dump + ???
СообщениеДобавлено: 16 фев 2012, 12:34 
Не в сети
Сотрудник Тринити
Сотрудник Тринити
Аватара пользователя

Зарегистрирован: 24 ноя 2011, 16:30
Сообщения: 120
Откуда: Санкт-Петербург
1) FreeBSD поддерживает NetBackup, а вот BackupEXEC вряд ли.

2) Для "бедных с руками" есть Bacula
http://bacula.org/en/?page=documentation
Кстати, прописывание в скриптах клиента резервного копирования вызовов утилит создания дампов - есть стандартная практика для резервного копирования СУБД которые официально не поддерживаются системой резервного копирования.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB