UFM Docker Installation
MLNX_OFED must be installed on the server that will run UFM Docker
For UFM to work, you must have an InfiniBand port configured with an IP address and in "up" state.
NoteFor InfiniBand support, please refer to NVIDIA Inbox Drivers , or Mellanox_OFED guides.
Make sure to stop the following services before running UFM Docker container, as it utilizes the same default ports that they do: Pacemaker, httpd, OpenSM, and Carbon.
If firewall is running on the host, please make sure to add an allow rule for UFM used ports (listed below):
NoteIf the default ports used by UFM are changed in UFM configuration files, make sure to open the modified ports on the host firewall.
80 (TCP) and 443 (TPC) are used by WS clients (Apache Web Server)
8000 (UDP) is used by the UFM server to listen for REST API requests (redirected by Apache web server)
6306 (UDP) is used for multicast request communication with the latest UFM Agents
8005 (UDP) is used as a UFM monitoring listening port
8888 (TCP) is used by DRBD to communicate between the UFM Primary and Standby servers
2022 (TCP) is used for SSH
Supported versions for upgrade are UFM v.6.7.0 and above.
UFM files directory from previous container version mounted on the host.
To load the UFM docker image, pull the latest image from docker hub:
docker pull mellanox/ufm-enterprise:latest
You can see full usage screen for ufm-installation by running the container with -h or -help flag:
docker run --rm mellanox/ufm-enterprise-installer:latest -h
Installation Command Usage
docker run -it --name=ufm_installer --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/systemd/system/:/etc/systemd_files/ \
-v [UFM_FILES_DIRECTORY]:/installation/ufm_files/ \
-v [LICENSE_DIRECTORY]:/installation/ufm_licenses/ \
mellanox/ufm-enterprise:latest \
--install [OPTIONS]
Modify the variables in the installation command as follows:
[UFM_FILES_DIRECTORY]: A directory on the host to mount UFM configuration files.NoteUFM_FILES_DIRECTORY must have read/write permissions for other users because UFM needs write data during runtime.
NoteExample: If you want UFM files on the host to be under /opt/ufm_files/ you must set this volume to be: -v /opt/ufm_files/:/installation/ufm_files/
[UFM_LICENSES_DIR]: UFM license file or files location.NoteExample: If your license file or files are located under
/downloads/ufm_license_files/then you must set this volume to be-v /downloads/ufm_license_files/:/installation/ufm_licenses/[OPTIONS]: UFM installation options. For more details see the table below.
Command Options
Flag | Description | Default Value |
| IB fabric interface name. | ib0 |
| Management interface name. | eth0 |
| Show help | N/A |
UFM Enterprise installer supports several deployment modes:
Stand Alone (SA) Installation
Create a directory on the host to mount and sync UFM Enterprise files with read/write permissions. For example: /
opt/ufm_files/.Copy only your UFM license file(s) to a temporary directory which we’re going to use in the installation command. For example:
/tmp/license_file/Run the UFM installation command according to the following example which will also configure UFM fabric interface to be ib1:
docker run -it --name=ufm_installer --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/systemd/system/:/etc/systemd_files/ \ -v /opt/ufm_files/:/installation/ufm_files/ \ -v /tmp/license_file/:/installation/ufm_licenses/ \ mellanox/ufm-enterprise:latest \ --install \ --fabric-interface ib1
NoteThe values below can be updated in the command to your needs:
/opt/ufm_files/
/tmp/license_file/
For example, if you want UFM files to be mounted in another location on your server, create that directory and replace the path in the command.
Reload system
systemctl daemon-reload
To Start UFM Enterprise service run:
systemctl start ufm-enterprise
High Availability
This solution requires downloading and installing a new package released with UFM v6.9.0 called “UFM-HA”.
Pre-deployments requirements
Install pacemaker, pcs, and drbd-utils on both servers
A partition for DRBD on each server (with the same name on both servers) such as
/dev/sdd1. Recommended partition size is 10-20 GB, otherwise DRBD sync will take a long time to complete.CLI command
hostname -imust return the IP address of the management interface used for pacemaker sync correctly (update/etc/hosts/file with machine IP)Create the directory on each server under
/opt/ufm_files/with read/write permissions on each server. This directory will be used by UFM to mount UFM files, and it will be synced by DRBD.
Installing UFM Containers
On the main server, install UFM Enterprise container with the command below:
docker run -it --name=ufm_installer --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/systemd/system/:/etc/systemd_files/ \
-v /opt/ufm_files/:/installation/ufm_files/ \
-v /tmp/license_file/:/installation/ufm_licenses/ \
mellanox/ufm-enterprise:latest \
--install
On each the standby (secondary) server, install UFM Enterprise container like the following example with the command below:
docker run -it --name=ufm_installer --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/systemd/system/:/etc/systemd_files/ \
-v /opt/ufm_files/:/installation/ufm_files/ \
mellanox/ufm-enterprise:latest \
--install
Downloading UFM HA Package
Download UFM-HA package on both servers using the following command:
wget https://www.mellanox.com/downloads/UFM/ufm6.9_ha_2.0.0-23.tgz
Installing UFM HA Package
Extract the downloaded UFM-HA package on both servers under
/tmp/Go to the extracted directory
/tmp/ufm_ha_XXXand run the installation script:./install.sh -f /opt/ufm_files/ -p /dev/sda5
Option
Description
-f
UFM enterprise files directory
-p
Partition name for DRBD
Configure HA from the main server using the following command:
configure_ha_nodes.sh \ --cluster-password 123456 \ --main-hostname ufm-host01 \ --main-ip 192.168.10.1 \ --main-sync-interface enp2s0f0 \ --standby-hostname ufm-host02 \ --standby-ip 192.168.10.2 \ --standby-sync-interface enp2s0f0 \ --virtual-ip 192.168.10.5
Noteconfigure_ha_nodes.shwill require SSH connection to the standby server. If SSH is not configured then you will be prompted to enter the password during configuration runtime.Option
Description
--cluster-password
UFM HA cluster password for authentication by pacemaker.
--main-hostname
Master (main) server hostname
--main-ip
Master (main) server IP address
--main-sync-interface
Port name (interface) on master (main) server that will be used in DRBD sync
--standby-hostname
Standby server hostname
--standby-ip
Standby server IP address
--standby-sync-interface
Port name (interface) on standby server that will be used in DRBD sync
--virtual-ip
UFM HA cluster Virtual IP
Wait until after configuration for DRBD sync to finish depending on the size of your partition. You can check the status of DRBD sync by running the following command:
drbd-overview
To start UFM HA cluster:
ufm_ha_cluster start
To check UFM HA cluster status:
ufm_ha_cluster status
To stop UFM HA cluster:
ufm_ha_cluster stop
To uninstall UFM HA, first stop the cluster and then the
ufm_hauninstallation script as follows:/opt/ufm/ufm_ha/uninstall_ha.sh
Upgrading From Existing UFM Container
The installer will upgrade the UFM container based on the existing UFM configuration files that are mounted on your server, so make sure to use that same directory as a volume for the UFM installation command.
Upgrade Container Command
Run the installer like the following example (Assuming your old UFM container uses /opt/ufm_files/ to keep UFM files mounted on the host)
docker run -it --name=ufm_installer --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/ufm_files/:/opt/ufm/shared_config_files/ \
mellanox/ufm-enterprise:latest \
--upgrade
In order to open UFM Web UI, open the following URL in your browser: https://[SERVER_IP]/ufm/.
The default credentials are:
Username: admin
Password: 123456