Архитектура

В минимальной конфигурации СРК RuBackup представляет собой один сервер резервного копирования и один клиент резервного копирования, установленный на том же хосте, на котором работает сервер резервного копирования.

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

В простейшем случае единственный сервер резервного копирования взаимодействует с клиентами, координирует задания СРК и хранит резервные копии на доступных ему ресурсах: файловых системах, картриджах ленточных библиотек и облачных сервисах.

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

Взаимодействие между системой резервного копирования и ее клиентами обеспечивает основной сервер резервного копирования RuBackup, либо резервный сервер, если он функционирует в режиме замещения основного сервера.

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

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

Система резервного копирования RuBackup может выполнять полное, инкрементальное и дифференциальное (разностное) резервное копирование информационных ресурсов разных типов: отдельные файлы и каталоги, блочные устройства, на которых располагаются сырые данные или файловые системы, логические тома LVM, виртуальные машины и базы данных. Функционал резервного копирования и восстановления ресурсов разных типов реализован в соответствующих модулях на клиенте.

Полное резервное копирование — это создание резервной копии всех данных из исходного набора, независимо от того, изменялись ли данные с момента выполнения последней полной резервной копии.

Дифференциальное (разностное) резервное копирование сохраняет только данные, измененные со времени выполнения предыдущего полного резервного копирования.

Инкрементальное резервное копирование сохраняет только данные, измененные со времени выполнения предыдущей инкрементальной резервной копии, а при отсутствии таковой — со времени выполнения последней полной резервной копии.

Резервное копирование выполняется по заранее заданным правилам в глобальном расписании RuBackup, а также в соответствии с правилами локального расписания клиента, если это разрешено клиенту администратором RuBackup. Также клиенту доступно срочное резервное копирование тех или иных файлов, но в этом случае выполняется полное резервное копирование выбранного ресурса.

Восстановление резервной копии возможно по инициативе клиента. Для восстановления данных пользователь должен ввести пароль, позволяющий выполнить восстановление.

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

Система резервного копирования может быть настроена таким образом, что резервные копии будут перемещаться на другие устройства хранения (например с дискового устройства хранения на картридж ленточной библиотеки) по достижении определенного срока хранения. Устаревшие резервные копии могут быть удалены из СРК автоматически или сообщение о том, что их следует удалить, будет отправлено администраторам СРК. Время от времени может выполняться проверка резервных копий по разным критериям.

Общий объем резервных копий, хранящихся в системе резервного копирования, может быть ограничен для клиента СРК, или для правила резервного копирования, или для стратегии резервного копирования.

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

Внутренние автоматические работы с резервными копиями — перемещение, удаление, проверка — осуществляются в заранее определенное сервисное окно, чтобы данные операции не пересекались с операциями резервного копирования.

Особое внимание в системе резервного копирования RuBackup уделено вопросам разграничения доступа к резервным копиям. Ключи для защитного преобразования резервных копий располагаются на клиенте и не могут быть скопированы при выполнении резервного копирования (исключаются принудительно из резервных копий). Чтобы восстановить резервную копию требуется ввести пароль, который задается при начале работы клиента с системой резервного копирования. В базе данных системы резервного копирования пароли клиентов не хранятся в чистом виде, но в виде хешей.

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

Базовая конфигурация RuBackup, как клиента, так и сервера, содержится в конфигурационном файле /opt/rubackup/etc/config.file. Этот файл содержит информацию об основном и резервном серверах резервного копирования и режиме работы узла (основной сервер, резервный сервер, медиасервер или клиент) и т.п.

Глобальные настройки системы резервного копирования, а также информация о клиентах СРК, глобальном расписании, стратегиях, репозитории резервных копий и пр. хранятся в базе данных rubackup в СУБД PostgreSQL. Для изменения большинства параметров конфигурации СРК не требуется изменять какие-либо сложные конфигурационные файлы и останавливать функционирование СРК. Изменения производятся online с помощью штатных средств администрирования RuBackup.

Клиент RuBackup имеет модульную архитектуру. Клиент RuBackup отвечает за взаимодействие с сервером RuBackup с одной стороны, и с модулями резервного копирования и восстановления с другой стороны. Собственно процедуры резервного копирования и восстановления реализованы в модулях RuBackup. Модуль RuBackup — это утилита, которая отвечает за резервное копирование и восстановление ресурса определенного типа (например, блочных устройств или базы данных) и упаковку резервных копий.

API модуль RuBackup является открытым и может быть использован для разработки модулей третьими лицами. Модули подробно описаны в соответствующих документах.