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

Подготовка к запуску#

Убедитесь в том, что вы являетесь root-пользователем перед тем, как начать запуск!

Перед запуском FaceStream необходимо выполнить следующие действия:

  1. Распаковать дистрибутив FaceStream
  2. Создать символическую ссылку
  3. Выполнить установку Docker
  4. Выполнить установку Docker Compose, если планируется запускать FaceStream с помощью автоматического запуска через скрипт Docker Compose
  5. Выбрать способ записи логов
  6. Настроить вычисления с помощью GPU, если планируется использовать GPU
  7. Авторизироваться в registry VisonLabs
  8. Убедиться, что в лицензии указан параметр, определяющий количество потоков для обработки сервисом LUNA Streams

После выполненных действий можно приступить к ручному или автоматическому запуску LUNA Streams и FaceStream.

Распаковка архива#

Рекомендуется переместить архив в предварительно созданную директорию для FaceStream и распаковать архив в этой директории.

Указанные команды следует выполнять под пользователем root.

Создайте директорию для FaceStream.

mkdir -p /var/lib/fs

Переместите архив в созданную директорию. Предполагается, что архив сохранён на сервере в директории "/root".

mv /root/facestream_v.5.84.0.zip /var/lib/fs/

Перейдите в директорию.

cd /var/lib/fs/

Установите утилиту unzip, если она ещё не установлена.

yum install unzip

Распакуйте архив.

unzip facestream_v.5.84.0.zip

Создайте символическую ссылку. Символическая ссылка указывает на директорию, в которой хранятся файлы для запуска нужной версии программного продукта.

ln -s facestream_v.5.84.0 fs-current

Установка Docker#

Docker требуется для запуска контейнера FaceStream.

Установка Docker описана в официальной документации:

https://docs.docker.com/engine/install/centos/.

Если на сервере уже установлен Docker версии 20.10.8, то выполнять повторную установку не требуется. Не гарантируется работа с более высокими версиями Docker.

Ниже перечислены команды для быстрой установки:

При возникновении проблем с установкой обратитесь к официальной документации Docker.

Установите зависимости.

yum install -y yum-utils device-mapper-persistent-data lvm2

Добавьте репозиторий.

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Установите Docker.

yum -y install docker-ce docker-ce-cli containerd.io

Запустите Docker.

systemctl start docker
systemctl enable docker

Проверьте, статус запуска Docker.

systemctl status docker

Установка Docker Compose#

Примечание. Выполняйте установку Docker Compose только если собираетесь использовать скрипт автоматического запуска FaceStream.

Установите Docker Compose.

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Для получения более подробной информации обратитесь к официальной документации:

https://docs.docker.com/compose/install/

Выбор способа записи логов#

Существует два способа вывода логов:

  • стандартный вывод логов (stdout);
  • вывод логов в файл.

Настройки вывода логов сервисов LUNA PLATFORM и сервиса LUNA Streams задаются в секции <SERVICE_NAME>_LOGGER сервиса Configurator.

Настройки вывода логов FaceStream задаются в настройках logging секции FACE_STREAM_CONFIG сервиса Configurator.

При необходимости можно использовать оба способа вывода логов.

Запись логов в stdout#

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

Рекомендуется настроить ротацию логов Docker для ограничения их размеров (см. раздел "Настройка ротации логов Docker").

Запись логов в файл#

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

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

  • перед запуском сервисов: создать директории для логов на сервере;
  • после запуска сервисов: активировать запись логов и задать расположение хранения логов внутри контейнеров сервисов LP;
  • во время запуска сервисов: настроить синхронизацию директорий логов в контейнере с логами на сервере с помощью аргумента volume при старте каждого контейнера.

В скрипте Docker Compose не настроена синхронизация директорий с папками. Необходимо вручную добавить монтирование папок в файл docker-compose.yml.

См. инструкцию по включению записи логов в файлы в разделе "Запись логов на сервер".

Установка зависимостей для GPU#

Пропустите данный раздел если не собираетесь использовать FaceStream с GPU.

Для использования GPU с Docker контейнерами необходимо установить NVIDIA Container Toolkit.

Пример установки приведен ниже.

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | tee /etc/yum.repos.d/nvidia-docker.repo
yum install -y nvidia-container-toolkit
systemctl restart docker

Проверьте работу NVIDIA Container toolkit, запустив базовый контейнер CUDA (он не входит в дистрибутив FaceStream, его необходимо загрузить из Интернета):

docker run --rm --gpus all nvidia/cuda:11.4.3-base-centos7 nvidia-smi

Для дополнительной информации см. следующую документацию:

https://github.com/NVIDIA/nvidia-docker#centos-7x8x-docker-ce-rhel-7x8x-docker-ce-amazon-linux-12.

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

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

Действия для запуска FaceStream с GPU через Docker Compose#

Для запуска FaceStream с GPU через Docker Compose необходимо, кроме вышеописанных действий, добавить секцию deploy в поле facestream в файл docker-compose.yml.

Перед запуском контейнера FaceStream с GPU требуется включить использование GPU для вычислений в настройках FaceStream с помощью параметра "enable_gpu_processing" (см. раздел "Настройки FaceStream" в руководстве администратора).

vi /var/lib/fs/fs-current/example-docker/docker-compose.yml
  facestream:
    image: ${REGISTRY_ADDRESS}:${DOCKER_REGISTRY_PORT}/facestream:${FS_VER}
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]
    restart: always
    environment:
      CONFIGURATOR_HOST: ${HOST_CONFIGURATOR}
      CONFIGURATOR_PORT: 5070

driver — в данном поле указывается драйвер для зарезервированного устройства(устройств);

count — в данном поле задается количество графических процессоров, которые должны быть зарезервированы (при условии, что хост содержит такое количество графических процессоров);

capabilities — данное поле выражает как общие, так и специфические возможности драйвера. Его необходимо задать, иначе будет возвращена ошибка при развертывании сервиса.

Для дополнительной информации см. следующую документацию:

https://docs.docker.com/compose/gpu-support/#enabling-gpu-access-to-service-containers.

Вход в registry#

При запуске контейнеров необходимо указать ссылку на образ, необходимый для запуска контейнера. Этот образ загружается из VisionLabs registry. Перед этим необходима авторизация.

Логин и пароль можно запросить у представителя VisionLabs.

Введите логин .

После выполнения команды будет запрошен ввод пароля. Введите пароль.

В команде docker login можно вводить логин и пароль одновременно, однако это не гарантирует безопасность, т.к. пароль можно будет увидеть в истории команд.

Проверка наличия лицензии#

Если сервисы LUNA PLATFORM уже запущены и лицензия с параметром, регулирующим количество потоков для работы LUNA Streams, уже активирована, то необходимо убедиться в том, что текущий ключ LUNA PLATFORM содержит данный параметр. Информация может быть предоставлена специалистами VisionLabs.

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