Skip to main content

Software Setup

This page covers the software that ships on a Mango BoostX™ NRT appliance, how to verify it came up, how to manage the configuration service, how to set the network address, and how to confirm the SSDs are exported.

info

Before proceeding, ensure the drive, cabling, and management prerequisites in Hardware Setup are complete.

Software Components

The appliance software is pre-installed on the card, so there is nothing to install before using it. Configuration you change is kept across reboots.

ComponentRole
mango-jbofsystemd service that configures the appliance at boot
mango-ctlCLI for managing the appliance. The nvmf subcommand controls the NVMe-oF target
mango-smiDevice and sensor summary
NVMe-oF target daemonThe target itself, started manually by mango-ctl nvmf start or automatically by mango-jbof

The host side needs only a standard NVMe-oF initiator; see Initiator Setup for the packages it requires.

Verifying the Installation

Confirm the card is present and get its device node name. The node name is the argument the diagnostic commands take.

(target) ~# mango-smi list
400000000.mb-nrt

Confirm the NVMe SSDs are visible. The Kernel module field shows which driver currently owns each drive: nvme while the kernel holds it, uio_pci_generic once the target has attached it.

(target) ~# mango-ctl dev show nvme

Confirm the configuration service is running.

(target) ~# systemctl status mango-jbof

Service Management

mango-jbof is enabled by default and restarts itself on failure.

(target) ~# systemctl status mango-jbof      # current state
(target) ~# systemctl restart mango-jbof # apply an edited policy file
(target) ~# journalctl -u mango-jbof -f # follow the service log

Its own log is written to /var/log/mango at INFO level, rotated at 10 MB with 5 files kept.

warning

Stopping or restarting the service can take up to 90 seconds, because tearing down an active NVMe-oF target is allowed that much time to finish. The command has not hung — wait for it to return. Interrupting it with Ctrl-C leaves the target half torn down.

Network Configuration

The appliance address is set in the network block of the policy file, /etc/mango-cli/mango_jbof_config.yaml, and applied by the configuration service. It is not configured with ifconfig or ip, because the service re-applies the address from the policy file every time it starts.

/etc/mango-cli/mango_jbof_config.yaml
network:
mode: "static" # "dhcp" | "static"
interfaces:
- name: "eth0"
address: "200.1.1.100/24" # CIDR or "dhcp"

Apply an edited address by restarting the service:

(target) ~# systemctl restart mango-jbof

The address configured here becomes the NVMe-oF listener address, which is what initiators connect to.

warning

Do not use dhcp unless a DHCP server is actually present on that network. The service re-applies the address every time it starts, so on a network without a DHCP server the appliance loses its address on each restart and on every boot — which looks like a unit that fails intermittently. On a fixed-address network, use mode: "static" with an explicit CIDR per interface.

The remaining blocks of the policy file control which SSDs are exported and how they are grouped. See Automatic Configuration.

Verifying the Export

nvmf show reports whether the appliance is serving. Every subsystem must have a listener, and warnings: must read none.

(target) ~# mango-ctl nvmf show
NVMe-oF target (group 0): running (RDMA) subsystems 3 capacity 10.9 TB
warnings: none

Exported
NQN LISTENER NAMESPACES
nqn.2022-02.io.mangoboost:subsys0 200.1.1.100:4420 Nvme0n1 (nsid 1, 3.2 TB, 0000:04:00.0)
nqn.2022-02.io.mangoboost:subsys1 200.1.1.100:4420 Nvme1n1 (nsid 1, 3.8 TB, 0000:05:00.0)
nqn.2022-02.io.mangoboost:subsys2 200.1.1.100:4420 Nvme2n1 (nsid 1, 3.8 TB, 0000:06:00.0)

Attached, not exported
(none)

Not attached
(none)

After a reboot there is a normal interval during which the appliance answers but has not finished exporting, and subsystems 0 is reported while the SSDs are still being discovered and configured. Confirm the export is complete before connecting from a host rather than waiting a fixed amount of time.

(target) ~# mango-ctl nvmf show --status

For the meaning of each section of this output and the rest of the diagnostic commands, see Monitoring and Diagnostics.

Functional Test

Connect from a host to confirm the data path end to end. The procedure, the queue sizing rules, and a fio example are in Initiator Setup.