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

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

Убедитесь в том, что вы являетесь 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.95.0.zip /var/lib/fs/

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

cd /var/lib/fs/

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

yum install unzip

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

unzip facestream_v.5.95.0.zip

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

ln -s facestream_v.5.95.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 nvcr.io/nvidia/cuda:12.4.0-base-ubi8 nvidia-smi

См. документацию NVIDIA для дополнительной информации.

Извлечение атрибутов на 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:${FACESTREAM_TAG}
    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 dockerhub.visionlabs.ru --username <username>

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

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

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

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

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