Резервирование IVA CS
В IVA CS для управления базой данных используется СУБД PostgreSQL.
Для повышения устойчивости работы IVA CS необходимо резервировать систему, используя отказоустойчивый кластер PostgreSQL. Такое решение позволяет обеспечить автоматическое переключение на резервный сервер, минимизируя время простоя.
Главные требования для построения отказоустойчивого кластера PostgreSQL — потоковая репликация с ведущего сервера (master) на все резервные (реплики) и автоматический ввод резерва при отказе сервера master.
Потоковая репликация позволяет передавать изменения с сервера master на реплики таким образом, чтобы в каждый момент времени на резервных серверах хранилась полноценная копия базы данных, аналогичная базе данных на сервере master.
Для резервирования ПО IVA CS используется следующее программное обеспечение:
-
PostgreSQL — свободная объектно-реляционная система управления базами данных
-
Patroni — решение для кластеризации на базе PostgreSQL
-
etcd — распределенное хранилище типа ключ-значение для Patroni. Обеспечивает надежный способ хранения данных, к которым могут обращаться распределенная система или кластер машин
-
HAProxy — прокси-сервер TCP и HTTP трафика для организации единой точки подключения к PostgreSQL
Данное программное обеспечение устанавливается на каждый сервер во время выполнения файла install.sh.
Описание работы резервирования
Для настройки ведущего и резервных серверов в единый кластер PostgreSQL и последующего управления им используется Patroni. Информация о состоянии всех узлов кластера хранится в распределенном хранилище etcd, которое обеспечивает согласованность данных между узлами кластера.
Patroni обрабатывает отказы кластера и обеспечивает автоматическое переключение на резервный сервер при сбое сервера master. В этом случае резервный сервер переходит в режим сервера master, а бывший сервер master находится в режиме восстановления.
При переключении сервера с master на резервный теряются данные, которые не успели синхронизироваться между серверами в момент сбоя.
После восстановления сервера на нем происходит обновление базы данных до актуального состояния:
-
восстановленный сервер переходит в режим резервного
-
резервный сервер, который стал сервером master, продолжает находиться в статусе ведущего сервера
При одновременном отказе нескольких серверов, после их восстановления необходимо вручную вводить в кластер данные с отключенных реплик.
Для работы с СУБД все сервисы должны иметь единую точку подключения, которую обеспечивает HAProxy.
В качестве сервера СУБД может выступать один из серверов PostgreSQL.
На основе данных, полученных от Patroni, HAProxy определяет, какой из серверов является master в данный момент, и отправляет запросы к СУБД на этот сервер.
Резервное копирование базы данных и файлов IVA CS
В данном разделе описаны создание резервной копии базы данных и файлов IVA CS, а также восстановление данных с помощью утилиты ivacs-dump.
Доступные команды
Утилита ivacs-dump поддерживает следующие команды:
| Команда | Описание |
|---|---|
|
Вывод справки по использованию утилиты |
|
Создание резервной копии. Имя архива задавать не требуется: по умолчанию создается файл |
|
Восстановление данных из указанного архива. Параметр |
Создание резервной копии
Чтобы создать резервную копию, необходимо выполнить на сервере IVA CS команду:
sudo ivacs-dump export
Во время выполнения утилита создает дамп базы данных, копирует файлы и формирует архив:
После копирования файлов утилита удаляет временные данные и завершает работу:
Архив сохраняется в домашнем каталоге пользователя, от имени которого была выполнена команда:
/home/<USER_NAME>/ivacs.dump.tar.gz
где <USER_NAME> — имя пользователя
Состав и размер резервной копии
Архив ivacs.dump.tar.gz содержит:
-
файл дампа базы данных:
ivacs.db.dump -
копию каталога
/var/lib/ivasw/files/с записями разговоров, журналами, данными CDR и другими файлами IVA CS
|
В приведенном примере общий размер архива составил около 600 МБ: примерно 90 МБ занял дамп базы данных и 510 МБ — файлы IVA CS. Первый экспорт выполнялся около 40 с, повторный — около 20 с. Размер архива и время его создания зависят от объема базы данных, количества звонков, записей разговоров и журналов |
|
Файл |
Команда ivacs-dump export запускает скрипт /opt/ivasw/dump.sh. Параметры учетной записи для подключения к базе данных указаны непосредственно в этом скрипте.
В исходной процедуре не описаны параметры для раздельного копирования базы данных, журналов и записей разговоров. Команда export создает единый архив со всеми перечисленными данными.
Восстановление из резервной копии
Для восстановления данных необходимо указать имя или путь к архиву в обязательном параметре <dump-name>:
sudo ivacs-dump import <dump-name>
Пример восстановления из архива, расположенного в домашнем каталоге пользователя:
sudo ivacs-dump import /home/<USER_NAME>/ivacs.dump.tar.gz
| При возникновении сложностей необходимо обратиться к специалистам технической поддержки компании IVA Technologies через сервисный портал |

