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

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

Убедитесь в том, что вы являетесь 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.67.0, где v.5.67.0 это числовой идентификатор, обозначающий версию LUNA PLATFORM.

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

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

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

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

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

yum install -y unzip

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

cd /var/lib/luna

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

unzip luna_v.5.67.0.zip

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

ln -s luna_v.5.67.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 и установить ей разрешения.

Обновление лицензии#

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

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

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

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

Примечание. При обновлении Guardant Control Center необходимо заново выписать лицензионный ключ.

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

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

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

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

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

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

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

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