Резервное копирование. Настройка и запуск с помощью скриптов (Linux)
Экспериментальная функция
Представленная здесь функция находится на стадии разработки. См. «Поддержка экспериментальных функций».
Введение
Здесь представлены инструкции по резервному копированию данных Comindware Platform с помощью скриптов на стороне сервера вместо использования встроенных средств Comindware Platform посредством веб-интерфейса.
Это даёт следующие преимущества:
- системный администратор может более гибко управлять процессом и параметрами резервного копирования;
- резервное копирование больших баз данных с помощью скриптов позволяет снять вычислительную нагрузку с Comindware Platform. Поэтому данный способ рекомендуется использовать, если размер базы данных превышает 10 ГБ.
Резервное копирование с помощью скриптов включает следующие шаги:
- создание снимка данных Apache Ignite, архивирование и копирование снимка в хранилище резервных копий, очистка использованных ресурсов;
- (необязательно) создание снимка данных OpenSearch (Elasticsearch), архивирование и копирование снимка в хранилище резервных копий, очистка использованных ресурсов;
- (необязательно) синхронизация сетевой папки с пользовательскими файлами (
Streams), архивирование и копирование файлов в хранилище резервных копий, очистка использованных ресурсов.
Скрипт резервного копирования (backups_create.sh) выполняет следующие операции:
- ведёт журнал по пути, указанном в переменной
logFile; - сокращает журнал до последних 1000 строк при каждом запуске;
- использует файл блокировки
backup.lockдля предотвращения нескольких одновременных запусков резервного копирования; - удаляет старые архивы резервных копий согласно параметру
backupDepth.
Внимание
- Создание снимка и сохранение архива могут занимать значительное время в зависимости от размера данных.
- Требуется достаточное место на диске для временного хранения снимков и архивов.
См. «Рекомендации по резервному копированию» и «Развёртывание ПО. Архитектура и ИТ-ландшафт».
Подготовка и настройка Apache Ignite
-
Проверьте наличие в директории
/usr/share/igniteраспакованных скриптов Apache Ignite актуальной версии.Если скрипты отсутствуют, скачайте и распакуйте их в указанную директорию либо переустановите Apache Ignite из дистрибутива вспомогательного ПО Comindware Platform. См. «Установка, запуск, инициализация и остановка ПО» и «Пути и содержимое директорий (Linux)».
Расположение скриптов
Файлы скриптов резервного копирования по умолчанию расположены в директории
/usr/share/comindware/bin. -
Разрешите использование клиентского подключения в файле конфигурации
Ignite.configApache Ignite на узлах Comindware Platform в экземпляра Comindware Platform. Для этого найдите соответствующий блок в файле и скорректируйте его согласно следующему примеру:...<property name="clientConnectorConfiguration"><bean class="org.apache.ignite.configuration.ClientConnectorConfiguration"><property name="thinClientEnabled" value="true" /><property name="host" value="127.0.0.1" /><property name="port" value="10800" />...</bean></property>... -
Откройте скрипт резервного копирования
backups_create.shдля редактирования:nano /usr/share/comindware/bin/backups_create.sh -
Настройте в скрипте пути и имена в переменных в соответствии с вашей конфигурацией:
instanceName— имя экземпляра Comindware Platform на узле кластера;snapshotPath— директория для снимков узла Apache Ignite, по умолчанию/var/lib/comindware/${instanceName}/Database/snapshots;streamsPath— путь к директории с вложенными файлами;osHost— IP или FQDN сервера OpenSearch (Elasticsearch);osPort— порт подключения к серверу OpenSearch (Elasticsearch);osRepoPath— путь к директории снимков данных OpenSearch (Elasticsearch);osIndexPrefix— префикс индексов OpenSearch (Elasticsearch);backupsPath— директория с резервными копиями, по умолчанию/mnt/share/${instanceName}/Backups/Snapshots;backupDepth— срок хранения резервных копий в днях, по умолчанию14;igniteHome— директория скриптов Apache Ignite, по умолчанию/usr/share/ignite.logFile— путь к файла журнала резервного копирования, по умолчанию/var/log/comindware/${instanceName}/Logs/cmw_backup.log.
Внимание!
В кластерной конфигурации необходимо учитывать, что выполнение команды снимка данных на одном узле произведёт формирование снимка данных на каждом узле кластера Apache Ignite.
Это может привести к заполнению свободного места и падению узлов Comindware Platform.
Поэтому рекомендуется директорию со снимками данных Apache Ignite (
backupsPath) размещать на выделенной области SSD-хранилища типа NVMe. -
Проверьте выполнения скрипта
backups_create.sh, выполнив команду:bash /usr/share/comindware/bin/backups_create.sh <instanceName> -vsoВнимание!
В новейшей версии скрипта обязательно указывать имя экземпляра Comindware Platform —
<instanceName>. Если имя экземпляра не указано, скрипт выдаст ошибку и остановится.Внимание!
Обратите внимание на время создания снимков, а также время сохранения и размеры архивов.
Ключи скрипта backups_create.sh
Скрипт
backups_create.shподдерживает следующие ключи:-v,--verbose— вывод отчёта в терминал;-c,--cleanup-only— только архивация имеющихся снимков Apache Ignite;-s,--with-streams— создание архива вложенных файлов;-o,--with-history— создание резервной копии данных OpenSearch (Elasticsearch);-t,--check-config— проверка конфигурации без выполнения резервного копирования.--lock-file PATH— путь к файлу блокировки выполнения резервного копирования;--log-file PATH— путь к файлу журнала;--backup-depth DAYS— глубина резервного копирования;--ignite-home PATH— путь к директории со скриптами Apache Ignite;--ignite-host HOST— хост коннектора Apache Ignite;--ignite-port PORT— порт коннектора Apache Ignite;--snapshot-path PATH— расположение снимков Apache Ignite;--backup-prefix PREFIX— префикс снимков Apache Ignite;--os-server URL— URL сервера журналирования;--os-repo-path PATH— путь к репозиторию OpenSearch (Elasticsearch);--os-index-prefix PREFIX— префикс индексов OpenSearch (Elasticsearch);--os-repo-name NAME— имя репозитория OpenSearch (Elasticsearch);--streams-path PATH— путь к директории вложенных файлов;--backups-path PATH— путь к хранилищу резервных копий;--local-temp-path PATH— путь к директорииLocalTemp.
Запуск скрипта с помощью планировщика (cron)
Здесь представлен пример настройки резервного копирования по расписанию: раз в час с 6:00 до 22:00.
-
Откройте очередь задач
crontab:sudo crontab -e -
Добавьте строку запуска скрипта
backups_create.sh:0 6-22 * * * sudo bash /usr/share/comindware/bin/backups_create.sh <instanceName>Здесь
<instanceName>— имя экземпляра Comindware Platform.
Запуск скрипта backups_create.sh для нескольких узлов кластера
С помощью crontab можно распределить операции резервного копирования узлов кластера на разные временные интервалы.
Например, настроим поочередное выполнение резервного копирования на 4-х узлах кластера раз в час с 6-00 до 22-00.
-
На каждом хосте с узлами кластера откройте очередь задач
crontab:sudo crontab -e -
Добавьте строки запуска скрипта для первого узла:
# Запуск резервного копирования текущего узла0 6-18/4 * * * sudo bash /usr/share/comindware/bin/backups_create.sh -so# Сохранение снимков30 6-21 * * * sudo bash /usr/share/comindware/bin/backups_create.sh -c -
Для второго узла добавьте строки:
# Запуск резервного копирования текущего узла0 7-19/4 * * * sudo bash /usr/share/comindware/bin/backups_create.sh -so# Сохранение снимков30 6-19/4 * * * sudo bash /usr/share/comindware/bin/backups_create.sh -c -
Аналогичным образом разнесите по времени и настройте автозапуск скрипта на остальных узлах.
- В результате запуск скриптов для узлов кластера должен выполняться по представленному в следующей таблице графику:
| Узел | node_0 | node_1 | node_3 | node_4 |
|---|---|---|---|---|
| Хост | CBAP-node1 |
CBAP-node2 |
CBAP-node4 |
CBAP-node5 |
| Снимок Apache Ignite | 06:10 10:10 14:10 18:10 22:10 |
7:10 11:10 15:10 19:10 |
8:10 12:10 16:10 20:10 |
9:10 13:10 17:10 21:10 |
Время crontab |
10 6-22/4 * * * |
10 7-19/4 * * * |
10 8-20/4 * * * |
10 9-21/4 * * * |
| Очистка снимков ( -c) |
7:35-21:35/4 | 7:35-21:35/4 | 7:35-21:35/4 | 7:35-21:35/4 |
Время crontab |
35 7-21 * * * |
35 6-22 * * * |
35 6-22 * * * |
35 6-22 * * * |
Эта статья была полезна 2 чел.