Before launch#
Make sure that you are the root user before launch!
Before launching the LUNA PLATFORM, you must perform the following actions:
- Unpack the LUNA PLATFORM distribution.
- Create symbolic link.
- Change group and owner for new directories.
- Configure SELinux and Firewall.
- Activate license.
- Login to VisionLabs registry.
- Install Docker.
- Choose logging method.
- Set up GPU computing if you plan to use GPU.
Distribution unpacking#
The distribution package is an archive luna_v.5.88.0, where v.5.88.0 is a numerical identifier, describing the current LUNA PLATFORM version.
The archive includes configuration files, required for installation and exploitation. It does not include Docker images for the services. They should be downloaded from the Internet.
Move the distribution package to the directory on your server before the installation. For example, move the files to /root/
directory. The directory should not contain any other distribution or license files except the target ones.
Create directory for distribution file unpacking.
mkdir -p /var/lib/luna
Move the distribution to the created directory.
mv /root/luna_v.5.88.0.zip /var/lib/luna
Install the unzip archiver if it is necessary.
yum install -y unzip
Go to the folder with distribution.
cd /var/lib/luna
Unzip files.
unzip luna_v.5.88.0.zip
Symbolic link creation#
Create a symbolic link.
The link indicates that the current version of the distribution file is used to run LUNA PLATFORM.
ln -s luna_v.5.88.0 current
Changing group and owner for directories#
LP services are launched inside the containers by the "luna" user. Therefore, it is required to set permissions for this user to use the mounted volumes.
Go to the LP "example-docker" directory.
cd /var/lib/luna/current/example-docker/
Create a directory to store settings.
mkdir luna_configurator/used_dumps
Set permissions for the user with UID 1001 and group 0 to use the mounted directories.
chown -R 1001:0 luna_configurator/used_dumps
Open the LP root directory.
cd /var/lib/luna/
Create a directory to store Image Store buckets.
mkdir image_store
Set permissions for the user with UID 1001 and group 0 to use the mounted directories.
chown -R 1001:0 image_store
SELinux and Firewall#
You must configure SELinux and Firewall so that they do not block LUNA PLATFORM services.
SELinux and Firewall configurations are not described in this guide.
If SELinux and Firewall are not configured, the installation cannot be performed.
License activation#
To activate the license, follow these steps:
- Follow the steps from license activation manual.
- Set settings for HASP license or Guardant license.
Actions from License activation manual#
Open the license activation manual and follow the necessary steps.
Note: This action is mandatory. The license will not work without following the steps to activate the license from the corresponding manual.
Ways to specify HASP license settings#
For the HASP key, you need to specify the IP address of the licensing server. It can be set in one of two ways:
- In the dump file "platform_settings.json" (see below). The contents of the default settings will be overwritten by the contents of this file when the Configurator service starts.
- In the Licenses service settings in the Configurator user interface (see section "Specify license settings using Configurator").
Choose the most convenient method and follow the steps described in the relevant sections.
Specify HASP license settings using dump file#
Open the "platform_settings.json" file.
vi /var/lib/luna/current/extras/conf/platform_settings.json
Set the server IP address with your HASP key in the "server_address" field.
{
"value": {
"vendor": "hasp",
"server_address": "127.0.0.1"
},
"description":"License vendor config",
"name":"LICENSE_VENDOR",
"tags":[]
},
Save the file.
If the license is activated using the HASP key, then two parameters "vendor" and "server_address" must be specified. If you want to change the HASP protection to Guardant, then you need to add the "license_id" field.
Ways to specify Guardant license settings#
For the Guardant key, you need to specify the IP address of the licensing server and the license ID. The settings can be set in one of two ways:
- In the dump file "platform_settings.json" (see below). The contents of the default settings will be overwritten by the contents of this file at the launch stage of the Configurator service.
- In the Licenses service settings in the Configurator user interface (see the section "Specify license settings using Configurator").
Choose the most convenient method and follow the steps described in the relevant sections.
Specify Guardant license settings using dump file#
Open the file "platform_settings.json".
vi /var/lib/luna/current/extras/conf/platform_settings.json
Enter the following data:
- IP address of the server with your Guardant key in the "server_address" field.
- License ID in the format
0x<your_license_id>
, obtained in the section "Save license ID" of license activation manual, in the "license_id" field.
{
"value": {
"vendor": "guardant",
"server_address": "127.0.0.1",
"license_id": "0x92683BEA"
},
"description":"License vendor config",
"name":"LICENSE_VENDOR",
"tags":[]
},
Save the file.
If the license is activated using the Guardant key, then three parameters "vendor", "server_address" and "license_id" must be specified. If you want to change the Guardant protection to HASP, then you need to delete the "license_id" field.
Login to registry#
When launching containers, you should specify a link to the image required for the container launching. This image will be downloaded from the VisionLabs registry. Before that, you should login to the registry.
Login and password can be requested from the VisionLabs representative.
Enter login
docker login dockerhub.visionlabs.ru --username <username>
After running the command, you will be prompted for a password. Enter password.
In the
docker login
command, you can enter the login and password at the same time, but this does not guarantee security because the password can be seen in the command history.
Docker installation#
The Docker installation is described in the official documentation.
Note: Docker version 25.0.3 was used when testing this instruction. It is not guaranteed to work with higher versions of Docker.
Quick installation commands are listed below.
Check the official documentation for updates if you have any problems with the installation.
Install dependencies:
yum install -y yum-utils device-mapper-persistent-data lvm2
Add repository:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Install Docker:
yum -y install docker-ce docker-ce-cli containerd.io
Launch Docker:
systemctl start docker
systemctl enable docker
Check Docker status:
systemctl status docker
Choose logging method#
There are two methods to output logs in LUNA PLATFORM:
- Standard log output (stdout).
- Log output to a file.
Log output settings are set in the settings of each service in the <SERVICE_NAME>_LOGGER
section.
If necessary, you can use both methods of displaying logs.
For more information about the LUNA PLATFORM logging system, see the "Logging" section in the administrator manual.
Logging to stdout#
This method is used by default and requires no further action.
It is recommended to configure Docker log rotation to limit log sizes (see "Docker log rotation").
Logging to file#
Note: When you enable saving logs to a file, you should remember that logs occupy a certain place in the storage, and the process of logging to a file negatively affects system performance.
To use this method, you need to perform the following additional actions:
- Before launching the services: Create directories for logs on the server.
- After launching the services: Activate log recording and set the location of log storage inside LP service containers.
- During the launch of services: Configure synchronization of log directories in the container with logs on the server using the
volume
argument at the start of each container.
Examples of container launch commands in this documentation contain arguments for synchronizing log directories.
Note that the above steps must be performed before, during and after starting the services. Saving logs to file will not work if you perform all actions after starting the containers.
See the instructions for enabling logging to files in the "Logging the server" section.
Calculations using GPU#
You can use GPU for the general calculations performed by Remote SDK.
Skip this section if you are not going to utilize GPU for your calculations.
You need to install NVIDIA Container Toolkit to use GPU with Docker containers. The example of the installation is given below.
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
Check the NVIDIA Container toolkit operating by running a base CUDA container (this container is not provided in the LP distribution and should be downloaded from the Internet):
docker run --rm --gpus all nvidia/cuda:11.4.3-base-centos7 nvidia-smi
See the NVIDIA documentation for additional information.
Attributes extraction on the GPU is engineered for maximum throughput. The input images are processed in batches. This reduces computation cost per image but does not provide the shortest latency per image.
GPU acceleration is designed for high load applications where request counts per second consistently reach thousands. It won’t be beneficial to use GPU acceleration in non-extensively loaded scenarios where latency matters.