Лирическое вступление
До недавнего беспокойного времени для создания резервных копий критичных данных я использовал стандартное средство операционной системы Windows 10 — «История файлов» («File history»). Периодически данные со стационарного ПК сохранялись на внешний HDD, подключаемый через USB интерфейс, что меня вполне устраивало и успокаивало мою психику.
Одним субботним утром меня озадачил вопрос: «А смогу ли я восстановить свои данные на другой системе?» В качестве испытуемого был выбран ноутбук с системой Windows 10. После большой небольшой пляски с бубном данные были восстановлены, но неприятным сюрпризам стало то, что при сравнении количества папок и файлов было обнаружено расхождение. Данный факт меня опечалил и побудил подойти к вопросу организации резервного копирования данных более ответственно. После непродолжительного поиска в сети Internet мой выбор пал на Open Source систему Bareos. Процесс настройки системы не был для меня простым и интуитивным, было затрачено значительное количество времени. Память человеческая имеет прекрасную способность забывать информацию, что побудило меня составить «шпаргалку» на будущее, коей спешу с Вами поделиться.
Описание задачи
На стационарном ПК с ОС Windows 10 x64 на локальном диске DATA (D:) расположен каталог проекта «test». Необходимо организовать резервное копирование всех файлов вышеуказанного проекта на внешний HDD — BACKUP (E:), за исключением подкаталогов «target».
Разработка проекта ведётся в будние дни, поэтому копирование производить в автоматическом режиме по графику:
-
полное — по пятницам в 18:30;
-
инкрементальное — с понедельника по четверг в 18:30.
На компьютере на локальном диске C: установлена система Bareos версии 19.2.7 x64. Установка произведена «по умолчанию» (со всем соглашаемся и нажимаем «далее»), тип установки «Full SQLite»:
Выполним нижеперечисленные действия по порядку.
Куда?
Создадим ресурс «Устройство» («Device») и опишем его в файле C:\ProgramData\Bareos\bareos-sd.d\device\RemoteStorage.conf:
Device { # имя устройства, обязательное Name = RemoteDevice # тип данных, обязательное Media Type = File # где хранить тома, обязательное Archive Device = E:/ # тома устройства именуются автоматически LabelMedia = yes; # поддерживает произвольный доступ Random Access = yes; # сканируется на наличие томов AutomaticMount = yes; # может ли быть отсоединено RemovableMedia = yes; }
Создадим ресурс «Хранилище» («Storage»), соответствующий ресурсу Device, и опишем его в файле C:\ProgramData\Bareos\bareos-dir.d\storage\Remote.conf:
Storage { # имя устройства, обязательное Name = Remote # имя или IP адрес, обязательное Address = localhost # пароль для доступа к Storage-сервису, обязательное # ВЗЯТЬ ОТСЮДА C:\ProgramData\Bareos\bareos-sd.d\director\bareos-dir.conf Password = "TFso/Fr6YDeuei/QYtg2bDLaS9dDkMgRvSPefKr88FnR" # имя соответствующего ресурса Device, обязательное Device = RemoteDevice # тип данных, должен совпадать с типом данных соответствующего Device, обязательное Media Type = File }
Создадим ресурс «Пул» («Pool») для полного копирования и опишем его в файле C:\ProgramData\Bareos\bareos-dir.d\pool\TestFull.conf:
Pool { # имя пула, обязательное Name = TestFull # повторное использование устаревших томов Recycle = yes # усечение устаревших томов AutoPrune = yes # срок хранения данных в томах Volume Retention = 365 days # предельный размер тома Maximum Volume Bytes = 50G # предельное количество томов Maximum Volumes = 100 # формат имени для томов "TestFull-<id-тома>" Label Format = "TestFull-" }
Создадим ресурс «Пул» («Pool») для инкрементального копирования и опишем его в файле C:\ProgramData\Bareos\bareos-dir.d\pool\TestIncr.conf:
Pool { # имя пула, обязательное Name = TestIncr # повторное использование устаревших томов Recycle = yes # усечение устаревших томов AutoPrune = yes # срок хранения данных в томах Volume Retention = 30 days # предельный размер тома Maximum Volume Bytes = 1G # предельное количество томов Maximum Volumes = 100 # формат имени для томов "TestIncr-<id-тома>" Label Format = "TestIncr-" }
Что?
Создадим ресурс «Набор файлов» («FileSet») и опишем его в файле C:\ProgramData\Bareos\bareos-dir.d\fileset\TestFileSet.conf:
FileSet { # имя набора файлов, обязательное Name = "TestFileSet" # что будем копировать Include { Options { Signature = MD5 # хеширование, применяемое для файлов WildDir = "*target" # шаблон для исключения каталога Exclude = yes # исключить файлы по шаблону } File = "D:/test" # каталог, подлежащий копированию } }
Когда?
Создадим ресурс «Расписание» («Schedule») и опишем его в файле C:\ProgramData\Bareos\bareos-dir.d\schedule\TestSchedule.conf:
Schedule { # имя расписания, обязательное Name = "TestSchedule" # тип копирования, используемый пул и время запуска Run = Level=Full Pool=TestFull fri at 18:30 # тип копирования, используемый пул и время запуска Run = Level=Incremental Pool=TestIncr mon-thu at 18:30 }
Кто? Как?
Создадим ресурс «Задание» («Job») и опишем его в файле C:\ProgramData\Bareos\bareos-dir.d\job\backupTest.conf:
Job { # имя задания, обязательное Name = "backupTest" # имя используемой File-службы Client = "bareos-fd" # набор файлов FileSet = "TestFileSet" # имя используемого Message-ресурса, обязательное Messages = "Standard" # пул, обязательное Pool = "TestFull" # расписание Schedule = "TestSchedule" # устройство Storage = "Remote" # тип, обязательное Type = "Backup" # где хранить файл начальной загрузки Write Bootstrap = "E:/%c.bsr" }
Активация задания копирования
Перезапустим службы Bareos, чтобы применить внесённые нами изменения:
-
Bareos Storage Service («Bareos-sd»);
-
Bareos Director Service («Bareos-dir»).
После этого наше задание «backupTest» активировано, проверим это. Зайдём в панель управления Bareos по адресу http://127.0.0.1:9100/ (логин: admin, пароль: admin). Перейдём в раздел «Расписание» («Schedules») на вкладку «Статус планировщика» («Status schedules») и убедимся, что наше задание присутствует в расписании.
Запуск копирования вручную
Перейдем в раздел «Задания» («Jobs») на вкладку «Запуск» («Run»). В поле «Задание» («Job») выберем наше задание «backupTest». В поле «Уровень» («Level») выберем значение «Full» и запустим задание, нажав «Submit».
При этом будет выполнено полное копирование. Для выполнения инкрементального копирования выберите в поле «Уровень» («Level») значение «Incremental», в поле «Пул» («Pool») — «TestIncr».
Ход выполнения любых заданий можно контролировать в разделе «Панель» («Dashboard»):
Запуск восстановления данных
Перейдем в раздел «Восстановление» («Restore») на вкладку «Восстановить на клиент» («Restore multiple files»). В поле «Клиент» («Client») выберем значение «bareos-fd». В поле «Задания резервного копирования » («Backup jobs») выберем желаемую точку восстановления. В поле «Объединить все наборы файлов клиента» («Merge all clients filesets») выберем значение «Нет» («No»). В поле «Папка восстановления на клиенте» («Restore location on client») укажем куда восстановить данные («D:/test_restore») и запустим восстановление, нажав «Restore».
ссылка на оригинал статьи https://habr.com/ru/post/549762/
Добавить комментарий