Подготовка к обновлению#
Убедитесь в том, что вы являетесь root-пользователем перед тем, как начать установку!
- Ознакомиться с информацией по миграции аккаунтов
- Создать резервные копии
- Удалить старую символическую ссылку
- Распаковать дистрибутив новой версии LUNA PLATFORM
- Создать новую символическую ссылку
- Изменить группу и владельца для новых директорий
- Выполнить перенос бакетов Image Store
- Настроить SELinux и Firewall, если ранее не были настроены
- Создать директории логов для новых сервисов, если ранее использовалась запись логов в файл
- Активировать лицензию
- Выполнить установку Docker
- Настроить вычисления с помощью GPU, если планируется использовать GPU
- Авторизироваться в registry VisonLabs, если ранее не была выполнена авторизация
- Удалить контейнеры 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.51.4, где v.5.51.4 это числовой идентификатор, обозначающий версию LUNA PLATFORM.
Архив включает в себя конфигурационные файлы, требуемые для установки и использования. Он не включает в себя Docker образы сервисов, их требуется скачать из Интернета отдельно.
Переместите дистрибутив в директорию на вашем сервере перед установкой. Например, переместите файлы в директорию /root/
. В ней не должно быть никакого другого дистрибутива или файлов лицензии кроме целевых.
Переместите дистрибутив в директорию c LUNA PLATFORM.
mv /root/luna_v.5.51.4.zip /var/lib/luna
Установите приложение для распаковки архива при необходимости
yum install -y unzip
Откройте папку с дистрибутивом
cd /var/lib/luna
Распакуйте файлы
unzip luna_v.5.51.4.zip
Создание символической ссылки#
Создайте символическую ссылку. Она показывает, что актуальная версия файла дистрибутива используется для запуска LUNA PLATFORM.
ln -s luna_v.5.51.4 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
и установить ей разрешения.
Активация лицензии#
Для активации/обновления лицензии необходимо выполнить следующие действия:
- выполнить действия из руководства по активацию лицензии
- задать настройки лицензирования HASP или Guardant перед запуском контейнера Licenses
Действия из руководства по активации лицензии#
Откройте руководство по активации лицензии и выполните необходимые шаги.
Примечание. Это действие является обязательным. Лицензия не будет работать без выполнения шагов по активации лицензии из соответствующего руководства.
Установка 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 dockerhub.visionlabs.ru --username <username>
После выполнения команды будет запрошен ввод пароля. Введите пароль.
В команде
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