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

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

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

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

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

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

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

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

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

Создайте директорию для распаковки файла дистрибутива.

mkdir -p /var/lib/luna

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

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

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

yum install -y unzip

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

cd /var/lib/luna

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

unzip luna_v.5.86.0.zip

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

ln -s luna_v.5.86.0 current

Изменение группы и владельца для директорий#

Сервисы LP запускаются внутри контейнеров пользователем "luna". Таким образом, требуется установить разрешения для данного пользователя на работу с примонтированными директориями.

Откройте директорию LP "example-docker":

cd /var/lib/luna/current/example-docker/

Создайте директорию для хранения настроек:

mkdir luna_configurator/used_dumps

Установите для пользователя с UID 1001 и группой 0 разрешения на работу с примонтированными директориями.

chown -R 1001:0 luna_configurator/used_dumps

Откройте корневую директорию LP:

cd /var/lib/luna/

Создайте директорию для хранения бакетов Image Store:

mkdir image_store

Установите для пользователя с UID 1001 и группой 0 разрешения на работу с примонтированными директориями.

chown -R 1001:0 image_store

SELinux и Firewall#

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

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

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

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

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

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

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

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

Способы задания настроек лицензии HASP#

Для HASP-ключа нужно задать IP-адрес сервера лицензирования. Его можно задать одним из двух способов:

  • в дамп-файле "platform_settings.json" (см. ниже). Содержимое стандартных настроек будет перезаписано содержимым этого файла на этапе запуска сервиса Configurator.
  • в настройках сервиса Licenses в пользовательском интерфейсе Configurator (см. раздел "Задание настроек лицензии HASP").

Выберите наиболее удобный способ и выполните действия, описанные в соответствующих разделах.

Задание настроек лицензии HASP с помощью дамп-файла#

Откройте файл "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.
  • в настройках сервиса Licenses в пользовательском интерфейсе Configurator (см. раздел "Задание настроек лицензии с помощью Configurator").

Выберите наиболее удобный способ и выполните действия, описанные в соответствующих разделах.

Задание настроек лицензии Guardant помощью дамп-файла#

Откройте файл "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".

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

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

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

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

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

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

Установка Docker#

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

Примечание. При тестировании данной инструкции использовался Docker версии 25.0.3. Не гарантируется работа с более высокими версиями 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры команд запуска контейнеров в данной документации содержат аргументы для синхронизации директорий логов.

Обратите внимание, что вышеперечисленные действия должны выполняться перед, во время и после запуска сервисов. Запись логов в файл не будет работать если выполнять все действия после запуска контейнеров.

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

Вычисления с помощью GPU#

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

Пропустите данный раздел, если не собираетесь использовать 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 (он не входит в дистрибутив LP, его необходимо загрузить из Интернета):

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

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

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

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