UrBackup

Материал из ALT Linux Wiki

UrBackup — это простая в настройке кроссплатформенная система резервного копирования типа клиент-сервер.

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

Примечание: В настоящее время резервное копирование образа предназначено для резервного копирования загрузочного тома (C:) систем Windows. Другие данные должны быть скопированы и восстановлены с помощью резервного копирования файлов.


UrBackup предоставляет веб-интерфейс для управления резервными копиями.

Установка

Сервер UrBackup

Установить пакет urbackup-server:

# apt-get install urbackup-server

Создать каталог для резервных копий:

# mkdir -p /mnt/backups

Каталог должен принадлежать пользователю urbackup и у него должны быть права на чтение/запись:

# chown -R urbackup:urbackup /mnt/backups

Запустить сервер UrBackup:

# systemctl enable --now urbackup-server
Примечание: По умолчанию UrBackup прослушивает порты 55413 и 55414:
# netstat -lnpt | grep urbackupsrv
tcp        0      0 0.0.0.0:55413               0.0.0.0:*                   LISTEN      4184/urbackupsrv    
tcp        0      0 0.0.0.0:55414               0.0.0.0:*                   LISTEN      4184/urbackupsrv    
tcp        0      0 :::55413                    :::*                        LISTEN      4184/urbackupsrv    
tcp        0      0 :::55414                    :::*                        LISTEN      4184/urbackupsrv


Веб-интерфейс будет доступен по адресу http://<IP-сервера>:55414:

Веб-интерфейс UrBackup

Внимание! Если появляется ошибка: «Каталог, где UrBackup будет сохранять резервные копии недоступен….», следует изменить путь к каталогу резервных копий в Настройках, либо изменить права доступа к нему.


Примечание: Сразу после установки доступ к веб-интерфейсу сервера UrBackup будет возможен без аутентификации. Чтобы в дальнейшем требовался ввод имени пользователя и пароля необходимо создать администратора (перейти на вкладку «Настройки» → «Пользователи» и нажать кнопку «Создать»):


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


Клиент UrBackup

Установить пакет urbackup-client:

# apt-get install urbackup-client

Запустить клиент UrBackup:

# systemctl enable --now urbackup-client

Локальные клиенты будут обнаружены сервером автоматически и появится в веб-интерфейсе на вкладке «Статус»:

Клиент на сервере UrBackup

Настройка

В веб-интерфейсе на вкладке «Настройки»→«Главные» можно изменять настройки UrBackup. Некоторые настройки влияют только на сервер, а некоторые влияют как на клиент, так и на сервер. Для этих настроек администратор может установить значения по умолчанию или переопределить настройки клиента.

На вкладке «Сервер» можно указать каталог для хранения резервных копий:

Настройки UrBackup. Вкладка «Сервер»

На вкладке «Файловые бэкапы» можно указать настройки файловых резервных копий, в том числе каталоги, которые будут бэкапироваться на клиенте (каталоги разделяются ;):

Настройки UrBackup. Вкладка «Файловые бэкапы»

Для более удобного администрирования можно создать несколько групп, распределить клиенты по группам, и задать настройки отдельно для каждой группы клиентов:

Настройка группы клиентов UrBackup

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

Бэкап будет производиться на основании общих установок.

Бэкап можно также произвести вручную, отметив клиент и выбрав тип бэкапа в выпадающем списке:

Вкладка «Статус». Запуск резервного копирования

Более подробно отслеживать активность резервного копирования можно на вкладках «В работе», «Бэкапы» и «Логи»:

Вкладка «В работе»

Отчёты/содержимое резервных копий можно просмотреть на вкладке «Бэкапы»:

Вкладка «Бэкапы»

Выбрав клиента, можно просмотреть список его бэкапов:

Список бэкапов host-155

Примечание: Если отметка в столбце «Архивировано» установлена, резервная копия архивируется. Пока резервная копия заархивирована, её нельзя удалить средствами UrBackup.


Выбрав бэкап, можно просмотреть его содержимое:

Содержимое бэкапа

Резервные копии сохраняются в каталоге, который был указан в веб-интерфейсе. В этом каталоге для каждого клиента создается свой подкаталог.

Образы дисковых разделов хранятся в виде файлов в формате vhdz (имя файла будет иметь вид: Image_<Drive>_<YYMMDD-HHMM>.vhdz):

# ls -l /mnt/backups/PK1/220121-1456_Image_C/
итого 14730884
-rwxr-x--- 1 urbackup urbackup 15080483897 янв 21 15:27 Image_C_220121-1456.vhdz
-rwxr-x--- 1 urbackup urbackup     1310700 янв 21 14:56 Image_C_220121-1456.vhdz.cbitmap
-rwxr-x--- 1 urbackup urbackup     2621376 янв 21 15:27 Image_C_220121-1456.vhdz.hash
-rwxr-x--- 1 urbackup urbackup         556 янв 21 14:56 Image_C_220121-1456.vhdz.mbr
-rwxr-x--- 1 urbackup urbackup           0 янв 21 15:27 Image_C_220121-1456.vhdz.sync

Резервные копии файлов находятся в подкаталогах <YYMMDD-HHMM>. Каталог current является ссылкой на последнюю резервную копию. Резервные копии папок с файлами сохраняются в открытом виде:

# ls /mnt/backups/host-155.test.alt/220120-1540/
home  var

Работа с UrBackup на клиенте

Для работы с UrBackup на клиенте предназначена утилита urbackupclientctl:

  • urbackupclientctl start — запустить инкрементное/полное резервное копирование;
  • urbackupclientctl status — получить текущий статус резервного копирования;
  • urbackupclientctl browse — просмотр списка резервных копий и файлов/папок в резервных копиях;
  • urbackupclientctl restore-start — восстановить файлы/папки из резервной копии;
  • urbackupclientctl set-settings — установить параметры резервного копирования;
  • urbackupclientctl add-backupdir — добавить новый каталог в список каталогов, для которых выполняется резервное копирование;
  • urbackupclientctl list-backupdirs — вывести список каталогов, для которых выполняется резервное копирование;
  • urbackupclientctl remove-backupdir — удалить каталог из списока каталогов, для которых выполняется резервное копирование.

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

urbackupclientctl <command> --help

Список резервных копий:

# urbackupclientctl browse
[{
"archived": 0,
"backuptime": 1642686041,
"disable_delete": true,
"id": 2,
"incremental": 1,
"size_bytes": 109955109
}
,{
"archived": 0,
"backuptime": 1642684086,
"id": 1,
"incremental": 0,
"size_bytes": 2306704775
}
]

Запустить полное бэкапирование:

# urbackupclientctl start -f
Waiting for server to start backup... done
Preparing... done
[======================================================>        ] 86% 2.01947 GB/2.36159 GB at 400.289 MBit/s
Completed successfully.

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

# urbackupclientctl restore-start -b 2
Starting restore. Waiting for backup server...  done
[=============================================================> ] 97% 2.33831 GB/2.41119 GB at 76.024 KBit/s
Restore completed successfully.

Добавление каталогов, для которых будут создаваться резервные копии:

# urbackupclientctl add-backupdir -d /etc

Просмотреть список каталогов, для которых создаются резервные копии:

#  urbackupclientctl list-backupdirs
PATH  NAME FLAGS
----- ---- ----------------------------------------------
/home home follow_symlinks,symlinks_optional,share_hashes 
/var  var  follow_symlinks,symlinks_optional,share_hashes 
/etc  etc  follow_symlinks,symlinks_optional,share_hashes

Резервное копирование баз данных

На сервере БВ должен быть установлен клиент UrBackup.

MySQL/MariaDB

Примечание: Используйте этот метод, если база данных небольшая (например, 1 ГБ).


Для создания дампа БД следует в файле /etc/urbackup/mariadbdump.conf установить параметр MARIADB_DUMP_ENABLED=1, и указать имя/пароль MySQL-пользователя.

В результате при создании файловых бэкапов будет создаваться дамп базы данных /mnt/backups/<client>/<YYMMDD-HHMM>/urbackup_backup_scripts/mariadbdump.sql.

Дамп БД

Восстановить дамп MySQL/MariaDB, можно выполнив команду:

# mysql -u root -p < mariadbdump.sql

PostgreSQL

Создание дампа БД

Примечание: Используйте этот метод, если база данных небольшая (например, 1 ГБ).

Для создания дампа БД следует в файле /etc/urbackup/postgresqldump.conf установить параметр POSTGRESQL_DUMP_ENABLED=1.

В результате при создании файловых бэкапов будет создаваться дамп базы данных /mnt/backups/<client>/<YYMMDD-HHMM>/urbackup_backup_scripts/postgresqldump.sql.

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

# su - postgres -s /bin/sh -c "psql -f /home/user/postgresqldump.sql postgres"

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

В файле /etc/urbackup/postgresbase.conf установить параметр POSTGRESQL_BASE_ENABLED=1.

Добавить виртуального клиента:

# urbackupclientctl set-settings -v virtual_clients -k wal

Разрешить пользователю postgres устанавливать соединение репликации. Для этого в файле /var/lib/pgsql/data/pg_hba.conf раскомментировать строку:

local   replication     postgres                                trust

В файле /var/lib/pgsql/data/postgresql.conf для max_wal_senders установить значение отличное от нуля, для wal_level установить значение archive. Перезапустить PostgreSQL и проверить работает ли бэкапирование:

/usr/share/urbackup/scripts/postgresbase > /dev/null
Starting base backup of PostgreSQL at Пн 24 янв 2022 09:14:11 EET...
Base backup of PostgreSQL finished at Пн 24 янв 2022 09:14:12 EET.

Если вы не хотите иметь непрерывную резервную копию WAL, можно остановиться на этом этапе.

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

Настроить PostgreSQL для архивирования файлов WAL в каталог, установив (файл /var/lib/pgsql/data/postgresql.conf) для параметра archive_mode значение on и для параметра archive_command значение

 cp %p /var/lib/walarchive/incoming/%f; mv /var/lib/walarchive/incoming/%f /var/lib/walarchive/staging/%f

Создать каталоги:

# mkdir -p /var/lib/walarchive/{incoming,staging,backup}
# chown postgres:postgres /var/lib/walarchive/{incoming,staging,backup}

Настроить архивы WAL для резервного копирования:

# urbackupclientctl add-backupdir --keep -d /var/lib/walarchive/backup -v wal

Затем следует настроить интервал резервного копирования [wal], чтобы он был относительно небольшим, а интервал резервного копирования основного клиента с базовым сценарием резервного копирования относительно большим.

Для восстановления данных следует сначала восстановить резервную копию:

# urbackupclientctl restore-start -b last -d urbackup_backup_scripts/postgresbase
Starting restore. Waiting for backup server...  done
[===================================>                           ] 56% 24.8957 MB/44.8081 MB 
Restore completed successfully.

а затем скопировать последний набор файлов WAL на сервер базы данных PostgreSQL и следовать инструкции по восстановлению (см. https://postgrespro.ru/docs/postgrespro/9.6/continuous-archiving#backup-pitr-recovery).

Примечание: После восстановления файлов из архива с резервной копией проверьте права и владельца файлов. Они должны принадлежать пользователю от имени которого запускается сервер PostgreSQL:
# chown postgres:postgres /var/lib/pgsql/data
# chmod 700 /var/lib/pgsql/data


Ссылки

https://www.urbackup.org/administration_manual.html