Infrastructure configuration
Note: If you have changed the configuration or changed the operating status of any component involved in this document while LiCO is running, the following command must be executed to restart LiCO:
systemctl restart lico
Cluster configuration
The following part of the infrastructure configuration in the /etc/lico/lico.ini
should be modified:
[LICO]
DOMAIN = 'hpc.com'
Storage configuration
To adhere to the shared directory configurations in this document, the following part of the storage configuration in the /etc/lico/lico.ini
should be modified:
[LICO]
SHARE_DIR = "/home"
Scheduler configuration
The following part of the scheduler configuration in the /etc/lico/lico.ini
should be modified:
[LICO]
# The scheduler configuration currently supports Slurm, LSF and openPBS. Slurm is the default. if use LSF, change it to lsf; if use openPBS, change it to pbs
SCHEDULER = 'slurm'
Shared folders configuration
To make new users accessible to one or more custom shared directory, do the following: Step 1. Create one or more shared folder, change the permission
# change <Shared_Folder> to the absolute path of the Shared directory, If you want to use the existing directories, remember to change the permission.
mkdir -p <Shared_Folder>
chmod <CUSTOM PERMISSION> <Shared_Folder>
Step 2. Modify the share directories configuration in the /etc/lico/lico.ini
:
[LICO]
#for example: USER_SHARE_DIR = ["<Shared_Folder>","<Shared_Folder1>"]
USER_SHARE_DIR = []
Note: You need to run the following command for the changes to take effect
lico share_dirs_init
Transiter configuration
Job submission, singularity command query, etc. will be executed on the configured transit node. You could modify the following configuration in the /etc/lico/lico.ini
:
Note: When running LiCO inside docker, HOST must be specified.
[TRANSITER]
HOST=''
PORT=22
Login configuration
The following part of the login configuration in the /etc/lico/lico.ini.d/user.ini
should be modified:
[USER.LOGIN]
#Maximum number of login password error attempts
MAX_CHANCE = 5
#If user login failures exceed MAX_CHANCE,the system will suspend this user for 1 hour
LOCKED_HOURS = 1
Accounting configuration
If you need to use the billing function. The following part of the billing configuration in the /etc/lico/lico.ini.d/accounting.ini
should be modified. Through this configuration, you can set the time and content format of the exported report according to your time zone and your needs.
Attention: When the scheduler is PBS, daily billing mode is not currently supported.
[ACCOUNTING.BILLING]
# billing mode
# daily: This mode represents the running jobs will be charged at a fixed moment every day.
# completed: This mode represents the jobs will be charged only when they are completed.
JOB_BILLING_CYCLE = "completed"
# localtime use 24-hour format(hour[0-23]:minute[0-59])
DAILY_HOUR = "01:00"
MONTHLY_DAY = 2
# ('en', 'English'),('sc', 'Simplified Chinese')
LANGUAGE = "en"
# The number of minutes between the current timezone and the UTC timezone
# Use offset between local timezone and UTC timezone by default
# Example: local timezone is GMT+8, the following should be 480.
# TIMEZONE_OFFSET = 0
# Billing report unit and location information:
# Format of UNIT: "<unit>;<unit>"
# Note: If you modify this field, please log in to the LiCO web page again.
# Unit optional parameters:
# $ : Indicates that the currency unit is dollar
# \uffe5 : Indicates that the currency unit is ¥
# \u5143 : Indicates that the currency unit is 元
# Unit example format:
# "$" : Default unit format. example: $88
# "$;" : Indicates that the currency starts with the unit. example: $88
# ";$" : Indicates that the currency ends with the unit. example: 88$
# "\uffe5;\u5143" : Indicates that there are units before and after. example: ¥88元
UNIT = "$"
# billing title (Default: LiCO)
TITLE = "LiCO"
[ACCOUNTING.STORAGE]
# Bill for GPFS, Change the following items according to your settings for GPFS
USER_QUOTE_IDENTITY_FIELD = ""
GPFS_STORAGE_CMD = "mmrepquota"
[ACCOUNTING.BALANCE]
# How often to remind the balance is low, in minutes.
ALERT_INTERVAL_MINUTES = 60
Job configuration
Due to the delay in slurm statistic date collection, billing data of memory will be lost if the memory usage of the job is not obtained immediately after job is completed. To get memory at the best effort, the following part of the job configuration in the /etc/lico/lico.ini.d/job.ini
should be modified:
[JOB.SLURM]
# The number of times the fetch was retried
MEMORY_RETRY_COUNT = 1
# The wait interval for refetch
MEMORY_RETRY_INTERVAL_SECOND = 0.5
[JOB.CSRES]
# the port range used by job.
PORT_BEGIN = 25000
PORT_END = 27500
When the file lsb.events
does not exist in its default path $(LSB_SHAREDIR)/cluster_name/logdir
, or lsf is not installed on the lico head node, the bhist
command won't retrieve job information. Enabling the following configuration provides more accurate historical run times for jobs.
[JOB.LSF]
EVENTS_FILE_PATH = ""
Database configuration
If you database server is not the same as the LiCO management node. Change the instructions in the following configuration file to the ip address of your database server.
/etc/lico/lico.ini
[DATABASE] # the ip address where the mariadb installed HOST = '127.0.0.1' [INFLUXDB] # the ip address where the influxdb installed HOST = '127.0.0.1'
/etc/lico/lico.ini.d/monitor.ini
[MONITOR.DATASOURCE.INFLUX] # the ip address where the influxdb installed host = '127.0.0.1'
Confluent configuration
If your confluent server is not the same as the LiCO management node. Change the instructions in the following configuration file to the ip address and port of your confluent server
/etc/lico/lico.ini.d/cluster.ini
[CLUSTER.CONFLUENT] # the confluent server node ip HOST = "127.0.0.1" # the confluent server port PORT = 4005
/etc/lico/confluent-proxy.ini
[app:confluent-proxy] # the confluent server node ip host = 127.0.0.1 # the confluent server port port = 4005
Note: You need to run the following command for the changes to take effect
systemctl restart lico-confluent-proxy
OneAPI configuration
Note: This function is unavailable if Intel oneAPI is not installed.
If you have installed intel oneAPI and want to use intel oneAPI by LiCO. The following part of the oneapi configuration in the /etc/lico/lico.ini.d/oneapi.ini
should be modified
[ONEAPI]
# where is the intel oneapi installed, /opt/intel/oneapi is the default path
INTEL_MODULE_PATH = "/opt/intel/oneapi"
# if true, you can use intel oneAPI by LiCO Web; if false, close this function
ENABLE = true
Monitor configuration
LiCO supports the unmonitored version, if you need to use the unmonitored version. The following part of the monitor configuration in the /etc/lico/lico.ini.d/monitor.ini
should be modified:
[MONITOR]
# Controls which LiCO functions are to be enabled.
# The default value is ['scheduler', 'cluster']
# To use unmonitored version, configure the value to ['scheduler']
# To use no scheduler version, configure the value to ['cluster']
TARGETS = ['scheduler', 'cluster']
[MONITOR.ICINGA]
# the icinga server node ip
host = '127.0.0.1'
# the icinga server port
port = 5665
timeout = 30
EAR configuration
LiCO supports to configure EAR through LiCO. If you want to use this function, the following part of the EAR configuration in the /etc/lico/lico.ini.d/ear.ini
should be modified:
[EAR]
EAR_CONFIG_PATH = ""
# The number of ear configuration file bakcups, default is 5
# EAR_CONF_BACKUP =
# The executable script must have the following fuctions:
# 1. If the EAR cluster do not share ear.conf,
# the script must be able to update the ear.conf for all nodes;
# 2. Able to reload all EARD services in the cluster, such like systemctl relaod eard;
# 3. Able to backup ear.conf is strongly recommended;
# Example: EARD_RELOAD_SCRIPT_PATH = "/var/lib/lico/core/ear/scripts/your_path"
EARD_RELOAD_SCRIPT_PATH = ""
Publish configuration
In the publish operation, the /tmp
directory is used by default to cache temporary files. If you want to change it,the following part of the Publish configuration in the /etc/lico/lico.ini.d/publish.ini
should be modified:
[PUBLISH]
BUILDAH_TMPDIR = ""
When you need to publish docker. you need to edit the /etc/containers/storage.conf
file. modify the mountopt = "nodev,metacopy=on"
to mountopt = "nodev,metacopy=off"
.
Container configuration
If you want to use lico web to build images. the following part of the container configuration in the /etc/lico/lico.ini.d/container.ini
should be modified:
[CONTAINER]
# Singularity will cache SIF container images generated from remote sources, and any OCI/docker layers used to create them.The cache is created at $HOME/.singularity/cache by default. The location of the cache can be changed by setting the SINGULARITY_CACHEDIR environment variable.
SINGULARITY_CACHEDIR = ""
# When building a container, or pulling/running a Singularity container from a Docker/OCI source, a temporary working space is required. You may need to set SINGULARITY_TMPDIR when building a large container on a system which has a small /tmp filesystem
SINGULARITY_TMPDIR = ""
Cloudtools configuration
If you want to control the time when jupyter is automatically closed, you can modify the defaultValue
while the id
of the params
in the file /var/lib/lico/core/templates/jupyter/template.json
is one of jupyter_timeout、kernel_timeout、terminal_timeout.
The meaning of these three parameters is as follows:
- jupyter_timeout : Shut down the server after N seconds with no kernels or terminals running and no activity.
- kernel_timeout : Timeout (in seconds) after which a kernel is considered idle and ready to be culled.
- terminal_timeout : Timeout (in seconds) in which a terminal has been inactive and ready to be culled.
If you want to add automatic labeling function in CVAT, you need to add nuclio server address to defaultValue
while the id
of the params
in the file in /var/lib/lico/core/templates/cvat/template.json
is CVAT_NUCLIO_HOST (If you don't have Nuclio or auto annotation model installed, Please refer to https://opencv.github.io/cvat/docs/administration/advanced/installation_automatic_annotation/).
Notice configuration
Attention: The configuration in this section is needed only when lico-wechat-agent module is installed for the cluster. You can obtain and from https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
The following part of the wechat-agent configuration in the /etc/lico/wechat-agent.ini
should be modified:
[app:main]
appid = <your appid>
secret = <your secret>
Note: You need to run the following command for the changes to take effect
systemctl restart lico-wechat-agent
FileManager configuration
For the file management system, we have enabled 20 workers by default. If you have high concurrency requirements, please change the number of workers in the /usr/lib/systemd/system/lico-file-manager.service
file according to your requirements.
Note: Please refer to https://docs.gunicorn.org/en/stable/settings.html#workers for details.
[Unit]
Description=File Manager for lico project
After=multi-user.target
[Service]
EnvironmentFile=-/etc/sysconfig/lico
ExecStart=/usr/bin/gunicorn-3.6 --paste /etc/lico/file-manager.ini --bind :18085 --log-config /etc/lico/lico.logging.d/file-manager.ini -w 20 --timeout 600 --keep-alive 65 --capture-output
KillMode=mixed
Restart=on-failure
[Install]
WantedBy=multi-user.target
You need to run the following command for the changes to take effect:
systemctl daemon-reload
systemctl restart lico-file-manager