Подготовка к запуску#
Убедитесь в том, что вы являетесь root-пользователем перед тем, как начать запуск!
Перед запуском LUNA PLATFORM необходимо выполнить следующие действия:
1․ Распаковать дистрибутив LUNA PLATFORM
2․ Создать символическую ссылку
3․ Настроить SELinux и Firewall
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 или Guardant
Действия из руководства по активации лицензии#
Откройте руководство по активации лицензии и выполните необходимые шаги.
Примечание. Это действие является обязательным. Лицензия не будет работать без выполнения шагов по активации лицензии из соответствующего руководства.
Задание настроек лицензии 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
можно вводить логин и пароль одновременно, однако это не гарантирует безопасность, т.к. пароль можно будет увидеть в истории команд.