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

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

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

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

1․ Распаковать дистрибутив LUNA PLATFORM

2․ Создать символическую ссылку

3․ Настроить SELinux и Firewall

4․ Активировать лицензию

5․ Выполнить установку Docker и Docker Compose

6․ Выбрать способ записи логов

7․ Авторизироваться в registry VisonLabs

8․ Настроить вычисления с помощью GPU, если планируется использовать GPU

Распаковка дистрибутива#

Дистрибутив представляет собой архив luna_v.5.115.0, где v.5.115.0 это числовой идентификатор, обозначающий версию LUNA PLATFORM.

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

Переместите дистрибутив в директорию на вашем сервере перед установкой. Например, переместите файлы в директорию /root/. В ней не должно быть никакого другого дистрибутива или файлов лицензии кроме целевых.

Переместите дистрибутив в директорию c LUNA PLATFORM.

mv /root/luna_v.5.115.0.zip /var/lib/luna

Установите приложение для распаковки архива при необходимости

dnf install -y unzip

Откройте папку с дистрибутивом

cd /var/lib/luna

Распакуйте файлы

unzip luna_v.5.115.0.zip

Создайте символическую ссылку. Она показывает, что актуальная версия файла дистрибутива используется для запуска LUNA PLATFORM.

ln -s luna_v.5.115.0 current

SELinux и Firewall#

SELinux и Firewall необходимо настроить так, чтобы они не блокировали сервисы LUNA PLATFORM.

Конфигурация SELinux и Firewall не описываются в данном руководстве.

Если SELinux и Firewall не настроены, дальнейшая установка невозможна.

Активация лицензии#

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

Действия из руководства по активации лицензии#

Откройте руководство по активации лицензии и выполните необходимые шаги.

Примечание. Это действие является обязательным. Лицензия не будет работать без выполнения шагов по активации лицензии из соответствующего руководства.

Задание настроек лицензии HASP#

Для HASP-ключа нужно задать IP-адрес сервера лицензирования. Адрес задается в дамп-файле "platform_settings.json". Содержимое стандартных настроек будет перезаписано содержимым этого файла на этапе запуска сервиса Configurator.

Откройте файл "platform_settings.json":

vi /var/lib/luna/current/extras/conf/platform_settings.json

Задайте IP-адрес сервера с вашим ключом HASP в поле "server_address":

{
    "value": {
        "vendor": "hasp",
        "server_address": "127.0.0.1"
    },
    "description":"License vendor config",
    "name":"LICENSE_VENDOR",
    "tags":[]
},

Сохраните файл.

Обратите внимание, что если лицензия активируется с помощью ключа HASP, то должно быть указано два параметра "vendor" и "server_address". Если вы хотите изменить защиту HASP на Guardant, то необходимо добавить поле "license_id".

Задание настроек лицензии Guardant#

Для Guardant-ключа нужно задать IP-адрес сервера лицензирования и идентификатор лицензии. Настройки задаются в дамп-файле "platform_settings.json". Содержимое стандартных настроек будет перезаписано содержимым этого файла на этапе запуска сервиса Configurator.

Откройте файл "platform_settings.json":

vi /var/lib/luna/current/extras/conf/platform_settings.json

Задайте следующие данные:

  • IP-адрес сервера с вашим ключом Guardant в поле "server_address"
  • идентификатор лицензии в формате 0x<your_license_id>, полученный в разделе "Сохранение идентификатора лицензии" в руководстве по активацию лицензии, в поле "license_id":
{
    "value": {
        "vendor": "guardant",
        "server_address": "127.0.0.1",
        "license_id": "0x92683BEA"
    },
    "description":"License vendor config",
    "name":"LICENSE_VENDOR",
    "tags":[]
},

Сохраните файл.

Обратите внимание, что если лицензия активируется с помощью ключа Guardant, то должно быть указано три параметра "vendor", "server_address" и "license_id". Если вы хотите изменить защиту Guardant на HASP, то необходимо удалить поле "license_id".

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

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

Примечание. При тестировании данной инструкции использовался Docker версии 25.0.3 и плагин Docker Compose версии 2.24.6. Не гарантируется работа с более высокими версиями.

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

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

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

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

Установите Docker и плагин Docker Compose:

dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Запустите Docker:

systemctl start docker
systemctl enable docker

Проверьте статус Docker:

systemctl status docker

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

В LUNA PLATFORM существует два способа вывода логов:

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

Настройки вывода логов задаются в настройках каждого сервиса в секции <SERVICE_NAME>_LOGGER.

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

Для более подробной информации о системе логирования LUNA PLATFORM см. раздел "Логирование информации" в руководстве администратора.

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

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

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

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

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

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

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

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

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

Вычисления с использованием GPU#

Пропустите этот раздел, если не планируете использовать GPU.

Для выполнения основных вычислений в сервисах Remote SDK или Video Agent можно задействовать GPU.

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

Подготовка GPU-окружения#

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

Определите дистрибутив:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

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

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | tee /etc/yum.repos.d/nvidia-docker.repo

Обновите кэш пакетов:

dnf clean expire-cache

Установите пакет nvidia-docker2 и зависимости:

dnf install -y nvidia-docker2

Перезапустите Docker:

systemctl restart docker

Запустите тестовый контейнер с CUDA (образ загружается из интернета и не входит в дистрибутив LP):

docker run --rm --gpus all nvcr.io/nvidia/cuda:12.4.0-base-ubi8 nvidia-smi

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

Настройка GPU-ресурсов#

Для выделения GPU-ресурсов сервисам Remote SDK и Video Agent необходимо добавить секцию deploy в конфигурацию Docker Compose.

Доступны два способа:

Вариант 1 — через аргумент --gpu и отдельный файл

При использовании скрипта start_platform.sh можно указать флаг --gpu.

В этом случае будет подключен файл /var/lib/luna/current/example-docker/docker-compose.gpu.yml со следующим содержимым:

services:
  remote-sdk:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
  video-agent:
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

Пояснения к параметрам:

  • driver — драйвер для зарезервированных устройств (например, nvidia).
  • count — количество GPU, которые будут выделены (значение all зарезервирует все доступные GPU).
  • capabilities — список возможностей, поддерживаемых драйвером. Для GPU должно содержать gpu. Параметр обязателен.

Файл можно отредактировать для изменения параметров.

Вариант 2 — прямая правка основного docker-compose.yml

Откройте файл:

vi /var/lib/luna/current/example-docker/docker-compose.yml

Добавьте секцию deploy в нужный сервис, например:

 remote-sdk:
    image: ${DOCKER_URL}/luna-remote-sdk:${LUNA_REMOTE_SDK_TAG}
    deploy:
      resources:
        reservations:
          devices:
          - driver: nvidia
            count: all
            capabilities: [gpu]
    restart: always
    ...

Пояснения к параметрам:

  • driver — драйвер для зарезервированных устройств (например, nvidia).
  • count — количество GPU, которые будут выделены (значение all зарезервирует все доступные GPU).
  • capabilities — список возможностей, поддерживаемых драйвером. Для GPU должно содержать gpu. Параметр обязателен.

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

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

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

Авторизация в registry#

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

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

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

docker login dockerhub.visionlabs.ru --username <username>

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

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