Технические подробности работы резервного копирования ISPmanager

Материал из ISPWiki
Версия от 11:31, 25 февраля 2016; Greed (обсуждение | вклад) (Ощая архитектура)
Перейти к: навигация, поиск

Формат хранения данных

  • Отдельные пользователи сохраняются в хранилище в отдельных файлах
  • Большие архивы могут быть разбиты на тома небольшого размера (по умолчанию 20Мб), что уменьшает требования к свободному месту на диске и позволяет в случае частичного извлечения данных запрашивать из хранилища только часть архивов
  • В качестве формата хранения архивов использован .tgz. Это позволяет извлекать данные из архивов используя сторонние приложения
  • Мы использовали собственную утилиту isptar, которая, помимо создания архива в формате .tgz, сохраняет список файлов со смещениями. Этот список добавляется в конец архива и позволяет быстро извлекать файлы, не распаковывая весь файл, как это происходит с классическим ".tgz" архивом

Ощая архитектура

Резервное копирование реализовано в виде нескольких взаимодействующих между собой приложений.

backup2/backup2_pro
Формирует очередь резервного копирования, если она пуста. Затем извлекает из нее по очереди записи и запускает для каждой из них отдельный процесс backup2/backup2_pro. Этот процесс получает настройки резервного копирования для пользователя, формирует заготовки файлов в каталоге .system (реальные данные будут сохранены в эти файлы после запуска backup2_system), а затем выполняет резервное копирование, запуская isptar
isptar
Архиватор, задача которого прочитать данные с жесткого диска и запаковать их в .tgz архивы
backup2_cp
Отвечает за работу с хранилищами (локальное, FTP, Dropbox, Yandex, Amazon). Его задача - прочитать архив, сформированный isptar, и загрузить его в хранилище. backup2_cp запускается из isptar и backup2/backup2_pro (для загрузки информации о резервной копии и листинга файлов). Он так же отвечает за контроль свободного места в хранилище
backup2_system
Резервное копирование данных, не представленных в виде отдельных файлов, как то: настройки пользователя в панели, базы данных, почтовые ящики, доменные имена, web домены и т.д. backup2_system извлекает данные и сохраняет их в виде специальных файлов в каталоге .system. backup2/backup2_pro создает необходимый набор файлов в каталоге .system. После этого isptar, когда доходит очередь до резервного копирования этих файлов, запускает для каждого из них backup2_system
restore2/restore2_pro
Извлекает данные из архива
backup2_download
Формирует резервную копию в виде отдельного файла для скачивания. В случае, если резервная копия была сохранена в нескольких томах, они будут объединены в один
backup2_import
Позволяет импортировать архив сформированный backup2_download и загрузить его в текущее хранилище
backup2_cgi
Позволяет скачать часть архива в виде отдельного .tgz файла. Например, это может быть дамп отдельных баз данных или набор файлов и каталогов

Схема взаимодествия приложений при резервном копировании в ISPmanager Lite

Backup-lite.png

Схема взаимодествия приложений при резервном копировании в ISPmanager Business

В общем случае схема взаимодействия в ISPmanager business выглядит следующим образом. Однако, когда взаимодействующие роли находятся физически на одном сервере, схема взаимодействия меняется. Например, если BACKUP NODE совпадает с NODE, работу процессов isptar --client и isptar --server выполняет isptar --create.

Данные каждой роли, даже если некоторые из них расположены на одном сервере, сохраняются в отдельных файлах. Backup-business.png