Перенос данных на другой диск

Высокая нагрузка на диск может приводить к задержкам при поступлении событий. В тяжелых случаях возможна полная неработоспособность FindFace Multi. Одним из способов снижения нагрузки на диск является перенос хранилищ данных FindFace Multi на другой диск.

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

Подготовка диска

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

  1. Создайте новую точку монтирования (в примере /mnt/ffdata).

    sudo mkdir /mnt/ffdata
    
  2. Создайте раздел.

    sudo parted /dev/sdb
    mklabel gpt
    mkpart primary ext4 1MiB 100%
    q
    sudo mkfs.ext4 /dev/sdb1
    
  3. Узнайте UUID раздела (для sdb1 в примере).

    sudo blkid | grep sdb1
    /dev/sdb1: LABEL="data" UUID="0638ebe0-853e-43ea-8f35-bfae305695d1" TYPE="ext4" PARTUUID="8cebaacc-77d7-4757-b4c6-14147e92646c"
    
  4. Настройте автоматическое монтирование раздела при загрузке ОС, добавив запись в fstab.

    sudo vi /etc/fstab
    ------------
    #DATA mount
    UUID=0638ebe0-853e-43ea-8f35-bfae305695d1 /mnt/ffdata/    ext4    auto,user,rw     0       2
    -------------
    
  5. Смонтируйте все файловые системы.

    sudo mount -a
    

Миграция хранилища фотографий и видеофрагментов

Примечание

Рекомендуем ознакомиться с разделом Хранилища данных FindFace Multi перед началом миграции хранилищ.

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

  1. Внутри точки монтирования создайте каталоги (например, /mnt/ffdata/ffupload и /mnt/ffdata/findface-security) для хранения фотографий и записанных видеофрагментов (если был развернут Видеомагнитофон). Затем переместите содержимое директорий /opt/findface-multi/data/findface-upload/uploads/ и /opt/findface-multi/data/findface-multi-legacy/uploads/ во вновь созданные каталоги.

    sudo mkdir /mnt/ffdata/ffupload
    sudo mkdir /mnt/ffdata/findface-security
    sudo cp -ax /opt/findface-multi/data/findface-upload/uploads/ -R /mnt/ffdata/ffupload/
    sudo cp -ax /opt/findface-multi/data/findface-multi-legacy/uploads/ -R /mnt/ffdata/findface-security/
    sudo rm -r /opt/findface-multi/data/findface-multi-legacy/uploads/
    sudo rm -r /opt/findface-multi/data/findface-upload/uploads/
    
  2. Смонтируйте созданные каталоги (/mnt/ffdata/ffupload и /mnt/ffdata/findface-security в примере) в соответствующие контейнеры. Для этого откройте конфигурационный файл /opt/findface-multi/docker-compose.yaml и перечислите созданные каталоги в указанных в примере томах (volumes) разделов вместо каталогов по умолчанию.

    sudo vi /opt/findface-multi/docker-compose.yaml
    
    findface-upload:
      ...
      volumes: ['./configs/findface-upload/40-ffupload.sh:/docker-entrypoint.d/40-ffupload.sh:ro',
        '/mnt/ffdata/ffupload:/var/lib/ffupload']
    ...
    findface-multi-identity-provider:
      ...
      volumes: ['./configs/findface-multi-identity-provider/findface-multi-identity-provider.py:/etc/findface-security/config.py:ro',
          '/mnt/ffdata/findface-security/uploads:/var/lib/findface-security/uploads']
    ...
    findface-multi-identity-provider-migrate:
      ...
      volumes: ['./configs/findface-multi-identity-provider/findface-multi-identity-provider.py:/etc/findface-security/config.py:ro',
          '/mnt/ffdata/findface-security/uploads:/var/lib/findface-security/uploads']
    ...
    findface-multi-legacy:
      ...
      volumes: ['./configs/findface-multi-legacy/findface-multi-legacy.py:/etc/findface-security/config.py:ro',
          '/mnt/ffdata/findface-security/uploads:/var/lib/findface-security/uploads']
    ...
    findface-multi-legacy-migrate:
      ...
      volumes: ['./configs/findface-multi-legacy/findface-multi-legacy.py:/etc/findface-security/config.py:ro',
          '/mnt/ffdata/findface-security/uploads:/var/lib/findface-security/uploads']
    ...
    findface-multi-legacy-singleton-services:
      ...
      volumes: ['./configs/findface-multi-legacy/findface-multi-legacy.py:/etc/findface-security/config.py:ro',
          '/mnt/ffdata/findface-security/uploads:/var/lib/findface-security/uploads']
    ...
    cleaner:
      ...
      volumes: ['./configs/findface-multi-legacy/findface-multi-legacy.py:/etc/findface-security/config.py:ro',
          '/mnt/ffdata/findface-security/uploads:/var/lib/findface-security/uploads']
    ...
    findface-multi-ui:
      ...
      volumes: ['./configs/findface-multi-ui/nginx-site.conf:/etc/nginx/conf.d/default.conf:ro',
          '/mnt/ffdata/findface-security/uploads:/var/lib/findface-security/uploads']
    ...
    findface-multi-file-mover:
      ...
      volumes: ['./configs/findface-multi-file-mover/findface-multi-file-mover.yaml:/etc/config.yml:ro',
          '/mnt/ffdata/findface-security/uploads:/mnt/slow_storage/uploads']
    
  3. Выполните пересборку контейнеров FindFace Multi.

    cd /opt/findface-multi
    
    sudo docker-compose down
    
    sudo docker-compose up -d
    

Миграция основной базы данных (PostgreSQL)

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

  1. Остановите все контейнеры FindFace Multi:

    cd /opt/findface-multi
    
    sudo docker-compose down
    
  2. Переместите каталог /opt/findface-multi/data/postgresql в каталог /mnt/ffdata.

    sudo mv /opt/findface-multi/data/postgresql /mnt/ffdata
    
  3. Укажите новый путь каталога postgresql (/mnt/ffdata/postgresql в примере) для монтирования в контейнер findface-multi-postgresql-1. Для этого в файле конфигурации /opt/findface-multi/docker-compose.yaml укажите его в томах (volumes) секции postgresql вместо каталога по умолчанию /opt/findface-multi/data/postgresql.

    sudo vi /opt/findface-multi/docker-compose.yaml
    
    postgresql:
    ...
      volumes: ['./configs/postgresql/40-init.sql:/docker-entrypoint-initdb.d/40-init.sql:ro',
        '/mnt/ffdata/postgresql:/bitnami/postgresql']
    
  4. Запустите все контейнеры FindFace Multi.

    sudo docker-compose up -d