Перейти к содержанию

Резервное копирование. Настройка и запуск с помощью скриптов (Linux)

Экспериментальная функция

Представленная здесь функция находится на стадии разработки. См. «Поддержка экспериментальных функций».

Введение

Здесь представлены инструкции по резервному копированию данных Comindware Platform с помощью скриптов на стороне сервера вместо использования встроенных средств Comindware Platform посредством веб-интерфейса.

Это даёт следующие преимущества:

  • системный администратор может более гибко управлять процессом и параметрами резервного копирования;
  • резервное копирование больших баз данных с помощью скриптов позволяет снять вычислительную нагрузку с Comindware Platform. Поэтому данный способ рекомендуется использовать, если размер базы данных превышает 10 ГБ.

Резервное копирование с помощью скриптов включает следующие шаги:

  • создание снимка данных Apache Ignite, архивирование и копирование снимка в хранилище резервных копий, очистка использованных ресурсов;
  • (необязательно) создание снимка данных OpenSearch (Elasticsearch), архивирование и копирование снимка в хранилище резервных копий, очистка использованных ресурсов;
  • (необязательно) синхронизация сетевой папки с пользовательскими файлами (Streams), архивирование и копирование файлов в хранилище резервных копий, очистка использованных ресурсов.

Скрипт резервного копирования (backups_create.sh) выполняет следующие операции:

  • ведёт журнал по пути, указанном в переменной logFile;
  • сокращает журнал до последних 1000 строк при каждом запуске;
  • использует файл блокировки backup.lock для предотвращения нескольких одновременных запусков резервного копирования;
  • удаляет старые архивы резервных копий согласно параметру backupDepth.

Внимание

  • Создание снимка и сохранение архива могут занимать значительное время в зависимости от размера данных.
  • Требуется достаточное место на диске для временного хранения снимков и архивов.

См. «Рекомендации по резервному копированию» и «Развёртывание ПО. Архитектура и ИТ-ландшафт».

Подготовка и настройка Apache Ignite

  1. Проверьте наличие в директории /usr/share/ignite распакованных скриптов Apache Ignite актуальной версии.

    Если скрипты отсутствуют, скачайте и распакуйте их в указанную директорию либо переустановите Apache Ignite из дистрибутива вспомогательного ПО Comindware Platform. См. «Установка, запуск, инициализация и остановка ПО» и «Пути и содержимое директорий (Linux)».

    Расположение скриптов

    Файлы скриптов резервного копирования по умолчанию расположены в директории /usr/share/comindware/bin.

  2. Разрешите использование клиентского подключения в файле конфигурации Ignite.config Apache 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>
    ...
  3. Откройте скрипт резервного копирования backups_create.sh для редактирования:

    nano /usr/share/comindware/bin/backups_create.sh  
  4. Настройте в скрипте пути и имена в переменных в соответствии с вашей конфигурацией:

    • 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.

  5. Проверьте выполнения скрипта 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.

  1. Откройте очередь задач crontab:

    sudo crontab -e 
  2. Добавьте строку запуска скрипта 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.

  1. На каждом хосте с узлами кластера откройте очередь задач crontab:

    sudo crontab -e 
  2. Добавьте строки запуска скрипта для первого узла:

    # Запуск резервного копирования текущего узла 
    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
  3. Для второго узла добавьте строки:

    # Запуск резервного копирования текущего узла 
    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
  4. Аналогичным образом разнесите по времени и настройте автозапуск скрипта на остальных узлах.

  5. В результате запуск скриптов для узлов кластера должен выполняться по представленному в следующей таблице графику:
Узел 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 * * *
К началу