Backup linux server centos

Резервное копирование сервера CentOS 7 с помощью Bacula

Данное руководство научит создавать резервные копии удаленного хоста CentOS 7 с помощью Bacula. Вы узнаете, как установить Bacula Client на удаленный хост и откорректировать настройки существующего хоста Bacula Server.

Требования

  • Компоненты Bacula Server, установленные согласно этому руководству.
  • Частная сеть для взаимодействия клиента и сервера Bacula.
  • FQDN серверов должен указывать на внутренний IP-адрес. Если у вас нет соответствующих настроек DNS, вместо этого можно использовать IP-адреса серверов.
  • В руководстве используются условные данные: сервер Bacula будет называться BaculaServer, или сервер бэкапа; удаленные хосты называются ClientHost, или клиенты бэкапа.

Настройка Bacula Director

Перейдите на BaculaServer.

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

Создайте каталог для конфигурационных файлов Bacula:

sudo mkdir /etc/bacula/conf.d

Откройте конфигурационный файл Bacula Director:

sudo vi /etc/bacula/bacula-dir.conf

В конец файла вставьте строку:

@|»find /etc/bacula/conf.d -name ‘*.conf’ -type f -exec echo @<> \;»

Сохраните и закройте файл. Теперь Director сможет искать дополнительные настройки в других файлах каталога /etc/bacula/conf.d. Любой файл с расширением .conf будет восприниматься как часть конфигурации.

Пул RemoteFile

Добавьте в настройку Bacula Director новый пул для резервного копирования удаленных серверов.

sudo vi /etc/bacula/conf.d/pools.conf

Добавьте ресурс Pool:

Pool <
Name = RemoteFile
Pool Type = Backup
Label Format = Remote-
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
>

Сохраните и закройте файл. Эти строки определяют пул RemoteFile, который будет использоваться для резервного копирования клиентов. Все параметры можно отладить согласно вашим требованиям.

Пока что перезапускать Bacula Director не нужно. Просто убедитесь, что в файле нет ошибок.

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Установка и настройка Bacula Client

Примечание: Этот раздел нужно выполнить на всех клиентах бэкапа.

Установите пакет bacula-client.

sudo yum install bacula-client

Эта команда установит File Daemon (FD).

Настройка клиента

Перед настройкой File Daemon нужно иметь в виду следующую условную информацию, которая будет использоваться в течение оставшейся части этого руководства:

  • Имя хоста клиента: ClientHost.
  • FQDN клиента: client_private_FQDN (в формате clienthost.private.example.com).
  • Имя сервера Bacula: BackupServer

Эти условные данные нужно заменять своими данными.

Далее нужно будет добавить в настройки File Daemon пароль, который позволит Bacula Director подключиться нему. Сгенерируйте случайный пароль (можно пропустить этот шаг и создать свой собственный пароль):

date +%s | sha256sum | base64 | head -c 33 ; echo

Скопируйте полученный пароль, чтобы использовать его в дальнейшем.

Читайте также:  Системный администратор линукс курсы

Откройте конфигурационный файл File Daemon:

sudo vi /etc/bacula/bacula-fd.conf

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

Найдите ресурс Director с именем вашего клиентского хоста (например, ClientHost-dir). Измените значение параметра Name и укажите в нем имя хоста сервера бэкапа с суффиксом –dir. Например:

Director <
Name = BackupServer-dir
Password = «Y2Q5ODUyMWM0YTFhYjA3NTcwYmU5OTA4Y»
>

Затем нам нужно откорректировать один параметр в ресурсе FileDaemon. Измените параметр FDAddress, укажите в нем FQDN клиентской машины. Параметр Name уже должен содержать правильное имя демона FD клиента. Ресурс должен выглядеть примерно так (замените условные данные):

FileDaemon < # this is me
Name = ClientHost-fd
FDAddress = client_private_ip
FDport = 9102 # where we listen for the director
WorkingDirectory = /var/spool/bacula
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
>

Также необходимо настроить демон для передачи сообщений логов на сервер резервного копирования. Найдите ресурс Messages и измените параметр director; укажите в нем имя хоста сервера бэкапа с суффиксом -dir. Ресурс должен выглядеть примерно так:

Messages <
Name = Standard
director = BackupServer-dir = all, !skipped, !restored
>

Сохраните и закройте файл. Клиент и File Daemon настроены.

Проверьте ошибки в файле:

sudo bacula-fd -tc /etc/bacula/bacula-fd.conf

Если команда не сообщила вам об ошибках, значит, в файле их нет.

Перезапустите демон, чтобы обновить настройки.

sudo systemctl restart bacula-fd

Теперь настройте каталог, в котором Bacula Server сможет хранить восстановленные файлы. Создайте структуру каталогов и заблокируйте доступ к ней:

sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

Добавление файлов FileSet

Примечание: Данный раздел нужно выполнить на сервере.

FileSet определяет список файлов и каталогов, которые нужно включить или исключить из резервного копирования.

Если вы выполнили руководство по установке Bacula Server, у вас уже есть FileSet по имени Full Set. Если вы хотите, чтобы система Bacula копировала почти все файлы системы, можете использовать этот FileSet в задачах. Но обычно для восстановления не нужно иметь бэкап всех файлов, потому этот набор желательно сократить, чтобы сэкономить дисковое пространство.

Тщательный отбор файлов, включенных в FileSet, экономит не только объем дискового пространства, но и время, требуемое для запуска задания резервного копирования. Это также может упростить восстановление, поскольку вам не нужно просматривать весь Full Set, чтобы найти файлы, которые нужно восстановить.

Попробуйте создать новые ресурсы FileSet.

На сервере Bacula откройте файл filesets.conf в конфигурационном каталоге Bacula Director:

sudo vi /etc/bacula/conf.d/filesets.conf

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

FileSet <
Name = «Home and Etc»
Include <
Options <
signature = MD5
compression = GZIP
>
File = /home
File = /etc
>
Exclude <
File = /home/bacula/not_important
>
>

  • Имя FileSet должно быть уникальным.
  • В FileSet нужно указать все файлы или разделы, бэкап которых нужно выполнить.
  • Чем меньше в FileSet лишних и ненужных файлов, тем продуктивнее резервное копирование.
  • Количество FileSet не ограничено.

Добавление задач Client и Backup на сервер Bacula

Чтобы добавить клиентский хост в настройки сервера Bacula, создайте в настройках Bacula Director новые ресурсы – Client и Job.

Читайте также:  Как открыть дисковод без кнопки windows

sudo vi /etc/bacula/conf.d/clients.conf

Добавление ресурса Client

Ресурс Client предоставляет Director информацию, необходимую ему для подключения к хосту клиента. Сюда входят имя, адрес и пароль File Daemon клиента.

Вставьте в файл этот ресурс Client.

Client <
Name = ClientHost-fd
Address = client_private_FQDN
FDPort = 9102
Catalog = MyCatalog
Password = «Y2Q5ODUyMWM0YTFhYjA3NTcwYmU5OTA4Y» # password for Remote FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
>

Примечание: Замените условные данные.

Создание задачи Backup

Задача Backup определяет клиента и файлы, которые нужно скопировать. Имя задачи должно быть уникальным.

Вставьте задачу в файл conf.d/clients.conf.

Job <
Name = «BackupClientHost»
JobDefs = «DefaultJob»
Client = ClientHost-fd
Pool = RemoteFile
FileSet=»Home and Etc»
>

Это создаст задачу резервного копирования под названием BackupClientHost, которая будет поддерживать резервные копии домашнего каталога и каталога etc хоста клиента, как определено в FileSet под названием Home and Etc. Задача будет использовать настройки, указанные в ресурсе JobDefs по имени DefaultJob и в RemoteFile по имени DefaultJob, которые определены в основном файле bacula-dir.conf. По умолчанию задачи с параметром JobDefs = “DefaultJob” будут выполняться еженедельно.

Сохраните и закройте файл.

Проверка настроек Bacula Director

Убедитесь, что в файле Bacula Director нет ошибок:

sudo bacula-dir /etc/bacula/bacula-dir.conf

Если команда не вывела сообщений об ошибках, значит, все параметры записаны правильно.

Перезапуск Bacula Director

Чтобы обновить настройки, перезапустите Bacula Director.

sudo systemctl restart bacula-dir

Теперь сервер Bacula сможет создавать резервные копии удаленного хоста.

Тестирование подключения клиента

Теперь нужно убедиться, что Bacula Director может подключиться к клиенту Bacula.

На сервере Bacula откройте консоль Bacula:

sudo bconsole
status client
Select Client resource: ClientHost-fd
The defined Client resources are:
1: BackupServer-fd
2: ClientHost-fd
Select Client (File daemon) resource (1-2): 2

Команда должна сразу отобразить состояние File Daemon клиента. Если этого не произошло и возникла ошибка, проверьте настройки клиента и сервера Bacula.

Запуск тестовой задачи

Запустите задачу на сервере Bacula.

Команда предложит выбрать задачу, которую нужно запустить. Выберите одну из задач, например 4.

Select Job resource: BackupClientHost
The defined Job resources are:
1: BackupLocalFiles
2: BackupCatalog
3: RestoreLocalFiles
4: BackupClientHost
Select Job resource (1-4): 4

Confirmation prompt:
OK to run? (yes/mod/no): yes

Проверка сообщений и состояния

После запуска задачи Bacula создаст сообщения, в которых хранится вывод, сгенерированный задачей.

Чтобы проверить сообщения, введите:

В сообщениях должно быть указано «No prior Full backup Job record found» и что задача резервного копирования запустилась. Если при запуске задачи что-то пошло не так, в сообщениях вы найдете подсказки по устранению неполадок.

Также вы можете узнать состояние задачи. Для этого нужно запросить состояние Director. Введите в bconsole:

Состояние OK значит, что задача выполнена успешно.

Восстановление данных

Создав резервную копию, важно проверить ее восстановление. Команда restore позволяет восстанавливать скопированные файлы.

Введите в Bacula Console:

На экране появится меню, в котором можно выбрать резервный набор, который необходимо восстановить. Поскольку у вас есть только одна резервная копия, выберите вариант 5, «Select the most recent backup»:

Select item (1-13):
5

Затем будет предложено выбрать клиента. Выберите удаленный хост ClientHost-fd.

Select the Client: ClientHost-fd
Defined Clients:
1: BackupServer-fd
2: ClientHost-fd
Select the Client (1-2): 2

Читайте также:  Выключить секунды windows 10

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

Поскольку для восстановления использовалась команда restore all, все скопированные файлы уже выбраны. Файлы, которые входят в список восстанавливаемых, отмечены звездочкой *.

Чтобы откорректировать список файлов, вы можете перемещаться и просматривать содержимое с помощью команд cd и ls, а также добавлять и исключать файлы с помощью команд mark и unmark.

Чтобы получить полный список команд, введите help.

Выбрав все необходимые файлы, введите:

OK to run? (yes/mod/no):
yes

Проверка сообщений и состояния

Как и после резервного копирования, после восстановления нужно проверить сообщения и состояние Director.

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

Проверьте состояние Director:

Чтобы закрыть Bacula Console, введите:

Если восстановление прошло правильно, вы найдете файлы в каталоге /bacula/restore на клиенте. После тестирования восстановленные файлы можно удалить.

Заключение

Теперь у вас есть сервер и клиент Bacula. Вы можете самостоятельно отладить FileSet, чтобы обеспечить своевременное резервное копирование всех необходимых файлов.

Источник

Резервное копирование Linux сервера.

Театр начинается с вешалки, а сервер — с резервных копий! Если у вас нет резервных копий (backup), считайте, что вы ездите на автомобиле без запасного колеса.
Я написал ряд статей по созданию бекапа сайта (базы данных и всех файлов). Теперь настало время рассказать как сделать копию всего сервера, со всеми программами, приложениями, файлами конфигурации и данными пользователей.
Один из вариантов — это воспользоваться утилитой Mondo Rescue, которая специально создана для резервного копирования и клонирования серверов. Она бесплатная, с открытым исходным кодом, позволяет легко создать полную копию всего Linux сервера в формате ISO на CD, DVD, USB, HDD или NFS. А также позволяет быстро восстановить данную копию на свой сервер. При необходимости можно выбрать восстановление лишь отдельных файлов. Основной плюс данной системы — это простота использования, создать полный бекап сервера можно не прерывая его работу.

Установка MondoRescue на CentOS

Сначала необходимо установить репозиторий:

Далее запускаем установку утилиты:

Создание резервной копии сервера

От имени root запускаем команду:

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

Если выбрали жесткий диск, то укажите место для сохранения ISO образов.

Выберите тип архива

Настройте степень сжатия

Укажите размер образа

Отредактируйте название файлов ISO образов

Настройте, что хотите резервировать

.. а что не попадет в архив

Укажите папку временных фалов

Подтвердите начало создания резервной копии сервера

Процесс архивации может занять продолжительное время

По его окончании вы получите следующее сообщение

Теперь осталось скопировать полученный(ые) ISO образ(ы) в надежное место.

Восстановление сервера из резервной копии

Для восстановления системы требует загрузиться с созданного ISO образа и выбрать режим «nuke» для автоматического восстановления.

Источник

Оцените статью