Резервное копирование
Данный раздел описывает процедуру сохранения данных кластера TeamStorm на случай системных сбоев, отказа оборудования и непредвиденных ситуаций.
ВНИМАНИЕ
Для создания архива остановка кластера необязательна, но выполнение команд резервного копирования может негативно отразиться на работе пользователей.
Резервное копирование данных состоит из двух шагов.
-
Создание дампов баз данных PostgreSQL.
-
Создание файлового архива необходимых разделов docker-контейнеров.
Создание дампа баз данных PostgreSQL
Данная процедура описывает создание дампов баз данных PostgreSQL. Процедура автоматизирована и для запуска нужно выполнить следующие действия:
-
Перейдите в директорию
scripts
, которая находится внутри директории с артефактами TeamStorm. -
Создайте директорию там, где будет сохранен архив, например:
user@server: ~/teamstorm/scripts $ mkdir dumps user@server: ~/teamstorm/scripts $ ls -lha total 28 drwxrwxr-x 3 user user 4096 Feb 02 13:24 ./ drwxrwxr-x 4 user user 4096 Feb 02 13:23 ../ -rwxrwx--- 1 user user 1275 Feb 02 11:22 db_backup.sh* -rwxrwx--- 1 user user 1652 Feb 02 11:22 db_restore.sh* drwxr-xr-x 2 user user 4096 Feb 02 13:26 dumps/ ...
-
Запустите скрипт
db_backup.sh
, указав целевую директорию, например:user@server: ~/teamstorm/scripts $ ./db_backup.sh ./dumps Creating backup: teamstorm_migrations_db_ 2025-02-02_04-00-00.bak container: database_service database: teamstorm_migrations_db Successfully copied 2.56kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstorm_migrations_db_ 2025-02-02_04-00-00.bak Creating backup: teamstorm_attachment_db_ 2025-02-02_04-00-00.bak container: database_service database: teamstorm_attachment_db Successfully copied 9.22kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstorm_attachment_db_ 2025-02-02_04-00-00.bak Creating backup: teamstorm_comment_db_ 2025-02-02_04-00-00.bak container: database_service database: teamstorm_comment_db Successfully copied 44kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstorm_comment_db_ 2025-02-02_04-00-00.bak Creating backup: teamstormdb_ 2025-02-02_04-00-00.bak container: database_service database: teamstormdb Successfully copied 486kB to /home/tester/deploy/teamstorm/scripts/dumps/teamstormdb_ 2025-02-02_04-00-00.bak
В процессе выполнения вы увидите сообщения о создании архивов для каждой базы данных. По окончании будет создан конечный архив, сжатый с использованием aрхиватора gzip:
./dumps/teamstorm_wiki_db_ 2025-02-02_04-00-00.bak
./dumps/teamstorm_workspace_db_ 2025-02-02_04-00-00.bak
./dumps/teamstormdb_ 2025-02-02_04-00-00.bak
./dumps/teamstorm_ 2025-02-02_04-00-00_backup.tgz
Процесс по созданию архива для кластера TeamStorm успешно завершен.
Создание файлового архива необходимых разделов docker-контейнеров
Для создания копий разделов контейнеров кластера нужно иметь привилегии
пользователя root
, так как по-умолчанию только root
имеет доступ к этим
разделам файловой структуры.
-
Перейдите в директорию, где хранятся разделы docker-контейнеров. По умолчанию это
/var/lib/docker/volumes/
admin@server: ~/testit/scripts $ sudo -s root@server: ~/testit/scripts $ cd /var/lib/docker/volumes/ root@server: /var/lib/docker/volumes/ $ ls -lha | grep teamstorm drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_database-service-volume drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_minio drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_minio-export drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_minio-tls drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_rabbitmq-certificates-volume drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_rabbit-volume drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_redis drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_redis-tls drwx-----x 3 root root 19 Feb 02 16:54 teamstorm_ssl-volume drwx-----x 3 root root 19 Feb 02 16:50 teamstorm_trusted-certificates-volume
-
Заархивируйте необходимые директории с помощью
tar
, учитывая, что архивация вложений может занять существенное время и зависит от размера директорииteamstorm_minio
например:
ВНИМАНИЕ
В данном примере указаны разделы, содержащие все данные, которые находятся
в хранилище S3 minio
, а также сертификаты SSL
, которые вы, возможно,
использовали для настройки HTTPS
соединения.
Укажите другие разделы, если вы также их используете.
Финальным шагом должно быть сохранение трех файлов архива в ваше хранилище
резервных копий. При необходимости, процедуру можно автоматизировать с помощью
crontab
.