Экспериментальная функция
Представленная здесь функция находится на стадии разработки. См. «Поддержка экспериментальных функций».
Введение
Здесь представлены инструкции по резервному копированию данных Comindware Platform с помощью скриптов на стороне сервера вместо использования веб-интерфейса.
Это позволяет системному администратору более гибко управлять процессом и параметрами резервного копирования.
Резервное копирование с помощью скриптов включает следующие шаги:
- создание снимка данных Apache Ignite, архивирование и копирование снимка в хранилище резервных копий, очистка использованных ресурсов;
- создание снимка данных OpenSearch (Elasticsearch), архивирование и копирование снимка в хранилище резервных копий, очистка использованных ресурсов;
- синхронизация сетевой папки с пользовательскими файлами (
Streams), архивирование и копирование файлов в хранилище резервных копий, очистка использованных ресурсов.
Скрипт резервного копирования (cmw_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>... -
Откройте скрипт резервного копирования
cmw_backups_create.shдля редактирования:nano /usr/share/comindware/bin/cmw_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. -
Проверьте выполнения скрипта
cmw_backups_create.sh, выполнив команду:bash /usr/share/comindware/bin/cmw_backups_create.sh -vsoВнимание!
Обратите внимание на время создания снимков, а также время сохранения и размеры архивов.
Ключи скрипта cmw_backups_create.sh
Скрипт
cmw_backups_create.shподдерживает следующие ключи:-s— включает создание и архивирование вложенных файлов.-o— включает снятие и архивирование снимков данных OpenSearch (Elasticsearch).-v— подробный вывод (verbose), выводит сообщения в терминал помимо записи в лог-c— только очистка (clean-only), выполняет только операции очистки старых снимков без создания нового.
Запуск скрипта с помощью планировщика (cron)
Здесь представлен пример настройки резервного копирования по расписанию: раз в час с 6:00 до 22:00.
-
Откройте очередь задач
crontab:sudo crontab -e -
Добавьте строку запуска скрипта
cmw_backups_create.sh:0 6-22 * * * sudo bash /usr/share/comindware/bin/cmw_backups_create.sh
Запуск скрипта cmw_backups_create.sh для нескольких узлов кластера
С помощью crontab можно распределить операции резервного копирования узлов кластера на разные временные интервалы.
Например, настроим поочередное выполнение резервного копирования на 4-х узлах кластера раз в час с 6-00 до 22-00.
-
На каждом хосте с узлами кластера откройте очередь задач
crontab:sudo crontab -e -
Добавьте строки запуска скрипта для первого узла:
# Запуск резервного копирования текущего узла0 6-18/4 * * * sudo bash /home/admin-ag/cmw_snapshot_create.sh -so# Сохранение снимков30 6-21 * * * sudo bash /home/admin-ag/cmw_snapshot_create.sh -c -
Для второго узла добавьте строки:
# Запуск резервного копирования текущего узла0 7-19/4 * * * sudo bash /home/admin-ag/cmw_snapshot_create.sh -so# Сохранение снимков30 6-19/4 * * * sudo bash /home/admin-ag/cmw_snapshot_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 * * * |