Подготовка к запуску#
Убедитесь в том, что вы являетесь root-пользователем перед тем, как начать установку!
Перед запуском LUNA PLATFORM необходимо выполнить следующие действия:
- Распаковать дистрибутив LUNA PLATFORM
- Создать символическую ссылку
- Изменить группу и владельца для директорий
- Настроить SELinux и Firewall
- Активировать лицензию
- Авторизироваться в registry VisonLabs
- Выполнить установку Docker
- Выбрать способ записи логов
- Настроить вычисления с помощью GPU, если планируется использовать GPU
Распаковка дистрибутива#
Дистрибутив представляет собой архив luna_v.5.51.6, где v.5.51.6 это числовой идентификатор, обозначающий версию LUNA PLATFORM.
Архив включает в себя конфигурационные файлы, требуемые для установки и использования. Он не включает в себя Docker образы сервисов, их требуется скачать из Интернета отдельно.
Переместите дистрибутив в директорию на вашем сервере перед установкой. Например, переместите файлы в директорию /root/
. В ней не должно быть никакого другого дистрибутива или файлов лицензии кроме целевых.
Создайте директорию для распаковки файла дистрибутива.
mkdir -p /var/lib/luna
Переместите дистрибутив в директорию c LUNA PLATFORM.
mv /root/luna_v.5.51.6.zip /var/lib/luna
Установите приложение для распаковки архива при необходимости
yum install -y unzip
Откройте папку с дистрибутивом
cd /var/lib/luna
Распакуйте файлы
unzip luna_v.5.51.6.zip
Создание символической ссылки#
Создайте символическую ссылку. Она показывает, что актуальная версия файла дистрибутива используется для запуска LUNA PLATFORM.
ln -s luna_v.5.51.6 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 или Guardant
Действия из руководства по активации лицензии#
Откройте руководство по активации лицензии и выполните необходимые шаги.
Примечание. Это действие является обязательным. Лицензия не будет работать без выполнения шагов по активации лицензии из соответствующего руководства.
Задание настроек лицензии 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 dockerhub.visionlabs.ru --username <username>
После выполнения команды будет запрошен ввод пароля. Введите пароль.
В команде
docker login
можно вводить логин и пароль одновременно, однако это не гарантирует безопасность, т.к. пароль можно будет увидеть в истории команд.
Установка Docker#
Установка Docker описана в официальной документации
Если на сервере уже установлен Docker версии 20.10.8, то выполнять повторную установку не требуется. Не гарантируется работа с более высокими версиями 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
Для дополнительной информации см. следующую документацию:
https://github.com/NVIDIA/nvidia-docker#centos-7x8x-docker-ce-rhel-7x8x-docker-ce-amazon-linux-12.
Извлечение атрибутов на GPU разработано для максимальной пропускной способности. Выполняется пакетная обработка входящих изображений. Это снижает затраты на вычисления для изображения, но не обеспечивает минимальную задержку для каждого изображения.
GPU-ускорение разработано для приложений с высокой нагрузкой, где количество запросов в секунду достигает тысяч. Нецелесообразно использовать ускорение GPU в сценариях с небольшой нагрузкой, когда задержка начала обработки имеет значение.