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

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

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

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

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

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

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

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

В биометрической базе данных на основе Tarantool есть 3 галереи:

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

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

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

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

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

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

Утилиты

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

  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_dossier_face.json, ffsec_events.json и ffsec_persons.json. Эти файлы содержат все данные, необходимые для полного восстановления галерей.

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

Для восстановления биометрической базы данных запустите утилиту 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 в 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, такие как загруженные фотографии, видеофайлы и артефакты событий (полные кадры, миниатюры лиц и нормализованные изображения лиц) хранятся в следующих каталогах:

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