Как стать автором
Обновить

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

Время на прочтение5 мин
Количество просмотров16K

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

До недавнего беспокойного времени для создания резервных копий критичных данных я использовал стандартное средство операционной системы 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".

Теги:
Хабы:
+4
Комментарии21

Публикации

Изменить настройки темы

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн