Резервное копирование и восстановление хранилищ данных

Этот раздел посвящен резервному копированию и восстановлению хранилищ данных FindFace Multi. Система использует следующие хранилища:

  • База данных векторов признаков на основе Tarantool, в которой хранятся векторы признаков и события идентификации объектов.

  • Основная база данных системы ffsecurity на PostgreSQL, в которой хранятся внутренние данные системы, досье, учетные записи пользователей и настройки камер.

  • Каталог /var/lib/findface-security/uploads, в котором хранятся загруженные в досье фотографии, видеофайлы, полные кадры событий и счетчиков, а также миниатюры объектов.

  • Каталог /var/lib/ffupload/, в котором хранятся только такие артефакты событий, как нормализованные изображения объектов.

В этом разделе:

Резервное копирование и восстановление базы данных векторов признаков

В базе данных векторов признаков на основе Tarantool есть следующие галереи:

  • ffsec_body_events: векторы признаков, извлеченные из обнаруженных на видео силуэтов.

  • ffsec_body_objects: векторы признаков, извлеченные из силуэтов в фотографиях досье.

  • ffsec_car_events: векторы признаков, извлеченные из обнаруженных на видео автомобилей.

  • ffsec_car_objects: векторы признаков, извлеченные из автомобилей в фотографиях досье.

  • ffsec_face_events: векторы признаков, извлеченные из обнаруженных на видео лиц.

  • ffsec_face_objects: векторы признаков, извлеченные из лиц в фотографиях досье.

  • ffsec_user_face: векторы признаков, извлеченные из фотографий пользователей FindFace Multi, используемые для аутентификации по лицу.

  • ffsec_persons: центроиды персон (виртуальные векторы признаков, усредненные по всем лицам персоны) и метаданные.

Функционал резервного копирования и восстановления базы данных позволяет при необходимости восстанавливать содержимое данных галерей.

Во избежание потери данных рекомендуется создавать резервную копию базы данных векторов признаков не реже одного раза в неделю. В целом частота резервного копирования зависит от количества досье и событий распознавания объектов, а также доступного дискового пространства.

Резервную копию базы данных также нужно обязательно создать перед миграцией системы на другую модель нейронной сети.

Утилиты

Для резервного копирования и восстановления базы данных векторов признаков FindFace Multi необходимы следующие утилиты:

  1. резервное копирование: findface-storage-api-dump,

  2. восстановление: findface-storage-api-restore.

Данные утилиты автоматически устанавливаются вместе с компонентом findface-sf-api.

Резервное копирование базы данных

Для резервного копирования базы данных векторов признаков используйте утилиту findface-storage-api-dump следующим образом:

Важно

Сервисы findface-tarantool-server и findface-sf-api должны быть активны.

Примечание

Резервное копирование можно также применить к распределенной базе данных. В этом случае утилита findface-storage-api-dump создаст резервные копии всех шардов, указанных в /etc/findface-sf-api.ini.

  1. На сервере с установленным findface-sf-api создайте каталог для хранения резервных копий (/etc/findface_dump в примере ниже).

  2. Запустите утилиту findface-storage-api-dump следующей командой:

    sudo findface-storage-api-dump -output-dir=/etc/findface_dump -config /etc/findface-sf-api.ini
    

    Утилита создаст резервные копии всех галерей и запишет их в указанный каталог в виде файлов с соответствующими именами (ffsec_body_events.json, ffsec_face_events и т. д.) . Эти файлы содержат все данные, необходимые для полного восстановления галерей.

Восстановление базы данных

Для восстановления базы данных векторов признаков запустите утилиту findface-storage-api-restore для всех файлов в директории с резервными копиями:

sudo findface-storage-api-restore -config /etc/findface-sf-api.ini /etc/findface_dump/*.json

Процесс восстановления можно при необходимости прервать с сохранением выполненной работы. Для того чтобы продолжить процесс после прерывания, снова запустите утилиту findface-storage-api-restore.

Резервное копирование и восстановление основной базы данных

Для резервного копирования основной базы данных ffsecurity на PostgreSQL выполните команду:

sudo -u postgres pg_dump ffsecurity > ffsecurity_postgres_backup.sql

Для того чтобы восстановить основную базу данных, выполните следующие действия:

  1. Остановите сервис findface-security.

    sudo systemctl stop findface-security.service
    
  2. Остановите сервис pgbouncer, чтобы удалить активные сессии с базой данных ffsecurity.

    sudo systemctl stop pgbouncer.service
    
  3. Откройте интерактивный терминал PostgreSQL.

    sudo -u postgres psql
    
  4. Удалите прежнюю базу данных ffsecurity.

    DROP DATABASE ffsecurity;
    
  5. Создайте новую базу ffsecurity. Выйдите из интерактивного терминала PostgreSQL.

    CREATE DATABASE ffsecurity WITH OWNER ntech ENCODING 'UTF-8' LC_COLLATE='C.UTF-8' LC_CTYPE='C.UTF-8' TEMPLATE template0;
    
  6. Запустите сервис pgbouncer.

    sudo systemctl start pgbouncer.service
    
  7. Восстановите содержимое базы данных из резервной копии.

    sudo -u postgres psql -d ffsecurity -f ffsecurity_postgres_backup.sql
    
  8. Перенесите схему базы данных из FindFace Multi в PostgreSQL, заново создайте группы пользователей с предустановленными правами и первого пользователя с правами администратора.

    sudo findface-security migrate
    sudo findface-security create_groups
    sudo findface-security create_default_user
    
  9. Запустите сервис findface-security.

    sudo systemctl start findface-security.service
    

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

Артефакты FindFace Multi, такие как загруженные фотографии, видеофайлы и артефакты событий (полные кадры, миниатюры объектов и нормализованные изображения объектов) хранятся в следующих каталогах:

  • /var/lib/findface-security/uploads

  • /var/lib/ffupload/

Для резервного копирования артефактов выполните команды:

sudo tar -cvzf /home/some_directory/var_lib_ffsecurity_uploads.tar.gz /var/lib/findface-security/uploads/
sudo tar -cvzf /home/some_directory/var_lib_ffupload.tar.gz /var/lib/ffupload/

Для того чтобы восстановить артефакты, перейдите в корневую директорию и выполните команды:

cd /
sudo tar -xvf /home/some_directory/var_lib_ffsecurity_uploads.tar.gz
sudo tar -xvf /home/some_directory/var_lib_ffupload.tar.gz