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

Подготовка к обновлению#

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

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

Информация по миграции аккаунтов#

Все аккаунты, созданные с помощью сервиса Admin будут автоматически мигрированы. Аккаунту администратора будет присвоен тип "admin", а аккаунтам, создаваемым при запросе к ресурсу "/accounts" будет присвоен тип "advanced_user". В качестве логина и пароля будет использован почтовый адрес. Имя организации будет записано в поле "description".

Старый аккаунт Новый аккаунт
Organization name: VisionLabs login: example@visionlabs.ai
E-mail address: example@visionlabs.ai password: example@visionlabs.ai
Account id: e8531a5b-a429-4980-8d04-b38d8c220409 description: VisionLabs
account_id: e8531a5b-a429-4980-8d04-b38d8c220409
account_type: admin

Для того, чтобы сохранить возможность использования данных, созданных ранее с помощью указания идентификатора "account_id" в заголовке "Luna-Account-Id", необходимо в запросе создания аккаунта "create account" указать "login", "password", "account_type" и старый идентификатор "account_id" в заголовке "Luna-Account-Id" запроса. Таким образом, старый "account_id" привяжется к создаваемому аккаунту.

Примеры привязки аккаунта и создания нового аккаунта приведены в разделе "Создание аккаунта с помощью сервиса API".

Создание резервных копий#

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

Рекомендуется создавать резервные копии для бакетов Image Store.

Создание резервных копий баз данных и бакетов не описано в данном документе.

Удаление старой символической ссылки#

Откройте директорию "luna".

cd /var/lib/luna

Удалите символическую ссылку "current".

rm -f current

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

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

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

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

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

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

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

yum install -y unzip

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

cd /var/lib/luna

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

unzip luna_v.5.54.0.zip

Создание символической ссылки#

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

ln -s luna_v.5.54.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

Перенос бакетов Image Store#

В LUNA PLATFORM 5 предполагается хранить бакеты в корневой директории /var/lib/luna/ для упрощения процесса последующего обновления.

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

mkdir -p /var/lib/luna/image_store

Перенесите содержимое директории с бакетами Image Store в новую директорию для хранения бакетов:

mv /var/lib/luna/luna_v.4.5.4/example-docker-compose/image_store/* /var/lib/luna/image_store

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

chown -R 1001:0 /var/lib/luna/image_store

SELinux и Firewall#

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

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

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

Создание директории логов для новых сервисов#

Пропустите этот раздел в случае, если ранее логи не сохранялись на сервере.

В версии LUNA PLATFORM 5 появились новые сервисы, для которых нужно создать директории с логами.

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

Ниже приведены команды для создания директорий для всех существующих сервисов. Данные команды создадут и присвоят права только отсутствующим директориям.

mkdir -p /tmp/logs/configurator /tmp/logs/image-store /tmp/logs/accounts /tmp/logs/faces /tmp/logs/licenses /tmp/logs/events /tmp/logs/python-matcher /tmp/logs/handlers /tmp/logs/remote-sdk /tmp/logs/tasks /tmp/logs/tasks-worker /tmp/logs/sender /tmp/logs/api /tmp/logs/admin /tmp/logs/backport3 /tmp/logs/backport4
chown -R 1001:0 /tmp/logs/configurator /tmp/logs/image-store /tmp/logs/accounts /tmp/logs/faces /tmp/logs/licenses /tmp/logs/events /tmp/logs/python-matcher /tmp/logs/handlers /tmp/logs/remote-sdk /tmp/logs/tasks /tmp/logs/tasks-worker /tmp/logs/sender /tmp/logs/api /tmp/logs/admin /tmp/logs/backport3 /tmp/logs/backport4

Если необходимо использовать сервис Python Matcher Proxy, то нужно дополнительно создать директорию /tmp/logs/python-matcher-proxy и установить ей разрешения.

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

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

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

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

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

Установка 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

Вычисления с помощью 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 в сценариях с небольшой нагрузкой, когда задержка начала обработки имеет значение.

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

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

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

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

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

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

Удаление контейнеров LUNA PLATFORM 4#

Используйте следующую команду для остановки и удаления контейнеров LUNA PLATFORM 4.5.3.

Следует удалить все контейнеры сервисов LUNA PLATFORM, если запущено другое количество контейнеров или у них другие имена.

docker container rm -f admin api sender tasks tasks-worker events luna-matcher luna-detector luna-extractor licenses faces_2 faces_1 image-store configurator influxdb

Также рекомендуется остановить NGINX или отредактировать его настройки, т.к. данная инструкция не включает масштабирование с использованием NGINX.

docker container rm -f nginx