10 Обеспечение надёжного функционирования

10.1 Введение

Средства обеспечения надёжного функционирования предоставляют возможности резервного копирования и восстановления данных и программного обеспечения при сбоях и отказах, а также возможности функционирования отдельных экземпляров системы на нескольких технических средствах в отказоустойчивом режиме, обеспечивающем доступность сервисов и данных при выходе из строя одного из технических средств или при исчерпании вычислительных ресурсов.

10.2 Архивация файлов и директорий

Утилита tar позволяет архивировать файлы и директории со всеми их поддиректориями и файлами, а затем восстанавливать их из архива, т.е. является удобным средством для создания резервных копий.

Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленным в таблице:

Опции утилиты tar и их значения

Опция

Значение

-c, --create

Создать новый архив.

-r, --append

Присоединить файлы к концу архива.

--delete

Удалить файл из архива.

-t, --list

Вывести список содержимого архива.

-A, --catenate, --concatenate

Присоединить существующий архив к другому архиву.

-x, --extract, -get

Извлечь файлы из архива.

-u, --update

Добавить в архив более новые версии файлов.

-C, --directory=DIR

Сменить директорию перед выполнением операции на DIR.

--f, --file=ARCHIVE

Вывести результат в архивный файл или в устройство ARCHIVE.

-d, --diff

Осуществить проверку на наличие различий между архивом и некоторой файловой системой.

-v, --verbose

Выводить подробную информацию о процессе выполнения команды.

Пример: в примере директория mydir и все её поддиректории сначала сохраняются в файле myarch.tar:

tar cf myarch.tar mydir

а затем извлекаются из архива:

tar xf myarch.tar

А этот скрипт организует хранение четырех последних резервных копий директории /var/www в директории /opt/backup/www-backup. Первая версия будет всегда иметь номер 0, последняя — номер 3. При создании новых версий старые будут удаляться. Сами резервные копии хранятся в сжатом виде.

#! /bin/bash
cd /opt/backup/www-backup
rm www-dump-3.tar.gz
cp www-dump-2.tar.gz www-dump-3.tar.gz
cp www-dump-1.tar.gz www-dump-2.tar.gz
cp www-dump-0.tar.gz www-dump-1.tar.gz
tar --selinux --acls --xattrs --czf www-dump-o.tar.gz /var/www

10.3 Создание архивов и извлечение файлов из них

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

Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:

Опции утилиты cpio и их значения

Опция

Значение

-o, --create

Копировать файлы в архив.

-A, --append

Добавить файлы в архив. Может быть использована только в связке с опцией -o.

-i, --extract

Копирует файлы из архива или выводит список содержимого некоторого архива.

-p, --pass-through

Копирует файлы из одной файловой структуры в другую, комбинируя при этом режимы работы, использующиеся при передаче опций -i и -o, но не используя при этом архивы.

-a, --reset-access-time

Сбрасывает времена обращения к входным файлам после их копирования, так что при использовании данной опции будет нельзя распознать, что файлы были скопированы.

Пример: в примере сначала флеш-носитель монтируется как устройство /mnt:

mount /dev/sdb4 /mnt

Затем создается и записывается на флеш-носитель резервная копия директории /lib:

find /lib/ | cpio -o > /mnt/2/backup.cpi

Для того чтобы восстановить все файлы в директорию /lib из созданной ранее архивной копии, необходимо выполнить следующую команду:

cpio -ivmd /lib/\* < /mnt/2/backup.cpio

10.4 Резервное копирование данных

Утилита amanda обладает возможностью резервного копирования данных, хранящихся на множестве компьютеров в вычислительной сети. Она реализует клиент-серверную модель и использует следующие утилиты:

  • клиентская утилита аmandad, взаимодействующая с сервером системы.
    Во время своего выполнения вызывает другие утилиты:
    • selfcheck (проверка конфигурации клиента);

    • sendsize (оценка объема резервной копии);

    • sendbackup (выполнение операции резервного копирования);

    • amcheck (проверка конфигурации системы).

  • серверная утилита amdump, инициирующая все операции резервного копирования.
    Во время своего выполнения использует другие утилиты и контролирует их выполнение:
    • planner (определение того, что надо копировать);

    • driver (интерфейс к внешнему устройству);

    • dumper (связывается с клиентским процессом amandad);

    • taper (запись данных на внешнее устройство);

    • amreport (подготовка сообщения о выполненном копировании).

  • административные утилиты:
    • amcheck (проверка готовности системы к работе);

    • amlabel (записать метку на сменный носитель перед использованием в системе);

    • amcleanup (очистить систему после неплановой перезагрузки сервера или после непланового завершения операции резервного копирования);

    • amflush (переписать данные из дискового кэша на внешний носитель);

    • amadmin (выполнение большого количества различных административных операций).

  • утилиты восстановления данных:
    • amrestore (восстановление данных с носителей, на которых записаны резервные копии, выполненные системой);

    • amrecover (программа для интерактивного восстановления данных с резервных копий).

10.5 Создание дисковых RAID-массивов

Утилита mdadm позволяет создавать так называемые дисковые RAID-массивы c использованием технологии распределения данных по нескольким дискам с целью достижения избыточности, отказоустойчивости, сокращения задержек и/или увеличения скорости чтения и записи, а также для улучшения возможностей восстановления данных в случае отказа.

Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:

Опции утилиты mdadm и их значения

Опция

Значение

-A, --assemble

Режим сборки ранее созданного массива и его активации.

-B, --build

Режим сборки массива без суперблоков.

-С, --creat

Режим сборки нового массива.

-F, --follow, --monitor

Режим слежения за состоянием устройств.

-G, --grow

Режим расширения или уменьшения размера массива.

-N, --name

Устанавливает имя массива.

-n, --raid-devices

Указывает количество активных устройств в массиве.

-х, --space-device

Указывает количество запасных устройств в массиве.

-z, --size

Указывает объем пространства, используемого для каждого диска.

-l, --level

Устанавливает уровень массива.

-с, --config

Указывает файл конфигурации. По умолчанию /etc/mdadm.conf.

-f, --fail

Помечает перечисленные устройства как неисправные.

-S, --stop

Деактивирует массив и освобождает все ресурсы.

-V --version

Выводит информацию о версии утилиты.

-h, --help

Выводит справку об утилите.