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

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

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

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

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

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

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

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

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

cd /var/lib/luna

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

rm -f current

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

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

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

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

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

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

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

yum install -y unzip

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

cd /var/lib/luna

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

unzip luna_v.5.58.0.zip

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

ln -s luna_v.5.58.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.3.3.8/luna-image-store/luna_image_store/local_storage/* /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 можно вводить логин и пароль одновременно, однако это не гарантирует безопасность, т.к. пароль можно будет увидеть в истории команд.