Назад Оглавление Вперед

Часть V Рекомендации связанные с резервным копированием

Глава 22 Процедуры резервирования и восстановления данных

В этой главе
Резервное копирование и восстановление в Linux
Программа резервного копирования tar
Создание резервных копий с tar
Автоматизация задачи резервного копирования с tar
Восстановление файлов с tar
Программа резервного копирования dump
Создание резервных копий с dump
Восстановление файлов с dump
Резервное копирование и восстановление через сеть

Программа резервного копирования dump

Описание

Dump полностью отличается от tar; эта программа предназначена для резервного копирования и восстановления файловой системы. Она создает резервные копии элементов файловой системы - не файлов. Dump проверяет файлы на файловой системе ext2, определяет резервные копии каких из них необходимо выполнить и копирует эти файлы на заданный диск, ленту, файл или другой носитель. Это позволяет получить дамп одной файловой системы быстро и эффективно. К сожалению, его нельзя применить к отдельным каталогам, поэтому архивы потребляют больше места на устройстве хранения. Dump был написан специально для резервного копирования. Команда restore выполняет функцию обратную dump; она восстанавливает полную резервную копию файловой системы. Последующие добавочные резервные копии могут быть наложены слоями на вершину полной копии. Отдельные файлы и каталоги могут быть также восстановлены из полной или частичной резервной копии. Вы можете использовать dump если нуждаетесь в процедуре резервного копирования и восстановления файловых систем.

Уровни Dump

Dump имеет несколько уровней резервного копирования. Уровни входят в диапазон от 0 до 9, где уровень номер 0 это полная резервная копия системы, который гарантирует, что все элементы файловой системы будут скопированы. Уровни выше 0 - добавочные резервные копии, которые говорят dump копировать все файлы новее или модифицированные после последнего дампа из некоторых или более низкого уровня. Чтобы быть более точным, на каждом уровне добавочного резервного копирования вы сохраняете все изменения произошедшие после создания последней резервной копии на том же или предыдущем уровне. Каковы преимущества и причины использования многоуровневого резервного копирования? Я попробую объяснить это при помощи следующих схем:

0 3 2 5 4 7 6 9 8 9 | | | | | | | | | | 0 полная резервная копия | | | | | | | | | | | | 3 копирует все новее или измененное после уровней 0 и 3. | | | | | | | | 2 копирует все новее или измененное после уровней 0 и 2. | | | | | | | 5 копирует все новее или измененное после уровней 0, 3 и 5. | | | | | | 4 копирует все новее или измененное после уровней 0, 3 и 4. | | | | | 7 копирует все новее или измененное после уровней 0, 3, 4 и 7. | | | | 6 копирует все новее или измененное после уровней 0, 3, 4 и 6. | | | 9 копирует все новее или измененное после уровней 0, 3, 4, 6 и 9. | | 8 копирует все новее или измененное после уровней 0, 3, 4, 6 и 8. | 9 копирует все новее или измененное после уровней 0, 3, 4, 6, 8 и 9.

Преимуществом этого метода является то, что более дешевым способом удается продлить хронологию резервных копий. Длинная хронология полезна тем, что часто в течении долгого времени не обнаруживается удаление или порча нужных файлов. Даже не самые новые версии файлов лучше, чем полная их потеря. Также, уровни резервирования используются, чтобы свести время выполнения резервных копий и восстановления к минимуму. Страницы руководства dump предлагает хорошую схему, чтобы использовать все преимущества уровней резервного копирования: 3, 2, 5, 4, 7, 6, 9, 8, 9 и так далее, как описано ниже в таблице. Число лент необходимых для восстановления зависит от количества времени между двумя полными резервными копиями.

Лента Уровень Резервная копия (дней) Ленты для восстановленья
1 0 Нет 1
2 3 1 1,2
3 2 2 1,3
4 5 1 1,2,4
5 4 2 1,2,5
6 7 1 1,2,3,6
7 6 2 1,2,5,7
8 9 1 1,2,5,7,8
9 8 2 1,2,5,7,9
10 9 1 1,2,5,7,9,10

Создание резервных копий с dump

Если вы хотите использовать многоуровневую процедуру резервного копирования, то вас заинтересует как использовать программу dump. Ниже, я приведу процедуру, имеющую длинную историю резервного копирования, и поддерживающую время резервного копирования и восстановления данных на минимуме. В следующем примере, мы подразумеваем, что записываем резервную копию каталога (/home) на ленточное устройство (/dev/st0). Важно всегда начинать с 0 уровня резервного копирования, например:

где "-0 до -9" - уровни резервного копирования, которые вы хотите использовать, опция "u" говорит обновлять файл "/etc/dumpdates" после удачного дампа, опция "-f" указывает записывать резервную копию в файл; файл может быть специальным файлом устройства, например, "/dev/st0" (ленточное устройство), "/dev/rsd1c" (дисковое устройство), обычным файлом, или "-" (стандартным вывод). В заключение, вы должны определить, резервную копию чего, вы хотите сделать. В нашем примере это каталог "/home". Вы можете видеть, что мы используем одни и те же ленты со 2 по 5 для ежедневного резервного копирования (С понедельника по Четверг = 4 ленты), ленты 6, 7 и 8 для еженедельного резервного копирования (другие пятницы, 6 + 7 + 8 = 3 ленты; заметим, что может быть пять пятниц в месяце), и ленту 1 и любую новую ленту для ежемесячной резервной копии (первая пятница каждого месяца, 1 + любые следующие "11 месяцев" = 12 лент). Итого, если мы используем 8 лент (4 + 3 + 1 = 8), мы можем получить полную резервную копию в первом месяце и повторить процедуру с 8 лентами в следующие 11 месяцев, чтобы получить в итоге 1-годовую индивидуальную полную резервную копию. Полные резервные копии должны делаться в определенный интервал, скажем, один месяц, и на наборе чистых лент, на которые записывается навсегда. Для этого типа процедуры, вы должны иметь 12 лент на 12 месяцев, которые содержат хронологию и изменения вашей системы за год. Затем, вы можете скопировать 12 лент с резервными копиями на отдельный компьютер, предназначенный для долгого хранения всех годовых резервных копий, и использовать их (12 лент) в новом году.

Восстановление файлов с dump

Команда restore выполняет функцию противоположную функции dump(8). Она восстанавливает файлы и каталоги из резервных копий полученный программой dump. Может быть восстановлена полная резервная копия файловой системы, а затем и уровни добавочных резервных копий поверх ее. Также может из полной резервной копии или частичной могут быть восстановлены отдельные файлы и каталоги. Вы имеете ряд возможных команд и опций для восстановления данных из резервных копий, полученных программой dump. Ниже мы покажем вам процедуру, которая использует все возможности программы restore с большинством возможных опций. Все это также сделано в диалоговом режиме. При диалоговом восстановлении файлов из дампа, программа restore предоставляет shell подобный интерфейс, который позволяет пользователю перемещаться по дереву каталогов, выбирая файлы для извлечения, после чтения информации о каталогах из дампа. Далее , мы покажем, что вы увидите, при восстановлении каталога "/home":

Первое, мы должны перейти в раздел файловой системы, где мы хотим восстанавливать нашу резервную копию. Это требуется, так как в диалоговом режиме программа restore восстанавливает все файлы с раздела файловой ситемы, из которой она была запущена.

Перейдите в раздел, который вы хотите восстановить (каталог "/home" в нашем случае) используя следующую команду:

[root@deep /]# cd /home

Для восстановления файлов из дампа в диалоговом режиме используйте команду:

[root@deep /home]# restore -i -f /dev/st0
restore >

На вашем терминале вы увидите командную строку, для получения списка файлов текущего или заданного каталога используйте команду "ls":

restore > ls
.:
admin/ lost+found/ named/ quota.group quota.user wahib/

restore >

Для изменения текущего рабочего каталога в заданный используйте команду "cd" (в нашем примере, мы переходим в каталог wahib):

restore > cd wahib
restore > ls
./wahib:
.Xdefaults .bash_logout .bashrc
.bash_history .bash_profile Personal/

restore >

Для внесения текущего каталога или файла в список файлов для извлечения используйте команду "add" (если задан каталог, то в список вносится он и все его потомки):

restore > add Personal/ restore >

Файлы, которые входят в список для извлечения обозначаются символом "*", когда они выводятся командой "ls":

restore > ls
./wahib:
.Xdefaults .bash_logout .bashrc
.bash_history .bash_profile *Personal/

Для удаления текущего каталога или заданного файла из списка файлов для извлечения используйте команду "delete" (если задан каталог, тогда вместе с ним будут удалены и все его элементы):

ЗАМЕЧАНИЕ Наиболее подходящий путь для извлечения большинства файлов из каталога это добавить каталог в список для извлечения, а затем удалить ненужные файлы.

restore > cd Personal/
restore > ls
./wahib/Personal:
*Ad?le_Nakad.doc *Overview.doc
*BIMCOR/ *Resume/
*My Webs/ *SAMS/
*Contents.doc *Templates/
*Divers.doc *bruno universite.doc
*Linux/ *My Pictures/

restore > delete Resume/
restore > ls
./wahib/Personal:
*Ad?le_Nakad.doc *Overview.doc
*BIMCOR/ Resume/
*My Webs/ *SAMS/
*Contents.doc *Templates/
*Divers.doc *bruno universite.doc
*Linux/ *My Pictures/

Для восстановления всех файлов из списка для извлечения используйте команду "extract" (Restore спросит какой том пользователь хочет монтировать. Наиболее быстрый путь извлечь несколько файлов - это начать с последнего тома и закончить первым):

restore > extract
You have not read any tapes yet.
Unless you know which volume your file(s) are on you should start
with the last volume and work towards the first.
Specify next volume #: 1
set owner/mode for '.'? [yn] y

Для выхода из интерактивного режима программы restore после завершения восстановления файлов используйте команду "quit".

/sbin/restore > quit

ЗАМЕЧАНИЕ. О других методах восстановления информации из резервных копий созданных программой dump читайте в страницах руководства (man).

Дополнительная документация

Для получения большей информации читайте следующие страницы руководства:

$ man dump (8) - программа создание резервных копий файловой системы ext2
$ man restore (8) - "восстановление файлов или файловых систем из резервных копий созданных программой dump"

Создание резервных копий и восстановление через сеть

Резервное копирование позволяет вам восстановить доступность и целостность информационных ресурсов после нарушений безопасности и несчастных случаев. Без резервного копирования вы не сможете восстановить данные на компьютере после системных сбоев. Важно разработать план, который будет охватывать все ваши сервера. Мы должны определить, файлы какой категории нужно резервировать. Например, вы можете решить создавать резервные копии только файлов пользователей (/home), потому что поврежденная система должна быть восстановлена с оригинального дистрибутива.

Здесь приводятся общие технологические подходя к резервному копированию файлов. Для сетевых серверов, авторитетная версия информационного наполнения создается и поддерживается на защищенной . Если сервер скомпрометирован и его содержимое повреждено, его можно перезагрузить с безопасной системы поддерживающей авторитетную версию. Этот подход обычно используется на публичных системах, таких как Веб сервера, потому что содержимое изменяется в предсказуемые интервалы.

Важно гарантировать, что резервные копии выполнены безопасным способом и что их содержимое остается защищенным. Мы рекомендуем, чтобы в своем плане вы определили:

Пересылка вашей резервной копии в безопасной манере через сеть

В предыдущей секции, мы показали вам как сделать резервную копию с помощью утилит tar и dump на ленту или в файл на той же системе, где выполнялась процедура резервного копирования. Эти программы способны также делать резервное копирование через сеть. Чтобы осуществлять резервное копирование по сети надо убедиться, что у вас установлены пакеты "rmt" и "rsh". Утилита "rmt" предоставляет удаленный доступ к ленточному устройству программам подобным dump и tar. Пакет "rsh" содержит набор программ, которые позволяют пользователям выполнять команды на удаленной машине, подключаться к удаленным машинам и копировать файлы между машинами (rsh, rlogin и rcp).

Так как "rsh" может быть легко взломана, а "rmt" зависит в своей работе от "rsh", мы не инсталлировали эти пакеты (смотрите главу 2, "Инсталляция вашего Linux сервера" для большей информации). Поэтому мы должны найти другой путь для осуществления резервного копирования через сеть. Технология SSH поможет решить эту проблему (смотрите главу 11, Программы обеспечения безопасности и сетевая безопасность), потому что она позволяет копировать данные через сеть командой "scp" с поддержкой шифрования. Следующий метод использует возможности программы SSH для пересылки наших резервных копий, сделанных командами tar или dump в безопасной манере, используя утилиту "scp".

Использование SSH команды "scp"для передачи резервных копий через сеть

Команда "scp" копирует файлы между хостами в сети. Она использует SSH для пересылки данных, используя туже систему аутентификации и предоставляя тот же уровень безопасности, что и SSH. В отличии от утилиты "rcp" из пакета "rsh", "scp" запрашивает пароль или парольную фразу. В нашем примере, мы пересылаем файл резервной копии, созданный программой tar; процедура передачи файла, созданного командой dump аналогична.

Для копирования файла на удаленную систему используйте команду:

[admin@deep /]# scp <localdir/to/filelocation> <user@host:/dir/for/file>

где <localdir/to/filelocation> - это каталог находится резервная копия на локальном сервере, а <user@host:/dir/for/file> представляет, по порядку, имя пользователя (user) на удаленной машине, который будет владеть резервной копией, имя компьютера (host), куда вы хотите отправить файл, и каталог на этом компьютере.

Реальный пример будет выглядеть так:

[admin@deep /]# scp -Cp /backups/deep-01Feb.tar admin@backupserver:/archive/deep/deep-01Feb.tar
admin@backupserver's password:
deep-01Feb.tgz | 10479 KB | 154.1 kB/s | ETA: 00:00:00 | 100%

ЗАМЕЧАНИЕ. Опция "C" включает сжатие для более быстрой передачи файла, опция "p" говорит, что необходимо сохранить время модификации, время доступа и режимы доступа к файлу, что обычно неплохо. Важно заметить, что каталог "dir/for/file" на удаленном компьютере ("/archive/deep" в нашем примере) должен принадлежать "username", заданному в команде scp ("admin" в нашем примере) или вы получите следующее сообщение об ошибке:
scp: /archive/deep/deep-01Feb.tar: Permission denied.

Для копирования файла с удаленной системы на локальную используйте команду:

[admin@deep /]# scp <user@host:/dir/for/file> <localdir/to/filelocation>

где <user@host:/dir/for/file> представляет, по порядку, имя пользователя (user) на удаленной машине, который владеет резервной копией, имя компьютера (host), откуда вы хотите получить файл, и каталог на этом компьютере, в котором лежит файл, а <localdir/to/filelocation> - это локальный каталог в который вы хотите поместить файл, полученный с удаленного компьютера. Реальный пример выглядит примерно так:

[admin@deep /]# scp -Cp admin@backupserver:/archive/deep/deep-01Feb.tar /backups
admin@backupserver's password:
deep-01Feb.tgz | 10479 KB | 154.1 kB/s | ETA: 00:00:00 | 100%

Альтернативы tar и dump

AMANDA
Домашняя страница AMANDA: http://www.cs.umd.edu/projects/amanda/

BRU
Домашняя страница BRU: http://www.bru.com/


Назад Оглавление Вперед