Настройка резервного копирования на внешний HDD, используя Bareos, для Windows 10

от автора

Лирическое вступление

До недавнего беспокойного времени для создания резервных копий критичных данных я использовал стандартное средство операционной системы Windows 10 — «История файлов» («File history»). Периодически данные со стационарного ПК сохранялись на внешний HDD, подключаемый через USB интерфейс, что меня вполне устраивало и успокаивало мою психику.

Одним субботним утром меня озадачил вопрос: «А смогу ли я восстановить свои данные на другой системе?» В качестве испытуемого был выбран ноутбук с системой Windows 10. После большой небольшой пляски с бубном данные были восстановлены, но неприятным сюрпризам стало то, что при сравнении количества папок и файлов было обнаружено расхождение. Данный факт меня опечалил и побудил подойти к вопросу организации резервного копирования данных более ответственно. После непродолжительного поиска в сети Internet мой выбор пал на Open Source систему Bareos. Процесс настройки системы не был для меня простым и интуитивным, было затрачено значительное количество времени. Память человеческая имеет прекрасную способность забывать информацию, что побудило меня составить «шпаргалку» на будущее, коей спешу с Вами поделиться.

Описание задачи

На стационарном ПК с ОС Windows 10 x64 на локальном диске DATA (D:) расположен каталог проекта «test». Необходимо организовать резервное копирование всех файлов вышеуказанного проекта на внешний HDD — BACKUP (E:), за исключением подкаталогов «target».

Разработка проекта ведётся в будние дни, поэтому копирование производить в автоматическом режиме по графику:

На компьютере на локальном диске 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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *