<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Публичное облако на базе VMware с управлением через vCloud Director
На главную
61c46507-12c7-4300-a301-bd8bc30c7c19
Инструкции для серверов

Установка Bareos

Bareos – это система резервного копирования с открытым исходным кодом, позволяющая создавать, управлять и восстанавливать бэкапы для серверов. В этой статье рассмотрим процесс установки и настройки Bareos для автоматизированного резервного копирования данных как на выделенном, так и на облачном сервере, используя S3-хранилище для хранения бэкапов.

Создание ресурсов

Для начала создадим облачный сервер, на котором будет работать Bareos.

Так как на сервере будут работать несколько ресурсоемких служб, включая базу данных и Bareos Storage Director, оптимальная конфигурация будет следующей:

  • vCPU: 2
  • RAM: 4 ГБ
  • Диск: 50 ГБ SSD
  • ОС: Ubuntu 22.04 Jammy

Однако вы можете выбрать другую конфигурацию в зависимости от ваших потребностей, объема данных и частоты резервного копирования.

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

Если же Bareos будет использоваться для создания бэкапов облачных серверов, можно добавить сервер в существующую локальную сеть и во всей инструкции использовать его локальный IP-адрес.

Далее создадим S3-бакет. Для наших целей идеально подойдет холодный класс хранилища. Учтите, что даже если используется инкрементное резервное копирование, в хранилище должен помещаться как минимум один полный бэкап всего сервера, а также ежедневные изменения, умноженные на количество дней хранения.

Настройка сервера

Bareos использует PostgreSQL для хранения конфигурации и информации о бэкапах. Чтобы упростить установку, мы воспользуемся Docker Compose. В результате установим саму СУБД и Adminer — веб-интерфейс для работы с базой.

Создание СУБД

Сначала установим Docker и Docker Compose:

apt install -y docker.io docker-compose

Создадим манифест docker-compose.yml:

version: '3.8'

networks:
  bareos_network:
    driver: bridge

services:
  postgres:
    image: public.ecr.aws/docker/library/postgres:14-alpine
    container_name: postgres_db
    restart: unless-stopped
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: <ваш_пароль_администратора_бд>
    networks:
      - bareos_network
    ports:
      - "127.0.0.1:5432:5432"
    volumes:
      - ~/bareos_database:/var/lib/postgresql/data

  adminer:
    image: public.ecr.aws/docker/library/adminer:4
    container_name: adminer_ui
    restart: unless-stopped
    environment:
      ADMINER_DEFAULT_SERVER: postgres_db
      ADMINER_DEFAULT_DB: bareos
      ADMINER_DEFAULT_USER: bareos
      ADMINER_DEFAULT_DBTYPE: postgres
    networks:
      - bareos_network
    ports:
      - "8080:8080"
    depends_on:
      - postgres

volumes:
  postgres_data:
    driver: local

Укажите вместо <ваш_пароль_администратора_бд> пароль администратора базы данных.

Выполните команду для запуска контейнеров:

docker-compose up -d

После загрузки образов и запуска контейнеров убедитесь, что они работают:

docker ps

Вы должны увидеть примерно такой вывод:

CONTAINER ID   IMAGE                                              COMMAND                  CREATED          STATUS          PORTS                                       NAMES
a6fe992e70b4   public.ecr.aws/docker/library/adminer:4            "entrypoint.sh php -…"   1 minutes ago   Up 1 minutes   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   adminer_ui
fe683271e380   public.ecr.aws/docker/library/postgres:14-alpine   "docker-entrypoint.s…"   1 minutes ago   Up 1 minutes   127.0.0.1:5432->5432/tcp                    postgres_db

Установка Bareos

Добавим репозитории Bareos с помощью официального скрипта:

wget -qO- https://download.bareos.org/current/xUbuntu_22.04/add_bareos_repositories.sh | sh

Обновим список пакетов и установим необходимые компоненты:

apt update && apt install -y bareos bareos-webui bareos-storage-droplet

Во время установки появится запрос на настройку Postfix. Выберите No configuration.

Screenshot 02 24 25 16:06:24

Затем будет предложено настроить подключение к базе данных. Выберите No.

Screenshot 02 24 25 16:07:15

Настройка подключения к базе данных

Запустим инструмент для настройки подключения к базе данных:

dpkg-reconfigure bareos-database-common

В первом окне выберите Yes.

Screenshot 02 24 25 16:07:53

В качестве типа подключения укажите TCP/IP.

Screenshot 02 24 25 16:08:10

Так как база данных запущена на localhost, выберите его.

Screenshot 02 24 25 16:08:26

Если вы не меняли порт в docker-compose.yml, укажите 5432.

Screenshot 02 24 25 16:08:49

В качестве метода аутентификации администратора выберите password.

Screenshot 02 24 25 16:09:04

Для пользователя базы данных также выберите password.

Screenshot 02 24 25 16:09:20

Bareos использует базу данных с именем bareos и пользователя bareos.

Создадим базу данных.

Screenshot 02 24 25 16:09:44

Затем создадим пользователя.

Screenshot 02 24 25 16:10:02

Установим пароль пользователя.

Screenshot 02 24 25 16:10:24

Подтвердим пароль.

Screenshot 02 24 25 16:10:40

Теперь необходимо ввести данные администратора PostgreSQL, которые мы задавали в docker-compose.yml.

Имя пользователя: admin.

Screenshot 02 24 25 16:11:10

Введите пароль администратора PostgreSQL.

Screenshot 02 24 25 16:11:29

Пароль администратора потребуется ввести несколько раз в процессе настройки.

Чтобы убедиться, что база создана и работает, откройте браузер и перейдите по адресу http://<ip_сервера>:8080.

Залогиньтесь, используя имя пользователя bareos и ранее заданный пароль.

Screenshot 02 24 25 16:12:28

После авторизации должны отобразиться таблицы базы данных Bareos.

Screenshot 02 24 25 16:12:46

Теперь запустим службы:

systemctl enable --now bareos-director.service bareos-storage.service

Проверим, что службы работают, подключены к базе данных и не содержат ошибок:

bareos-dir -t -d100

Настройка веб-интерфейса Bareos WebUI

Для работы веб-интерфейса Bareos необходимо включить php8-fpm в Apache2.

Включите модули Apache для работы с PHP-FPM:

a2enmod proxy_fcgi setenvif

Активируйте конфигурацию PHP 8.1 FPM:

a2enconf php8.1-fpm

Перезагрузите Apache, чтобы изменения вступили в силу:

systemctl reload apache2

В Ubuntu AppArmor может блокировать доступ php-fpm к файлам веб-интерфейса. Разрешим необходимые пути:

cat > /etc/apparmor.d/local/php-fpm <<<"# Site-specific additions and overrides for 'php-fpm'
# bareos-webui
/usr/share/bareos-webui/** r,
/etc/bareos-webui/directors.ini r,
/etc/bareos-webui/configuration.ini r,
/var/lib/php8/sessions/** w,
"

Применим новые политики безопасности:

systemctl reload apparmor.service

Теперь необходимо создать пользователя bareos. Для его создания, воспользуемся утилитой bconsole:

bconsole

Создадим учетную запись admin для веб-интерфейса:

configure add console name=admin password=<пароль_пользователя> profile=webui-admin tlsenable=false

Вместо <пароль_пользователя> укажите желаемый пароль.

Применим изменения:

reload

Выйти из bconsole можно сочетанием клавиш Ctrl + D.

Теперь можно открыть браузер и перейти по адресу http://<ip_сервера>/bareos-webui. Войти в систему можно, используя ранее созданные учетные данные.

Screenshot 02 24 25 16:14:50

Подключение S3-хранилища к Bareos Storage Director

Создадим файл с параметрами подключения:

nano /etc/bareos/bareos-sd.d/device/droplet/timeweb-ru-1.profile

Добавим в него следующую конфигурацию:

host = s3.timeweb.cloud
use_https = false
access_key = <s3_access_key>
secret_key = <s3_secret_access_key>
pricing_dir = ""
backend = s3
aws_auth_sign_version = 2
aws_region = ru-1

Данные для заполнения (<s3_access_key> и <s3_secret_access_key>) можно найти в информации о бакете в панели управления.

Selection 184

Конфигурация бэкапного устройства

Создадим файл:

nano /etc/bareos/bareos-sd.d/device/S3_ObjectStorage.conf

Запишем в него информацию об устройстве. Укажите имя своего бакета в Device Options:

Device {
  Name = S3_ObjectStorage
  Media Type = S3_Object1
  Archive Device = S3 Object Storage
  Device Type = droplet
  Device Options = "profile=/etc/bareos/bareos-sd.d/device/droplet/timeweb-ru-1.profile,bucket=<имя_бакета>,chunksize=100M"
  Label Media = yes
  Random Access = yes
  Automatic Mount = yes
  Removable Media = no
  Always Open = no
  Maximum Concurrent Jobs = 1
}

Дадим пользователю Bareos доступ к этим файлам:

chown -R bareos:bareos /etc/bareos/bareos-sd.d/device

Bareos может не подключаться к хранилищу, если включён TLS. Отключим его, добавив TlsEnable=no и TlsRequire=no в следующие файлы.

Откроем файл bareos-sd.conf:

nano /etc/bareos/bareos-sd.d/storage/bareos-sd.conf

Изменим содержимое:

Storage {
  Name = bareos-sd
  Maximum Concurrent Jobs = 20
  TlsEnable = no
  TlsRequire = no
}

Откроем файл bareos-dir.conf:

nano /etc/bareos/bareos-sd.d/director/bareos-dir.conf

Изменим содержимое:

Director {
  Name = bareos-dir
  TlsEnable = no
  TlsRequire = no
  Password = "<sd_passwd>" # Этот пароль генерируется при установке и не требует изменений
  Description = "Director, who is permitted to contact this storage daemon."
}

Запомните или сохраните пароль, указанный в Password из bareos-dir.conf, он понадобится на следующем шаге.

Подключение Bareos Storage Daemon к Bareos Director

В bconsole подключим bareos-storage-daemon к bareos-director, используя ранее сохранённый пароль:

bconsole

Выполним команду:

configure add storage name=S3_Object Address=<ip_сервера_бэкапов> Password=<sd_passwd> Device=S3_ObjectStorage MediaType=S3_Object1

В команде укажите <ip_сервера_бэкапов> и <sd_passwd>.

Примените конфигурацию:

reload

Для применения изменений перезапустим службы:

systemctl restart bareos-storage.service && systemctl reload bareos-director.service

Обратите внимание, что Bareos читает файлы конфигурации только в ASCII-кодировке. Если вы редактировали файлы способом, отличным от указанного в инструкции, может возникнуть ошибка. Чтобы это исправить, необходимо изменить кодировку файлов. Сделать это можно при помощи команды:

iconv -f utf-8 -t ascii//TRANSLIT /path/to/my/file.conf -o /path/to/my/file.conf

Настройка бэкапов

Создание пользователя для соединения

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

Войдём в bconsole:

bconsole

Выполним команду:

configure add client name=BackupUser address=<usr_ip> password=<usr_pswd> TlsEnable=no TlsRequire=no

В команде укажите два параметра:

  • <usr_ip> — внешний IP-адрес сервера, для которого будут создаваться бэкапы.

  • <usr_pswd> — пароль для подключения. Его нужно придумать.

Примените изменения:

reload

После выполнения команды в консоли появится подобный вывод:

Selection 185

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

grep -r Password /etc/bareos/bareos-dir-export/client/

Настройка пулов и вольюмов

Для хранения данных Bareos использует pool и volume:

  • Pool – хранилище резервных копий, ограниченное размером S3-бакета.
  • Volume – единица хранения данных, изначально предназначенная для сменных носителей, таких как ленты.

В нашем случае:

  • Размер volume (<i>) — должен быть равен полному объёму информации сервера, который мы собираемся бэкапить.
  • Количество volumes (<n>) — определяет, сколько копий данных необходимо хранить.
  • VolumeRetention (<r>) — время хранения резервной копии в днях, после которого она будет помечена для перезаписи.

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

Настройка пула для полных бэкапов

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

nano /etc/bareos/bareos-dir.d/pool/Full.conf

Отредактируйте, приведя к виду:

Pool {
  Name = Full
  Pool Type = Backup
  Recycle = yes # Bareos может автоматически перераспределять объемы
  AutoPrune = yes # Удалять устаревшие объемы
  Volume Retention = <r> days # Срок хранения полных бэкапов
  Maximum Volume Bytes = <i>G # Максимальный размер volume
  Maximum Volumes = <n> # Максимальное количество volume в пуле
  Label Format = "Full-" # Метка volume, например "Full-001"
}

Настройка пула для инкрементальных бэкапов

Откроем файл:

nano /etc/bareos/bareos-dir.d/pool/Incremental.conf

Приведем к виду:

Pool {
  Name = Incremental
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = <r> days
  Maximum Volume Bytes = <i>G
  Maximum Volumes = <n>
  Label Format = "Incremental-"
}

Создание FileSet

FileSet – это конфигурационный файл, в котором указывается, какие именно файлы или базы данных необходимо включить в бэкап, а также какие параметры будут использоваться при их копировании (например, уровень сжатия или метод проверки целостности данных).

FileSet для резервного копирования файлов в /home

Этот файлсет используется для бэкапа пользовательских данных, хранящихся в /home.

Создадим файл:

nano /etc/bareos/bareos-dir.d/fileset/HomeFileset.conf

Добавим следующий конфиг:

FileSet {
  Name = "HomeFileset"
  Include {
	Options {
  	Signature = MD5
  	Compression = LZ4 
	}
	File = "/home" 
  }
}

Здесь:

  • Signature = MD5 — включает проверку целостности данных.

  • Compression = LZ4 — используется быстрый алгоритм сжатия, который снижает нагрузку на CPU.

  • File = "/home" — указывает, что резервное копирование будет выполняться для /home.

FileSet для резервного копирования баз данных MySQL

Для бэкапа MySQL необходимо использовать специальный плагин, позволяющий корректно копировать базы без прерывания работы сервера.

Создадим файл:

nano /etc/bareos/bareos-dir.d/fileset/MysqlFileset.conf

Добавим конфигурацию:

FileSet {
  Name = "MysqlFileset"
  Include {
	Options {
  	Signature = MD5
  	Compression = LZ4
	}
	Plugin = "python3"
	":module_name=bareos-fd-percona-xtrabackup"
	":mycnf=/root/.my.cnf"
  }
}

Здесь:

  • Plugin = "python3" — указывает, что для создания бэкапа будет использоваться плагин на Python.

  • ":module_name=bareos-fd-percona-xtrabackup" — использует Percona XtraBackup для создания бэкапа без остановки MySQL.

  • ":mycnf=/root/.my.cnf" — указывает путь к файлу конфигурации MySQL, содержащему учетные данные.

FileSet для резервного копирования баз данных PostgreSQL

Для PostgreSQL также используется специальный плагин, позволяющий создавать бэкапы без прерывания работы сервера.

Создадим файл:

nano /etc/bareos/bareos-dir.d/fileset/PsqlFileset.conf

Добавим:

FileSet {
  Name = "PostgresUserDBSet"
  Include {
	Options {
  	Signature = MD5
  	Compression = LZ4
	}
	Plugin = "python3"
	":module_name=bareos-fd-postgresql"
	":db_host=/run/postgresql/"
	":wal_archive_dir=/var/lib/pgsql/wal_archive/"
	":db_user=<psql_user>"
	":db_password=<psql_passwd>"
  }
}

Замените:

  • <psql_user> — на имя пользователя PostgreSQL.

  • <psql_passwd> — на пароль от базы данных.

Параметры:

  • ":db_host=/run/postgresql/" — указывает, что PostgreSQL работает через Unix-сокеты.

  • ":wal_archive_dir=/var/lib/pgsql/wal_archive/" — включает копирование WAL-журналов.

Установка прав для пользователя

Чтобы Bareos мог прочитать созданные файлы, дадим пользователю bareos необходимые права:

chown -R bareos:bareos /etc/bareos/bareos-dir.d/fileset

И обновить конфигурацию сервера bareos чтобы прочитать новые файлсеты:

systemctl reload bareos-director.service

Создание расписания бэкапов

Bareos позволяет задать расписание резервного копирования через параметр Schedule.

Запустим bconsole:

bconsole

Создадим правило:

configure add schedule name=BackupSchedule Run="Level=Full 3/3 at 00:00" Run="Level=Incremental daily at 01:00"

Применим изменение:

reload

Мы задали расписание:

  • Полный бэкап (Level=Full) выполняется раз в 3 дня в 00:00.

  • Инкрементальный бэкап (Level=Incremental) выполняется ежедневно в 01:00.

Настройка заданий резервного копирования

Bareos использует два типа конфигурационных файлов для бэкапов:

  • JobDefs — содержит общие настройки, которые могут использоваться в нескольких заданиях.

  • Job — конкретное задание резервного копирования с указанием клиентских данных.

Создание общих правил для заданий (JobDefs)

Открываем bconsole:

bconsole

Добавляем правило:

configure add jobdefs name=DefaultBackupJob Storage=S3_Object Type=Backup Level=Incremental Pool=Incremental FullBackupPool=Full IncrementalBackupPool=Incremental Schedule=BackupSchedule Messages=Standard Priority=10

Применим изменение:

reload

Описание параметров:

  • Storage=S3_Object — указывает, что бэкапы будут храниться в S3.

  • Level=Incremental — по умолчанию бэкап выполняется как инкрементальный.

  • Pool=Incremental — используется пул для инкрементальных копий.

  • FullBackupPool=Full — полные копии отправляются в пул Full.

  • Schedule=BackupSchedule — задает расписание.

  • Messages=Standard — формат логирования.

Создание задания для резервного копирования /home

Добавляем задачу:

configure add job name=BackupJob Client=BackupUser JobDefs=DefaultBackupJob FileSet=HomeFileset

Применим изменение:

reload

Здесь:

  • Client=BackupUser — указывает, что бэкап выполняется для клиента BackupUser.

  • FileSet=HomeFileset — задает файловый набор с путями к данным.

Создание задания для восстановления данных

Чтобы можно было восстановить файлы, создадим задание RestoreJob:

configure add job name=RestoreJob Type=Restore Client=BackupUser FileSet=HomeFileset Storage=S3_Object Pool=Incremental Messages=Standard Where="/" MaximumConcurrentJobs=10

Применим изменение:

reload

Параметры:

  • Type=Restore — задает, что это задание восстановления.

  • Storage=S3_Object — указывает хранилище.

  • Pool=Incremental — используется пул инкрементальных бэкапов.

  • Where="/" — файлы восстанавливаются в корневую директорию.

Очистка ненужных конфигурационных файлов

Bareos по умолчанию создает демонстрационные конфигурации, которые не используются в продакшен-среде. Их необходимо удалить:

rm -f /etc/bareos/bareos-dir.d/jobdefs/DefaultJob.conf \
      /etc/bareos/bareos-dir.d/job/BackupCatalog.conf \
      /etc/bareos/bareos-dir.d/job/backup-bareos-fd.conf \
      /etc/bareos/bareos-dir.d/job/RestoreFiles.conf

Очистим базу данных от неиспользуемых записей:

bareos-dbcheck -b -f

Настройка сервера, который будем бэкапить

Установка Bareos File Daemon

Bareos использует службу bareos-filedaemon, которая должна быть установлена на сервере, с которого будут создаваться резервные копии.

Установка в Ubuntu

Добавим репозиторий Bareos:

wget -qO- https://download.bareos.org/current/xUbuntu_22.04/add_bareos_repositories.sh | sh

Обновим список пакетов и установим Bareos File Daemon:

apt update && apt install bareos-filedaemon -y

Включим и запустим Bareos File Daemon:

systemctl enable --now bareos-filedaemon.service

Установка в RHEL

Добавим правила для файрвола, открыв необходимые порты:

firewall-cmd --permanent --add-port={80,443,9101,9102,9103}/tcp && firewall-cmd --reload

Добавим репозиторий Bareos:

wget https://download.bareos.org/current/EL_9/bareos.repo -O /etc/yum.repos.d/bareos_EL_9.repo

Обновим кеш пакетов и установим Bareos File Daemon:

yum makecache && yum install bareos-filedaemon -y

Включим и запустим Bareos File Daemon:

systemctl enable --now bareos-filedaemon.service

Подключение к серверу бэкапов

Теперь необходимо настроить подключение к Bareos Director, используя пароль, который был получен на этапе создания пользователя.

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

nano /etc/bareos/bareos-fd.d/director/bareos-dir.conf

Указываем следующие параметры:

Director {
  Name = "bareos-dir"
  Password = "[md5]fcbb587d250fc823c9b6445891a2acd8"
  TlsEnable = no
  TlsRequire = no
}

Обязательно добавьте параметры TlsEnable=no и TlsRequire=no, иначе сервер бэкапов не сможет подключиться.

Перезапускаем службу, чтобы применить изменения:

systemctl restart bareos-filedaemon.service

Включение поддержки плагинов на клиенте

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

Открываем файл:

nano /etc/bareos/bareos-fd.d/client/myself.conf

Приводим его к следующему виду:

Client {
  Name = name
  TLS Enable = no
  TLS Require = no
  Plugin Directory = "/usr/lib64/bareos/plugins"
  Plugin Names = "python3"
}

Применяем изменения:

systemctl restart bareos-filedaemon.service

Установка пакетов для резервного копирования баз данных

MySQL

Для создания резервных копий MySQL потребуется Percona XtraBackup, а также два плагина: bareos-filedaemon-python3-plugin и bareos-filedaemon-percona-xtrabackup-python-plugin.

Установка в Ubuntu

Скачаем пакет Percona XtraBackup:

wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/debian/jammy/x86_64/percona-xtrabackup-80_8.0.32-26-1.jammy_amd64.deb

Установим пакет:

dpkg -i percona-xtrabackup-80_8.0.32-26-1.jammy_amd64.deb

Установим плагины Bareos для работы с Percona XtraBackup:

apt install bareos-filedaemon-python3-plugin bareos-filedaemon-percona-xtrabackup-python-plugin -y

Установка в RHEL

Скачаем пакет Percona XtraBackup:

wget https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.32-26/binary/redhat/9/x86_64/percona-xtrabackup-80-8.0.32-26.1.el9.x86_64.rpm

Установим пакет:

yum localinstall percona-xtrabackup-80-8.0.32-26.1.el9.x86_64.rpm

Установим плагины Bareos для работы с Percona XtraBackup:

yum install bareos-filedaemon-python3-plugin bareos-filedaemon-percona-xtrabackup-python-plugin -y

PostgreSQL

Для резервного копирования PostgreSQL необходимо установить пакеты bareos-filedaemon-python3-plugin, bareos-filedaemon-postgresql-python-plugin и pg8000 — драйвер Python для подключения к PostgreSQL.

Установка в Ubuntu

Установим плагины Bareos для PostgreSQL:

apt install bareos-filedaemon-python3-plugin bareos-filedaemon-postgresql-python-plugin -y

Установим pip для управления пакетами Python:

apt install python3-pip -y

Установим библиотеку pg8000 для работы с PostgreSQL:

pip3 install pg8000

Установка в RHEL

Установим плагины Bareos для PostgreSQL:

yum install bareos-filedaemon-python3-plugin bareos-filedaemon-postgresql-python-plugin -y

Установим pip для управления пакетами Python:

yum install python3-pip -y

Установим библиотеку pg8000 для работы с PostgreSQL:

pip3 install pg8000

Настройка WAL-архивации в PostgreSQL

Для корректного резервного копирования PostgreSQL необходимо включить WAL-архивацию.

Открываем конфигурацию PostgreSQL:

nano /etc/postgresql/14/main/postgresql.conf

Приводим параметры к виду:

...
max_wal_size = 10GB
min_wal_size = 100MB
archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/wal_archive/%f'
archive_timeout = 60
...

Здесь:

  • archive_mode = on — включает архивирование WAL.

  • archive_command = 'cp %p /var/lib/pgsql/wal_archive/%f' — копирует WAL-журналы в /var/lib/pgsql/wal_archive/.

  • archive_timeout = 60 — задаёт интервал в 60 секунд для принудительного сохранения WAL.

Создадим директорию для хранения архивных WAL-файлов:

mkdir -p /var/lib/pgsql/wal_archive

Настроим права доступа:

chown postgres:postgres /var/lib/pgsql/wal_archive && chmod 700 /var/lib/pgsql/wal_archive

Применим изменения:

systemctl reload postgresql

Если к базе данных ограничен внешний доступ, необходимо настроить доступ к базе с сервера бэкапов. Для этого отредактируйте файл:

nano /etc/postgresql/14/main/pg_hba.conf

Добавляем строку с IP-адресом сервера бэкапов:

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all <bareos_external_ip>/32 md5

Где <bareos_external_ip> — IP-адрес сервера бэкапов.

Перезапускаем PostgreSQL:

systemctl restart postgresql

На этом настройка Bareos завершена. Мы установили и настроили сервер бэкапов, подключили клиентский сервер, настроили файловые наборы, расписание и S3-хранилище. Теперь система автоматически создаёт резервные копии и позволяет восстанавливать данные в случае необходимости.

Ручное создание резервной копии

Для проверки можно запустить тестовый бэкап вручную из консоли bconsole или через веб-интерфейс.

Создание бэкапа из консоли

  1. Открываем консоль управления Bareos:
bconsole
  1. Запускаем задание:
run
  1. Выбираем нужное задание (например, BackupJob) и подтверждаем запуск, введя yes.
  2. Дожидаемся завершения бэкапа и проверяем его статус:
status job
  1. Чтобы посмотреть логи последнего задания, используем:
messages

Создание бэкапа через веб-интерфейс

  1. Открываем Bareos WebUI — http://<ip_сервера>/bareos-webui.
  2. В меню переходим в «Jobs» → «Run».
  3. Выбираем нужное задание, клиент и подтверждаем запуск.

Screenshot 02 25 25 13:17:04

  1. Ожидаем завершения выполнения задания и проверяем его статус во вкладке «Jobs» → «Show».
Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев