Назад | Перейти на главную страницу

Linux - Восстановление Bare Metal из файла Tar

Я ежедневно делаю резервную копию своего веб-сервера Debian. Полное резервное копирование в воскресенье и дифференциация по дням недели.

Резервное копирование выполняется с помощью Tar. Я делаю резервную копию всей системы в Tar-файл.

Если жесткий диск на моем веб-сервере выходит из строя, я храню все свои резервные копии в надежном месте.

Но как лучше всего выполнить восстановление на «голый металл» на новом жестком диске с дифференциальной резервной копией, сделанной накануне? Могу ли я загрузиться с загрузочного компакт-диска, а затем отформатировать новый жесткий диск и разархивировать на него файл резервной копии? Как мне это сделать?

РЕДАКТИРОВАТЬ:

Это мой сценарий резервного копирования:

#!/bin/sh
# Backup script

BACKUPDIR="/backups"
BACKUPFILE=$BACKUPDIR/backup_$(date +%y-%m-%d).tgz

if [ ! -d $BACKUPDIR ]; then
        mkdir $BACKUPDIR
fi

if [ -f $BACKUPFILE ]; then
        echo "Backup file already exists and will be replaced."
        rm $BACKUPFILE
fi

apt-get clean

tar czpf $BACKUPFILE --same-owner \
--exclude=$BACKUPDIR \
--exclude=/boot/grub/menu.lst* \
--exclude=/home/error.log \
--exclude=/proc \
--exclude=/media \
--exclude=/dev/* \
--exclude=/mnt \
--exclude=/sys/* \
--exclude=/cdrom \
--exclude=/lost+found \
--exclude=/var/cache/* \
--exclude=/tmp / 2>/home/error.log
  1. Загрузитесь с LiveCD
  2. Разбейте новый жесткий диск на разделы.
  3. Смонтируйте его где-нибудь, все в нужном месте (если у вас есть отдельный / var или / home, сделайте это)
  4. Скопируйте файлы обратно
  5. Создавайте каталоги без резервных копий с соответствующими правами доступа и владельцами, например / mnt / proc / sys / dev /
  6. Создайте файл в dev с помощью: MAKEDEV generic
  7. привязать mount / proc / sys / dev к цели
  8. Chroot в целевой каталог
  9. обновить / etc / fstab в соответствии с новыми UUID
  10. update-grub и grub-install
  11. размонтируйте все и перезагрузите

Простого восстановления жесткого диска будет недостаточно, вы, вероятно, захотите и свою загрузочную запись, которая, как я думаю, не существует в вашей резервной копии (я ошибаюсь? Для вас лучше, если я сделаю!) ...

Не предполагайте, что вы довели сервер до такой степени, что он может загрузиться (я лично предпочитаю создавать дополнительный раздел, подключенный к /boot который будет иметь kernel и initrd с участием busybox или что-то подобное для выполнения основных задач обслуживания). Вы также можете использовать live CD с вашим дистрибутивом Linux.

Установите свое будущее root partition где-нибудь и восстановить резервную копию.

tar был создан для лент, поэтому он поддерживает добавление в архив файлов с тем же именем. Если вы использовали этот метод просто untar -xvpf backup.tar -C /mnt в противном случае вам нужно будет восстановить резервную копию «последнего воскресенья» и применить соответствующие части до нужного дня.

Вы должны иметь в виду, что есть много вещей, которые не следует делать резервную копию, например: /proc, /dev, /sys, /media, /mnt (и, возможно, еще несколько, которые зависят от ваших потребностей). Вам нужно будет позаботиться об этом перед созданием резервной копии, иначе это может стать серьезной проблемой в процессе восстановления!

Есть много моментов, которые вы можете легко упустить с помощью этого метода резервного копирования для всего сервера:

  • Команды, используемые для восстановления, могут сильно различаться в зависимости от реальных команд, которые вы использовали для резервного копирования данных.
  • загрузочная запись
  • образ ядра и модули в порядке и соответствуют друг другу после восстановления
  • игнорировать ненужные данные при резервном копировании, а не восстанавливать.
  • и т.д, и т.д ...

Некоторые хорошие моменты об этом методе можно найти на Ubuntu Wiki: BackupYourSystem / TAR. Ищите Восстановление.

Кстати:

  • Вы когда-нибудь пытались восстановить одну из своих резервных копий?
  • Вы думали об изменении стратегии резервного копирования?
  • Рассматривали ли вы разделение данных, необходимых для резервного копирования, и системных настроек (сегодня есть несколько хороших вещей для управления конфигурацией системы, поэтому к ним можно легко прибегнуть без боли, например puppet или chief, поэтому единственное, о чем вам следует заботиться, это реальные данные)

P.P.S

Я рекомендую прочитать пару Джефф Этвуд сообщения о резервных копиях http://www.codinghorror.com/blog/2008/01/whats-your-backup-strategy.html и http://www.codinghorror.com/blog/2009/12/international-backup-awareness-day.html

если дифференциальное резервное копирование не является обязательным, лучшим вариантом для резервного копирования / восстановления без операционной системы является ddrescue: http://www.gnu.org/software/ddrescue/ddrescue.html

Посмотри на http://www.mondorescue.org/ поскольку он может выполнять резервное копирование в Интернете без выключения машины.